一,使用@RequestMapping映射请求
(1)使用请求URL映射请求:
1,SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些URL请求
2,标注在类定义处:提供初步的请求映射信息。相对于WEB应用的根目录
标注在方法处:提供进一步的细分映射信息。相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录。
3,DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法
(2)还可以使用请求方法,请求参数及请求头映射请求
@RequestMapping的value,method,params及heads分别表示请求URL,请求方法,请求参数及请求头的映射条件,他们之间是与的关系,联合使用可使请求映射更加精确。
如:
即为映射URL为/testParamsAndHeaders,且包含参数username及值不等于10的age参数的请求
@RequestMapping(value="/testParamsAndHeaders",params= {"username","age!=10"})
二,使用@PathVariable映射URL绑定的占位符
通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中
三,REST(即Representational State Transfer)资源表现层状态转换。
状态转换就是HTTP协议里面,四个表示操作方式的动词:GET,POST,PUT,DELETE。分别对应四种操作:GET用来获取找资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源。
HiddenHttpFilter:浏览器form表单只支持GET与POST请求,而DELETE,PUT等method并不支持,Spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持这四种请求。
①配置filter
<!-- 配置 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>
②客户端发起请求:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="springmvc/testRest/1" method="post"> <input type="hidden" name="_method" value="DELETE"/> <input type=submit value="TestRest DELETE"/> </form> <br><br> <form action="springmvc/testRest/1" method="post"> <input type="hidden" name="_method" value="PUT"/> <input type=submit value="TestRest PUT"/> </form> <br><br> <form action="springmvc/testRest" method="post"> <input type=submit value="TestRest POST"/> </form> <br><br> <a href="springmvc/testRest/1">Test Rest Get</a> <br><br> <a href="springmvc/testParamsAndHeaders?username=boogie3&age=10">TestParamsAndHeaders</a> <br><br> <form action="springmvc/testMethod" method="post"> <input type=submit value=submit> </form> <a href="springmvc/testMethod">test Method</a> <br><br> <a href="HelloWorld">Hello World</a> <br><br> <a href="springmvc/testRequestMapping">test RequestMapping</a> </body> </html>
3,编写后端控制器
在tomcat8上面是不支持delete和post请求的,因此以上只能在tomcat7上面执行
tomcat8运行时可以进入到相应的控制器,但是视图渲染返回的时候,由于不支持这两种方法,就会报出异常页面
改正方法一:在执行完跳转的JSP页面加上isErrorPage="true";
运行结果为:
原文地址:https://www.cnblogs.com/boogie-xy/p/12233977.html