您的位置:首页 > 其它

web.xml中常用元素的解读

2016-08-18 21:42 232 查看

前言

针对一个项目而言,通常会有几类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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: