亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Spring mvc的web.xml配置說明

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

在說明web.xml配置之前我們先來了解一下需要配置的配置項的作用。

1、監(jiān)聽器(listener)

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

2、過濾器(filter)

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

3、處理請求(servlet )

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

詳細配置如下

4、spring容器的初始化

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

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

5、spring容器的核心servlet,攔截的請求路徑

<!-- spring 核心轉發(fā)器,攔截指定目錄下的請求,分配到配置的攔截路徑下處理 -->
<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會將在這里配置攔截的路徑轉發(fā)到spring的controller攔截的路徑進行處理,這個servlet相當于一個spring的路由中心,將spring攔截的請求對應的轉發(fā)下去進行處理。

6、spring的編碼過濾器

<!-- spring 編碼過濾器 -->
<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>
<!-- 編碼過濾器過濾的路徑 -->
<filter-mapping>
   <filter-name>characterEncodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

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

7、url-pattern配置講解

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

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

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java配置HTTP/Socks代理的簡單快速上手方法

    Java配置HTTP/Socks代理的簡單快速上手方法

    這篇文章主要為大家介紹了Java配置HTTP/Socks代理的簡單快速上手方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • java8 實現(xiàn)map以value值排序操作

    java8 實現(xiàn)map以value值排序操作

    這篇文章主要介紹了java8 實現(xiàn)map以value值排序操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 詳解Java 集合系列(三)—— LinkedList

    詳解Java 集合系列(三)—— LinkedList

    這篇文章主要介紹了Java 集合系列(三)—— LinkedList,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Java實現(xiàn)猜數(shù)字小游戲詳解流程

    Java實現(xiàn)猜數(shù)字小游戲詳解流程

    猜數(shù)字是興起于英國的益智類小游戲,起源于20世紀中期,一般由兩個人或多人玩,也可以由一個人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來用Java把這個小游戲寫出來練練手
    2021-10-10
  • Mybatis如何動態(tài)創(chuàng)建表

    Mybatis如何動態(tài)創(chuàng)建表

    這篇文章主要介紹了Mybatis如何動態(tài)創(chuàng)建表問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java的SPI機制以及基于SPI編程示例詳解

    Java的SPI機制以及基于SPI編程示例詳解

    這篇文章主要為大家介紹了Java的SPI機制以及基于SPI編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • springboot嵌套子類使用方式—前端與后臺開發(fā)的注意事項

    springboot嵌套子類使用方式—前端與后臺開發(fā)的注意事項

    這篇文章主要介紹了springboot嵌套子類使用方式—前端與后臺開發(fā)的注意事項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java中l(wèi)ist.foreach不能使用字符串拼接的問題

    Java中l(wèi)ist.foreach不能使用字符串拼接的問題

    這篇文章主要介紹了Java中l(wèi)ist.foreach不能使用字符串拼接的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java中的強引用,軟引用,弱引用,虛引用的作用介紹

    Java中的強引用,軟引用,弱引用,虛引用的作用介紹

    這篇文章主要介紹了Java中的強引用,軟引用,弱引用,虛引用的作用,下文內容具有一定的知識參考價值,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-02-02
  • java list中包含某個字符串的兩種方法實現(xiàn)

    java list中包含某個字符串的兩種方法實現(xiàn)

    在Java開發(fā)中,經(jīng)常需要判斷一個List中是否包含特定的字符串,包括使用contains()方法和循環(huán)遍歷判斷,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03

最新評論