发表于: 2017-06-24 23:07:24
1 1111
今天完成的:
5.使用jetty:run命令 启动Jetty服务。
- 6.使用PostMan/dhc测试自己写的接口,确认接口可以正常使用。
- 深度思考:
- 1.什么是restful?
- 一句话,rest风格即URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作,并吐出标准数据格式的数据(JSON/XML)
- 2.了解maven的module。
- 整个项目已经拆分为几个module了,在项目较大的时候便于管理,层次清晰。
- 3.rest的请求方法有哪些,有什么区别?
- 1,GET:GET可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
2,HEAD:HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。
3,PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。
4,DELETE:删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。
5,POST:向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操作都是靠这个完成。
4.什么是http协议?Get和post请求有什么区别?http请求content-Type有几种,有什么区别?http请求的三次握手具体指什么?http适合什么场景?什么是tcp/ip协议?http状态码有哪些?
-----------HTTP协议详解:
http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。
----------根据HTTP规范,POST表示可能修改变服务器上的资源的请求。
1.很多人贪方便,更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点。
2.对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。
3.另外一个是,早期的Web MVC框架设计者们并没有有意识地将URL当作抽象的资源来看待和设计,
所以导致一个比较严重的问题是传统的Web MVC框架基本上都只支持GET和POST两种HTTP方法,而不支持PUT和DELETE方法。以上3点典型地描述了老一套的风格(没有严格遵守HTTP规范),
随着架构的发展,现在出现REST(Representational State Transfer),一套支持HTTP规范的新风格。
----------所谓的content_type在代码中就是这句produces = MediaType.APPLICATION_JSON_VALUE,即请求的资源格式。
text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
image/gif :gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式
application/xhtml+xml :XHTML格式
application/xml : XML数据格式
application/atom+xml :Atom XML聚合格式
application/json : JSON数据格式
application/pdf :pdf格式
application/msword : Word文档格式
-----------HTTP的三次握手:
http://blog.csdn.net/xubo_zhang/article/details/11900947/
TCP/UDP包含HTTP以及常用的文件传输协议FTP/简单邮件协议STMP/邮件协议POP/域名解析协议DNS/远程终端协议TELENT。
http://blog.csdn.net/baigoocn/article/details/41410187
-----------http状态码HttpStatus太多了,百度一下全是
遇到的问题:
用postman模拟前端发送请求来测试接口,没使用命令行,直接用idea配置的jetty,有的配置不太明白
另外测试了接口的查询/全部查询/删除/改,其中selectAll没法测试,数据库中有200多万条数据,没法全查出来,网页也没法显示。
上面这是idea的一个bug,ss可以直接注入的,项目也可以正常运行,老是报错,改一下idea的警告条件就行了
另外一个问题是add方法,我是这样写的:
//-------------------------------addStudnet-----------------------------------------------------------------------
@RequestMapping(value = "/user/addStudent", method = RequestMethod.POST)
public ResponseEntity<Void> addStudent(Student stu, UriComponentsBuilder ucBuilder, HttpServletRequest request) {
Student student = new Student( Integer.parseInt(request.getParameter("id")), request.getParameter("qq"), request.getParameter("name"),
request.getParameter("graduateschool"),request.getParameter("mind"));
if(ss.selectStudent(student.getId())!=null){
return new ResponseEntity<Void>(HttpStatus.CONFLICT);
}
ss.addStudent(student);
//Spring组件UriComponentsBuilder和UriComponents来组建并编码URI
HttpHeaders headers = new HttpHeaders();
headers.setLocation(ucBuilder.path("/user/{id}").buildAndExpand(stu.getId()).toUri());
return new ResponseEntity<Void>(headers,HttpStatus.CREATED);
}
由于不知道该怎样通过Spring MVC获取前端的数据,只好用servlet写了一堆request.getParameter(),想问一下师兄,spring mvc怎么从前台取值?有注解还是什么别的?
明天的计划:
做任务3
评论