a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > 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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成年人av网站 | 欧美日韩一区二区三区免费视频 | 国产美女在线精品免费观看 | 四虎黄色影院 | 国产精品一区人伦免视频播放 | 国产精品久久久久久久久久 | 黄色影院在线观看 | 中文字幕国产 | 亚洲第一黄色网 | 亚洲国产日韩a在线播放性色 | 成人午夜 | 九九久久久 | 欧美日韩亚洲成人 | 精品一区二区三区免费看 | av手机在线播放 | 欧美性一区二区三区 | 日韩免费一区二区 | 黄色国产大片 | 精品国产一区二区三区性色av | 91亚洲国产成人精品性色 | 在线观看免费视频91 | y111111国产精品久久婷婷 | 国产一区视频在线 | 国产一区二区电影 | 国产精品一码二码三码在线 | 天堂精品一区 | 久久午夜电影院 | 五月天婷婷激情视频 | 久久黄网站| 在线xxx| 久久久久久免费 | 视频一区久久 | 中文字字幕在线观看 | 成人在线免费视频 | 日韩在线播放一区 | 欧美日韩中字 | 成年人在线视频免费观看 | 国产区网址 | 国产精品久久久久久久裸模 | 亚洲免费福利视频 | 99精品国产热久久91蜜凸 |