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

詳解Spring mvc的web.xml配置說(shuō)明

 更新時(shí)間:2017年02月25日 16:46:53   作者:eson_15  
本篇文章主要介紹了Spring mvc的web.xml配置說(shuō)明,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在說(shuō)明web.xml配置之前我們先來(lái)了解一下需要配置的配置項(xiàng)的作用。

1、監(jiān)聽(tīng)器(listener)

事件監(jiān)聽(tīng),js里應(yīng)用廣泛,各種事件函數(shù)的實(shí)現(xiàn),Android和java se也是廣泛的應(yīng)用,各種點(diǎn)擊事件的監(jiān)聽(tīng)。當(dāng)觸發(fā)某個(gè)事件時(shí),會(huì)觸發(fā)監(jiān)聽(tīng)在該事件上的所有監(jiān)聽(tīng)器。spring 的 org.springframework.web.context.ContextLoaderListener 就是實(shí)現(xiàn)了 ServletContextListener 接口的監(jiān)聽(tīng)器,該監(jiān)聽(tīng)器會(huì)在容器(tomcat,jetty)啟動(dòng)的時(shí)候觸發(fā),然后就可以啟動(dòng) spring 相應(yīng)的配置信息。

2、過(guò)濾器(filter)

一個(gè)HTTP請(qǐng)求就是一次瀏覽器客戶端與服務(wù)器的交互,在這次交互中有瀏覽器向服務(wù)器發(fā)送數(shù)據(jù)的過(guò)程,還有服務(wù)器接收到請(qǐng)求數(shù)據(jù)后處理完將處理結(jié)果返回的過(guò)程,當(dāng)返回結(jié)果成功就完成了一次HTTP請(qǐng)求(其中的握手,路由等就不細(xì)說(shuō)了)。在瀏覽器與服務(wù)器一來(lái)一回的過(guò)程中我們可以做一些事情,例如將請(qǐng)求數(shù)據(jù)編碼方式統(tǒng)一,添加IP校驗(yàn),session校驗(yàn)等相關(guān)servlet處理前的工作,在servlet處理后響應(yīng)給瀏覽器客戶端的過(guò)程中我們也可以進(jìn)行過(guò)濾工作。spring 的org.springframework.web.filter.CharacterEncodingFilter就是一個(gè)過(guò)濾器,它在請(qǐng)求未到達(dá)servlet之前將請(qǐng)求編碼轉(zhuǎn)換為我們?cè)?<param-value>UTF-8</param-value>中配置的編碼方式,過(guò)濾的路徑是 filter-mapping 的 url-pattern 配置的路徑。

3、處理請(qǐng)求(servlet )

一個(gè)HTTP請(qǐng)求路徑根據(jù)web.xml配置的攔截路徑匹配后會(huì)被相應(yīng)的servlet處理(在處理之前會(huì)被配置的過(guò)濾器處理),在這個(gè)servlet中能夠拿到請(qǐng)求的數(shù)據(jù)信息,然后進(jìn)行相應(yīng)的處理,處理完成后再響應(yīng)給瀏覽器。 spring 的org.springframework.web.servlet.DispatcherServlet就是一個(gè) servlet,不過(guò)這個(gè) servlet 是 spring 自己實(shí)現(xiàn)的,它處理的請(qǐng)求路徑在 servlet-mapping 下的 url-pattern 中進(jìn)行配置,配置完成后會(huì)將所有該配置攔截到的請(qǐng)求交給 spring 的 DispatcherServlet 進(jìn)行處理,這個(gè) spring 核心的 servlet 我將它理解為一個(gè)路由的作用,它會(huì)將攔截到的請(qǐng)求根據(jù)請(qǐng)求路徑和請(qǐng)求方式進(jìn)一步的分發(fā)下去,分發(fā)到 spring 的 @Controller 下的@RequestMapping(value={"/xxx"}, method=RequestMethod.xox )下的方法下進(jìn)行處理。

詳細(xì)配置如下

4、spring容器的初始化

<!-- 上下文配置文件位置 -->
<context-param>
   <param-name>contextConfigLocation</param-name>
   <!-- spring 配置文件所在位置,啟動(dòng) spring 時(shí)會(huì)去該路徑下查找該配置文件 -->
    <param-value>classpath*:spring/spring-config.xml</param-value>
</context-param>
<!-- spring 上下文監(jiān)聽(tīng)器,初始化啟動(dòng)容器時(shí)啟動(dòng) spring -->
<listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-   class>
</listener>

spring的上下文監(jiān)聽(tīng)器配置,ContextLoaderListener實(shí)現(xiàn)了ServletContextListener接口,當(dāng)容器加載時(shí)啟動(dòng)spring容器。ServletContextListenercontextInitialized方法中初始化spring容器。有幾種辦法可以加載spring容器,通過(guò)在web.xml的<context-param>標(biāo)簽中配置spring的applicationContext.xml路徑,文件名可以任意取,如果沒(méi)有配置,將在/WEB-INF/路徑下查找默認(rèn)的applicationContext.xml文件。

5、spring容器的核心servlet,攔截的請(qǐng)求路徑

<!-- spring 核心轉(zhuǎn)發(fā)器,攔截指定目錄下的請(qǐng)求,分配到配置的攔截路徑下處理 -->
<servlet>
   <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
     <param-name>contextConfigLocation</param-name>
       <param-value>/META-INF/spring-servlet.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
   <servlet-name>dispatcher</servlet-name>
   <!-- -->
   <url-pattern>/</url-pattern>
</servlet-mapping>

spring的核心servlet配置,該servlet會(huì)將在這里配置攔截的路徑轉(zhuǎn)發(fā)到spring的controller攔截的路徑進(jìn)行處理,這個(gè)servlet相當(dāng)于一個(gè)spring的路由中心,將spring攔截的請(qǐng)求對(duì)應(yīng)的轉(zhuǎn)發(fā)下去進(jìn)行處理。

6、spring的編碼過(guò)濾器

<!-- spring 編碼過(guò)濾器 -->
<filter>
   <filter-name>characterEncodingFilter</filter-name>
   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
   <init-param>
     <param-name>encoding</param-name>
     <param-value>UTF-8</param-value>
   </init-param>
   <init-param>
     <param-name>forceEncoding</param-name>
     <param-value>true</param-value>
   </init-param>
</filter>
<!-- 編碼過(guò)濾器過(guò)濾的路徑 -->
<filter-mapping>
   <filter-name>characterEncodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

spring的編碼過(guò)濾器,將該過(guò)濾器配置的路徑的數(shù)據(jù)格式統(tǒng)一編碼

7、url-pattern配置講解

在 servlet 和 filter 中我們都需要配置 url-pattern,但這個(gè)配置的解析規(guī)則有哪幾種我們接下來(lái)就詳細(xì)的說(shuō)一下。

1、精確匹配:如 /xxx.html 就只會(huì)匹配 xxx.html。

2、路徑匹配:如 /xxx/ 會(huì)匹配以 xxx 為前綴的 url。

3、后綴匹配:如 .html 會(huì)匹配所有以 html 為后綴的 url。

但是對(duì)于 url-pattern 的匹配來(lái)說(shuō)可能會(huì)存在沖突的情況,這種情況下就需要排個(gè)優(yōu)先級(jí)了,以上三者的優(yōu)先級(jí)為 精確匹配 > 路徑匹配 > 后綴匹配 。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用JavaBean根據(jù)指定條件設(shè)置屬性值默認(rèn)值方式

    使用JavaBean根據(jù)指定條件設(shè)置屬性值默認(rèn)值方式

    這篇文章主要介紹了使用JavaBean根據(jù)指定條件設(shè)置屬性值默認(rèn)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java8中Map的一些騷操作總結(jié)

    java8中Map的一些騷操作總結(jié)

    這篇文章主要給大家介紹了關(guān)于java8中Map的一些騷操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Springboot公共字段填充及ThreadLocal模塊改進(jìn)方案

    Springboot公共字段填充及ThreadLocal模塊改進(jìn)方案

    這篇文章主要為大家介紹了Springboot公共字段填充及ThreadLocal模塊改進(jìn)方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Spring Security實(shí)現(xiàn)退出登錄和退出處理器

    Spring Security實(shí)現(xiàn)退出登錄和退出處理器

    本文主要介紹了Spring Security實(shí)現(xiàn)退出登錄和退出處理器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Java對(duì)中文進(jìn)行排序的實(shí)現(xiàn)示例

    Java對(duì)中文進(jìn)行排序的實(shí)現(xiàn)示例

    工作中,我們經(jīng)常會(huì)遇到需要進(jìn)行各種排序的需求,本文主要介紹了Java對(duì)中文進(jìn)行排序的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • SpringBoot實(shí)現(xiàn)文件上傳與下載功能的示例代碼

    SpringBoot實(shí)現(xiàn)文件上傳與下載功能的示例代碼

    文件上傳與下載是Web應(yīng)用開(kāi)發(fā)中常用的功能之一。接下來(lái)我們將討論如何在Spring?Boot的Web應(yīng)用開(kāi)發(fā)中,如何實(shí)現(xiàn)文件的上傳與下載,感興趣的可以了解一下
    2022-06-06
  • 學(xué)習(xí)Java的9張思維導(dǎo)圖

    學(xué)習(xí)Java的9張思維導(dǎo)圖

    這篇文章主要為大家詳細(xì)介紹了學(xué)習(xí)Java的9張思維導(dǎo)圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Java遍歷文件夾下所有文件并重新命名

    Java遍歷文件夾下所有文件并重新命名

    這篇文章主要為大家詳細(xì)介紹了Java遍歷文件夾下所有文件并重新命名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Spring?Boot?集成并開(kāi)發(fā)?Sa-token示例詳解

    Spring?Boot?集成并開(kāi)發(fā)?Sa-token示例詳解

    Sa-token是一款高可用的權(quán)限認(rèn)證框架,他帶我們用最簡(jiǎn)化的配置完成用?spring?security?需要進(jìn)行大量配置的才能完成的工作,這篇文章主要介紹了Spring?Boot?集成并開(kāi)發(fā)?Sa-token,需要的朋友可以參考下
    2023-06-06
  • 深入分析JAVA 多線程--interrupt()和線程終止方式

    深入分析JAVA 多線程--interrupt()和線程終止方式

    這篇文章主要介紹了JAVA 多線程--interrupt()和線程終止方式的的相關(guān)資料,文中代碼非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06

最新評(píng)論

布拖县| 巴马| 正定县| 苏州市| 唐山市| 墨玉县| 夹江县| 佛学| 浪卡子县| 石首市| 大庆市| 韶山市| 高唐县| 女性| 阜宁县| 隆安县| 津南区| 临漳县| 抚顺市| 望江县| 广丰县| 景德镇市| 防城港市| 凤翔县| 丽江市| 江达县| 平安县| 沁源县| 定日县| 镇雄县| 秭归县| 兴化市| 洪洞县| 和硕县| 河源市| 留坝县| 永顺县| 麻城市| 玛沁县| 济南市| 鹤庆县|