zoukankan      html  css  js  c++  java
  • 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>
     
  • 相关阅读:
    (总结)Nginx配置文件nginx.conf中文详解(转自:http://www.ha97.com/5194.html)
    位图数据压缩算法
    sqlalchemy 使用
    Linux c 使用数学函数库出现问题.
    小笔记
    hibernate框架的学习(一)
    foreach
    发现的问题
    第一天练习
    进制转换
  • 原文地址:https://www.cnblogs.com/LiuChunfu/p/5785490.html
Copyright © 2011-2022 走看看