最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring MVC之DispatcherServlet_動力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年08月31日 10:32:58   作者:趙磊  
這篇文章主要介紹了Spring MVC之DispatcherServlet_動力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)資料,需要的朋友可以參考下

Spring MVC之DispatcherServlet

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

DispatcherServlet是一個(gè)Servlet,所以可以配置多個(gè)DispatcherServlet。

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

“某某規(guī)則”:是根據(jù)你使用了哪個(gè)HandlerMapping接口的實(shí)現(xiàn)類的不同而不同。 

先來看第一個(gè)例子:

<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>是啟動順序,讓這個(gè)Servlet隨Servletp容器一起啟動。
 <url-pattern>*.form</url-pattern> 會攔截*.form結(jié)尾的請求。 

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

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

第二個(gè)例子:

<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> 

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

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

1、不寫,使用默認(rèn)值:/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、多個(gè)值用逗號分隔 

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

當(dāng)映射為@RequestMapping("/user/add")時(shí),為例:

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

這是最傳統(tǒng)的方式,最簡單也最實(shí)用。不會導(dǎo)致靜態(tài)文件(jpg,js,css)被攔截。 

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

可以實(shí)現(xiàn)現(xiàn)在很流行的REST風(fēng)格。很多互聯(lián)網(wǎng)類型的應(yīng)用很喜歡這種風(fēng)格的URL。
弊端:會導(dǎo)致靜態(tài)文件(jpg,js,css)被攔截后不能正常顯示。想實(shí)現(xiàn)REST風(fēng)格,事情就是麻煩一些。后面有解決辦法還算簡單。 

3、攔截/*,這是一個(gè)錯誤的方式,請求可以走到Action中,但轉(zhuǎn)到j(luò)sp時(shí)再次被攔截,不能訪問到j(luò)sp。

相關(guān)文章

最新評論

泰来县| 马鞍山市| 德兴市| 攀枝花市| 搜索| 昌黎县| 且末县| 德阳市| 汕头市| 嘉定区| 石林| 治县。| 曲沃县| 交口县| 庆云县| 阜平县| 墨竹工卡县| 神池县| 河池市| 深州市| 泸溪县| 孟村| 峡江县| 荃湾区| 敦化市| 陇南市| 鄂伦春自治旗| 河东区| 英超| 龙泉市| 湘潭市| 右玉县| 张家港市| 东平县| 确山县| 四川省| 门头沟区| 高尔夫| 钦州市| 玉树县| 望城县|