web.xml

本文會對web.xml中的各種參數進行一一詳解,如有不對的地方,請大家指出來。

1.ContextLoaderListener

 <servlet>
  <servlet-name>portal</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

作用:

  • 在啓動Web容器時,自動裝配Spring applicationContext.xml的配置信息。

2.contextConfigLocation

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext*.xml</param-value>
</context-param>

功能:

  • contextConfigLocation是指定的applicationContext.xml文件的加載路徑,可以不配置,默認是/WEB-INF/applicationContext。配置後則會去加載相應的xml,而不會去加載/WEB-INF/下的applicationContext.xml。

3.classpath:和classpath*:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext*.xml</param-value>
</context-param>

這一段配置應該是大家web.xml中都有的配置,ServletContext初始化參數

  • classpath:只會到你的class路徑中查找找文件;
  • classpath*:不僅包含class路徑,還包括jar文件中(class路徑)進行查找.
  • -
<param-value>classpath*:applicationContext.xml,  
        classpath*:app-datasource.xml,  
        classpath*:app-memcached.xml 
 </param-value>  

4.DispatcherServlet

<servlet>
  <servlet-name>portal</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:webmvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>portal</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>
  • DispatcherServlet:
    1、文件上傳解析,如果請求類型是multipart將通過MultipartResolver進行文件上傳解析;
    2、通過HandlerMapping,將請求映射到處理器(返回一個HandlerExecutionChain,它包括一個處理器、多個HandlerInterceptor攔截器);
    3、通過HandlerAdapter支持多種類型的處理器(HandlerExecutionChain中的處理器);
    4、通過ViewResolver解析邏輯視圖名到具體視圖實現;
    5、本地化解析;
    6、渲染具體的視圖等;
    7、如果執行過程中遇到異常將交給HandlerExceptionResolver來解析。

  • load-on-startup:表示啓動容器時初始化該Servlet;

  • url-pattern:表示哪些請求交給Spring Web MVC處理, “/” 是用來定義默認servlet映射的。也可以如“*.html”表示攔截所有以html爲擴展名的請求。

5.CharacterEncodingFilter

解決編碼不統一的問題

<filter>
        <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章