发表于: 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


返回列表 返回列表
评论

    分享到