SpringMVC REST 风格

来源:互联网 发布:软件自学网创办人 编辑:程序博客网 时间:2024/05/21 19:29

什么是REST?

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。—— [ 百度百科 ]

SpringMVC如何使用

1.配置 web.xml 文件

  <!-- HiddenHttpMethodFilter 拦截器 -->    <filter>        <filter-name>HiddenHttpMethodFilter</filter-name>        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>HiddenHttpMethodFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <!-- DispatcherServlet -->    <servlet>        <servlet-name>dispatcher</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>dispatcher</servlet-name>        <!--响应所有请求-->        <url-pattern>/</url-pattern>    </servlet-mapping>

2.控制层代码

      // {id} 占位符变量名需和入参变量名一致      @RequestMapping(value="/user/{id}",method=RequestMethod.GET)        public String testGet(@PathVariable("id")Integer id){             System.out.println("GET:"+id);             return "hello";         }         @RequestMapping(value="/user/{id}",method=RequestMethod.POST)         public String testPost(@PathVariable("id")Integer id){             System.out.println("POST:"+id);             return "hello";         }         @RequestMapping(value="/user/{id}",method=RequestMethod.PUT)         public String testPut(@PathVariable("id")Integer id){             System.out.println("PUT:"+id);             return "hello";         }         @RequestMapping(value="/user/{id}",method=RequestMethod.DELETE)         public String testDelete(@PathVariable("id")Integer id){             System.out.println("DELETE:"+id);             return "hello";         }  

3.前端请求

<a href="user/100">Get请求</a>   <!-- POST请求的隐藏域可选 --> <form action="user/100" method="post">      <input type="hidden" name="_method" value="POST">      <input type="submit" value="post请求">  </form>  <form action="user/100" method="post">      <input type="hidden" name="_method" value="PUT">      <input type="submit" value="put请求">  </form>  <form action="user/100" method="post">      <input type="hidden" name="_method" value="DELETE">      <input type="submit" value="delete请求">  </form> 

实现过程

  1. 前端提交表单会将隐藏域中的值一并提交到服务器
  2. SpringMVC 的 HiddenHttpMethodFilter 过滤器根据传来的 _method 的值找到对应Controller
  3. 执行对应的方法
原创粉丝点击