国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

Spring MVC之DispatcherServlet_動力節點Java學院整理

2024-09-05 00:23:20
字體:
來源:轉載
供稿:網友

Spring MVC之DispatcherServlet

使用Spring MVC,配置DispatcherServlet是第一步。

DispatcherServlet是一個Servlet,所以可以配置多個DispatcherServlet。

DispatcherServlet是前置控制器,配置在web.xml文件中的。攔截匹配的請求,Servlet攔截匹配規則要自已定義,把攔截下來的請求,依據某某規則分發到目標Controller(我們寫的Action)來處理。 

“某某規則”:是根據你使用了哪個HandlerMapping接口的實現類的不同而不同。 

先來看第一個例子:

<web-app>      <servlet>          <servlet-name>example</servlet-name>          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>          <load-on-startup>1</load-on-startup>      </servlet>      <servlet-mapping>          <servlet-name>example</servlet-name>          <url-pattern>*.form</url-pattern>      </servlet-mapping>  </web-app>  

 <load-on-startup>1</load-on-startup>是啟動順序,讓這個Servlet隨Servletp容器一起啟動。
 <url-pattern>*.form</url-pattern> 會攔截*.form結尾的請求。 

 <servlet-name>example</servlet-name>這個Servlet的名字是example,可以有多個DispatcherServlet,是通過名字來區分的。每一個DispatcherServlet有自己的WebApplicationContext上下文對象。同時保存的ServletContext中和Request對象中,關于key,以后說明。 

在DispatcherServlet的初始化過程中,框架會在web應用的 WEB-INF文件夾下尋找名為[servlet-name]-servlet.xml 的配置文件,生成文件中定義的bean。 

第二個例子:

<servlet>   <servlet-name>springMVC</servlet-name>   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>   <init-param>     <param-name>contextConfigLocation</param-name>     <param-value>classpath*:/springMVC.xml</param-value>   </init-param>   <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping>   <servlet-name>springMVC</servlet-name>   <url-pattern>/</url-pattern> </servlet-mapping> 

指明了配置文件的文件名,不使用默認配置文件名,而使用springMVC.xml配置文件。

其中<param-value>**.xml</param-value> 這里可以使用多種寫法

1、不寫,使用默認值:/WEB-INF/<servlet-name>-servlet.xml
2、<param-value>/WEB-INF/classes/springMVC.xml</param-value>
3、<param-value>classpath*:springMVC-mvc.xml</param-value>
4、多個值用逗號分隔 

Servlet攔截匹配規則可以自已定義,攔截哪種URL合適? 

當映射為@RequestMapping("/user/add")時,為例:

1、攔截*.do、*.htm, 例如:/user/add.do

這是最傳統的方式,最簡單也最實用。不會導致靜態文件(jpg,js,css)被攔截。 

2、攔截/,例如:/user/add

可以實現現在很流行的REST風格。很多互聯網類型的應用很喜歡這種風格的URL。
弊端:會導致靜態文件(jpg,js,css)被攔截后不能正常顯示。想實現REST風格,事情就是麻煩一些。后面有解決辦法還算簡單。 

3、攔截/*,這是一個錯誤的方式,請求可以走到Action中,但轉到jsp時再次被攔截,不能訪問到jsp。


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广南县| 理塘县| 长汀县| 凤庆县| 扶绥县| 广宗县| 中卫市| 林甸县| 杨浦区| 贡山| 金乡县| 吴江市| 讷河市| 社旗县| 景宁| 松江区| 页游| 河间市| 新和县| 辛集市| 清镇市| 高密市| 嵊州市| 田阳县| 扎赉特旗| 肃北| 仪征市| 绥化市| 蒙阴县| 南部县| 外汇| 温宿县| 镶黄旗| 和林格尔县| 永嘉县| 文昌市| 榕江县| 汽车| 克拉玛依市| 镇平县| 陆良县|