web.xml中常用元素的解讀


 


前言

針對一個項目而言,通常會有幾類XML文件需要書寫。

  • web.xml
  • spring-context.xml
  • spring-mvc.xml
  • other.xml
  • ...

不管有多少配置文件,可以肯定的一點,這些配置文件,都是在web.xml中被指定的。
后續慢慢闡述。

web.xml

web.xml可以理解為一個Java Web項目入口。在web.xml中通常會有如下幾種類型的節點存在,按照加載順序排列。

Listener

此為監聽器,在上面3個中是后弦加載的,表示監聽某個動作是否發生,發生后要進行什么動作。

監聽--就是在進行某種各個范圍(application,session,request)中有相關值的設置、修改、替換的時候,這些操作都會觸發事件,而Java中事件的代理機制,事件處理是利用listener機制,所以為了在事件觸發的時候能夠使自己能夠采取相應的措施,就需要---->繼承這樣的listener,在listener中覆寫相應的方法,覆寫相應的事件處理方法,在對應的方法中處理對應的事件,也就是進行了監聽
參考鏈接:安卓中監聽者模式
在Java Web中,監聽對象通常有3個:

  • ServletContext(Spring中關於ServletContext對類簽名如下:
public class ContextLoaderListener extends ContextLoader implements ServletContextListener { ..... } 
  • Request
  • Session

Spring的監聽器需要設置context-param來指定Spring配置文件的路徑。

    <!-- 1. Spring自動掃描 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
          classpath*:spring/application-*.xml
          classpath*:spring/webservice.xml
        </param-value>
    </context-param>

Filter

此為過濾器,為第二個加載的。任何一個被指定的路徑,都需要經過這個過濾器過濾。通常使用到Filter有:

  • 編碼轉換過濾器
  • 安全處理XSS、SQL注入攔截過濾器
  • 為支持而創建的Put過濾器
  • 數據連接池Druid過濾器
  • 。。。
<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <async-supported>true</async-supported>
        <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>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

Servlet

Servlet是三類中最后加載的,通常就是作為控制層存在,在SSM中屬於SpringMVC中進行管理的。

    <!-- 2. SpringMVC配置 -->
    <!-- Spring MVC servlet -->
    <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:spring/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <async-supported>true</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <!-- 此處可以可以配置成 *.do ,對應struts的后綴習慣 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM