1. 程式人生 > >SpringMVC_2_使用@RequestMapping對映請求

SpringMVC_2_使用@RequestMapping對映請求

例子程式

程式結構:

在這裡插入圖片描述

  • SpringMVC使用@RequestMapping註解為控制器指定可以處理哪些URL請求

  • 在控制器的類定義及方法定義處都可標註@RequestMapping

  1. 類定義處: 提供初步的請求對映資訊。相對於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支援簡單的表示式
  1. param1:表示請求必須包含名為param1的請求引數
  2. !param1:表示請求不能包含名為param1的請求引數
  3. param1!=value1:表示請求包含名為param1的請求引數,但其值不能為value!
  4. {“param1=value1”,“param2”}:請求必須包含名為param1和param2的兩個請求引數,且param1引數的值必須為value1

請看上圖



使用@RequestMapping對映請求

  • Ant 風格資源地址支援3種匹配符:
  1. ?:匹配檔名中的一個字元
  2. “*”:匹配檔名中的任意字元
  3. “**”:匹配多層路徑
  • @RequestMapping還支援Ant風格的URL
  1. /user/*/createUser: 匹配/user/aaa/createUser、/user/bbb/createUser等URL
  2. /user/**/createUser: 匹配/user/createUser、/user/aaa/bbb/createUser等URL
  3. /user/createUser??: 匹配/user/createUseraa、/user/createUserbb等URL

在這裡插入圖片描述
在這裡插入圖片描述