一,使用@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";

運行結果為:


