SpringMVC_2_使用@RequestMapping對映請求
阿新 • • 發佈:2018-12-29
例子程式
程式結構:
-
SpringMVC使用@RequestMapping註解為控制器指定可以處理哪些URL請求
-
在控制器的類定義及方法定義處都可標註@RequestMapping
- 類定義處: 提供初步的請求對映資訊。相對於WEB應用的根目錄
2.方法處:提供進一步的細分對映資訊。相對於類定義處的URL。若類定義處未標註@RequestMapping,則方法處標記的URL相對於WEB應用的根目錄
- DispatcherServlet截獲請求後,就通過控制器上@RequestMapping提供的對映資訊確定請求所對應的處理方法
web/WEB-INF/springDispatcherServlet-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns: context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--配置自定掃描的包-->
<context:component-scan base-package="com.springmvc.handlers"></context:component-scan>
<!--配置檢視解析器: 如何把handler方法返回值解析為實際的物理檢視-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
對映請求引數、請求方法或請求頭
- @RequestMapping除了可以使用請求URL對映請求外,還可以使用請求方法、請求引數及請求頭對映請求
- @RequestMapping的value、method、params、及heads分別表示請求URL、請求方法、請求引數及請求頭的對映條件,他們之間是與的關係,聯合使用多個條件可讓請求對映更加精確化。
- params和headers支援簡單的表示式:
- param1:表示請求必須包含名為param1的請求引數
- !param1:表示請求不能包含名為param1的請求引數
- param1!=value1:表示請求包含名為param1的請求引數,但其值不能為value!
- {“param1=value1”,“param2”}:請求必須包含名為param1和param2的兩個請求引數,且param1引數的值必須為value1
請看上圖
使用@RequestMapping對映請求
- Ant 風格資源地址支援3種匹配符:
- ?:匹配檔名中的一個字元
- “*”:匹配檔名中的任意字元
- “**”:匹配多層路徑
- @RequestMapping還支援Ant風格的URL:
- /user/*/createUser: 匹配/user/aaa/createUser、/user/bbb/createUser等URL
- /user/**/createUser: 匹配/user/createUser、/user/aaa/bbb/createUser等URL
- /user/createUser??: 匹配/user/createUseraa、/user/createUserbb等URL