web.xml配置解析

合集下载

Tomcatweb.xml详解

Tomcatweb.xml详解

Tomcatweb.xml详解Tomcat加载顺序加载类和资源的顺序为:1、/Web-INF/classes2、/Web-INF/lib/*.jar3、Bootstrap4、System5、$CATALINA_HOME/common/classes6、$CATALINA_HOME/common/endores/*.jar7、$CATALINA_HOME/common/lib/*.jar8、$CATALINA_HOME/shared/classes9、$CATALINA_HOME/shared/lib/*.jar两个web配置⽂件Servlet定义的时候,我发现在${catalina.home}/conf下以及${catalina.home}/webapps/ROOT/WEB_INF下都有web.xml这个⽂件。

web.xml的⽂件格式定义在Servlet规范中,因此所有符合Servlet规范的Java Servlet Container都会⽤到它。

当tomcat部署应⽤程序时(在激活过程中,或加载应⽤程序后),它都会读取通⽤的conf/web.xml,然后再读取web应⽤程序中的WEB-INF/web.xml。

其实根据他们的位置,我们就可以知道,conf/web.xml⽂件中的设定会应⽤于所有的web应⽤程序,⽽某些web应⽤程序的WEB-INF/web.xml中的设定只应⽤于该应⽤程序本⾝。

如果没有WEB-INF/web.xml⽂件,tomcat会输出找不到的消息,但仍然会部署并使⽤web应⽤程序,servlet规范的作者想要实现⼀种能迅速并简易设定新范围的⽅法,以⽤作测试,因此,这个web.xml并不是必要的,不过通常最好还是让每⼀个上线的web应⽤程序都有⼀个⾃⼰的WEB-INF/web.xml。

系统web.xml详解<?xml version="1.0" encoding="GB2312"?><!--Web.xml依次定议了如下元素:<web-app><display-name></display-name> 定义了WEB应⽤的名字<description></description> 声明WEB应⽤的描述信息<filter></filter><filter-mapping></filter-mapping><servlet></servlet><servlet-mapping></servlet-mapping><session-config></session-config><welcome-file-list></welcome-file-list><taglib></taglib><resource-ref></resource-ref><security-constraint></security-constraint><login-config></login-config></web-app>在web.xml中元素定义的先后顺序不能颠倒,否则Tomcat服务器可能会抛出SAXParseException.--><!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "/dtd/web-app_2_3.dtd"><web-app><display-name>Sample Application</display-name><description>This is a Sample Application</description><!--filter 配置Servlet过滤器filter-name 定义过滤器的名字。

webservice接口xml回参解析

webservice接口xml回参解析

Webservice接口XML回参解析一、背景介绍在W eb开发中,很多时候我们需要通过调用We bs er vi ce接口与其他系统进行数据交互。

而这些接口返回的数据通常以XM L格式进行传输。

在实际应用中,我们需要对接口返回的XM L数据进行解析,以便获取所需的信息。

本文将介绍如何进行W eb se rv i ce接口XM L回参的解析。

二、X M L数据结构分析在开始解析W eb se rv i ce接口的X ML回参之前,我们首先需要了解X M L数据的结构。

X ML是一种标记语言,它包含了标签、属性和内容等元素。

一个标准的X ML文档由根元素、子元素和属性组成。

三、使用X ML解析库为了方便解析We bs er v ic e接口的XM L回参,我们可以使用一些成熟的X ML解析库,如Py t ho n中的`El em ent T re e`库。

`E le men t Tr ee`库提供了一系列的A PI,方便我们对XM L进行解析和操作。

四、解析X ML数据在解析W eb se rv ic e接口的X ML回参时,我们可以按照以下步骤进行操作:1.创建X M L解析器首先,我们需要创建一个XM L解析器对象,用于解析XM L数据。

可以使用`E le me nt Tr ee`库中的`f ro ms tr in g`方法将XM L字符串转换成一个`El em en t`对象。

```p yt ho ni m po rt xm l.et re e.E l em en tT re ea sE Tx m l_da ta="""<r oo t><p er so n><n am e>张三</na me><a ge>18</a ge></pe rs on><p er so n><n am e>李四</na me><a ge>20</a g e></pe rs on></ro ot>"""r o ot=E T.fr om st rin g(x ml_d at a)```2.解析X M L数据接下来,我们可以通过`El em en t`对象的方法和属性来获取XM L数据。

web.xml的初始化参数

web.xml的初始化参数

web.xml的初始化参数web.xml的初始化参数---------⾸先声明,这⾥所介绍的是web中context-param,init-param参数的初始化配置-------------------------------------------------------------------------------------------------------------⼀、初始化参数 web.xml⾥⾯可以定义两种参数: (1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下: <context-param><param-name>context/param</param-name><param-value>avalible during application</param-value></context-param> (2)servlet范围内的参数,只能在servlet的init()⽅法中取得,在web.xml中配置如下:<servlet><servlet-name>MainServlet</servlet-name><servlet-class>cn.jbit.controller.MainServlet</servlet-class><init-param><param-name>param1</param-name><param-value>avalible in servlet init()</param-value></init-param><load-on-startup>0</load-on-startup></servlet>在servlet中可以通过代码分别取⽤:package cn.jbit.controller;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;public class MainServlet extends HttpServlet {public MainServlet() {super();}public void init() throws ServletException {System.out.println("下⾯的参数是存放在servletcontext中的");System.out.println(getServletContext().getInitParameter("context/param"));System.out.println("下⾯的两个参数param1是在servlet中存放的");System.out.println(this.getInitParameter("param1"));}}第⼀种参数在servlet⾥⾯可以通过getServletContext().getInitParameter("context/param")得到第⼆种参数只能在servlet的init()⽅法中通过this.getInitParameter("param1")取---------------------------------------------------------------------------------------------------------------------------------------⼆、初始化参数获<!--application 模式--><context-param><param-name>count</param-name><param-value>1200</param-value></context-param><!--servlet--><servlet><description>loginServlet</description><display-name>loginServlet</display-name><servlet-name>loginServlet</servlet-name><servlet-class>loginServlet</servlet-class> <!--servlet 初始化时 init()--> <init-param><description>系统初始化数</description><param-name>num</param-name><param-value>100</param-value></init-param></servlet><servlet-mapping><servlet-name>loginServlet</servlet-name><url-pattern>/loginServlet</url-pattern></servlet-mapping>在servlet中获取参数的⽅法以及异同:response.setCharacterEncoding("gb2312");System.out.println("getServletContext():"+getServletContext());ServletContext context=getServletConfig().getServletContext();String num=context.getInitParameter("num");// <init-param> 获取不到值String count=context.getInitParameter("count");//<context-param> 获取到值System.out.println("num:"+num);//nullSystem.out.println("count:"+count);//1200System.out.println("num:"+getServletConfig().getInitParameter("num"));//100获取到值System.out.println("count:"+getServletConfig().getInitParameter("count"));//null获取不到值。

servlet在web.xml中配置方法

servlet在web.xml中配置方法

一、介绍servlet在web.xml中的配置方法Servlet是Java编写的服务器端程序,它可以响应客户端的请求并生成动态内容。

在Java Web开发中,通常会使用Servlet来处理用户的请求并生成响应。

而在配置Servlet时,web.xml文件是一个重要的配置文件,其中包含了Servlet的配置信息。

本文将介绍Servlet在web.xml中的配置方法。

二、创建Servlet类在配置Servlet之前,首先需要创建一个Servlet类。

可以通过继承javax.servlet.网络协议.HttpServlet类来创建Servlet类,该类必须实现doGet()或doPost()方法来处理请求。

下面是一个简单的Servlet 类的代码:```javaimport javax.servlet.网络协议.HttpServlet;import javax.servlet.网络协议.HttpServletRequest;import javax.servlet.网络协议.HttpServletResponse;public class HelloWorldServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) {//处理GET请求的逻辑}protected void doPost(HttpServletRequest request, HttpServletResponse response) {//处理POST请求的逻辑}}```三、在web.xml中配置Servlet在web.xml文件中使用<servlet>和<servlet-mapping>元素来配置Servlet。

首先在<servlet>元素中指定Servlet的名称和Servlet类的完整路径,例如:```xml<servlet><servlet-name>HelloWorldServlet</servlet-name><servlet-class.example.HelloWorldServlet</servlet-class></servlet>```其中,<servlet-name>用于标识Servlet的名称,<servlet-class>指定了Servlet类的完整路径。

Web.xml过滤器配置及执行顺序概念

Web.xml过滤器配置及执行顺序概念

Web.xml过滤器配置及执⾏顺序概念第⼀个过滤器@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {Boolean b1 = false;if (b1 = true) {// 继续此次请求,如果有多个过滤器,进⼊下⼀个过滤器chain.doFilter(request, response);} else {// 重定向此请求((HttpServletResponse) response).sendRedirect("/xxxx");}System.out.println("UrlFilter_1 doFilter...");}-----------------------------------------------------------------------------------第⼆个过滤器@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {Boolean b2 = false;if (b2 = true) {// 继续此次请求,如果有多个过滤器,进⼊下⼀个过滤器chain.doFilter(request, response);} else {// 重定向此请求((HttpServletResponse) response).sendRedirect("/xxxx");}System.out.println("UrlFilter_1 doFilter...");}-----------------------------------------------------------------------------------第三个过滤器@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {Boolean b3 = false;if (b3 = true) {// 继续此次请求,如果有多个过滤器,进⼊下⼀个过滤器chain.doFilter(request, response);} else {// 重定向此请求((HttpServletResponse) response).sendRedirect("/xxxx");}System.out.println("UrlFilter_1 doFilter...");}--------------------------------------------------------------------------------------------Web,xml配置如下<filter><filter-name>url_1</filter-name><filter-class>com.boya.filters.UrlFilter_1</filter-class></filter><filter><filter-name>url_3</filter-name><filter-class>com.boya.filters.UrlFilter_3</filter-class></filter><filter><filter-name>url_2</filter-name><filter-class>com.boya.filters.UrlFilter_2</filter-class></filter><filter-mapping><filter-name>url_3</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>url_1</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>url_2</filter-name><url-pattern>/*</url-pattern></filter-mapping>--------------------------------------------------------------------------------------执⾏结果为UrlFilter_1 初始化...UrlFilter_3 初始化...UrlFilter_2 初始化...2013-9-29 13:38:40 org.apache.coyote.AbstractProtocol start信息: Starting ProtocolHandler ["http-bio-8080"]2013-9-29 13:38:40 org.apache.coyote.AbstractProtocol start信息: Starting ProtocolHandler ["ajp-bio-8009"]2013-9-29 13:38:40 org.apache.catalina.startup.Catalina start信息: Server startup in 596 msUrlFilter_2 doFilter...UrlFilter_1 doFilter...UrlFilter_3 doFilter...-------------------------------------------------------------------------------------分析结果:1.chain.doFilter(request, response);为继续此次请求,如果有下⼀个过滤器就进去下⼀个过滤器,没有就直接跳转到请求的链接⾥。

web.xml详解

web.xml详解

web.xml详解我们都知web项⽬的运⾏,通常会⾸先加载web.xml⽂件,但却对web.xml⽂件知之甚少,今天就来揭开它的⾯纱,⼀睹它的真容!⼀.web.xml是什么?web.xml是web项⽬的配置⽂件,⼀般的web⼯程都会⽤到web.xml来配置,主要⽤来配置Listener,Filter,Servlet等。

但需要注意的是:web.xml并不是必须的,⼀个web⼯程可以没有web.xml⽂件⼆.web项⽬加载web.xml过程Tomcat启动web项⽬时,web容器就会的加载⾸先加载web.xml⽂件,加载过程如下:1.web项⽬加载web.xml,读取context-param和listener这两个结点,2.创建⼀个ServletContext(Servlet上下⽂),整个项⽬会共享这个ServletContext3.容器将<context-param>转换为键值对,并交给ServletContext4.容器创建<listener>中的类实例,创建监听器三.web.xml元素详解⾸先是表明xml的使⽤版本。

<?xml version="1.0" encoding="UTF-8"?>web-app是web.xml的根元素,包含着web.xml所有⼦元素。

xmlns以及xmlns:xsi后⾯引进的连接是表明web.xml引进的模式⽂件,便能拥有该模式的相关功能。

<web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_1.xsd"version="3.1"></web-app>指明项⽬名称<display-name>web-SSMTest</display-name>web项⽬加载web.xml⾸先读取这两个结点,加载spring容器及创建spring监听器;ApplicationContext.xml 是spring 全局配置⽂件,⽤来控制spring 特性的ContextLoaderListener的作⽤就是启动Web容器时,⾃动装配ApplicationContext的配置信息。

Struts2的web.xml配置

Struts2的web.xml配置

Struts2讲义(1):web.xml配置在现在开发的Web项目中,大家都是使用web.xml来实现MVC框架的应用。

既然Struts2也属于MVC 框架,因此在web.xml中必定要配置Struts2用以实现应用。

技术要点本节代码说明Struts2基本配置。

1、如何加载FilterDispatcher过滤器。

2、如何使用FilterDispatcher过滤器拦截URL。

演示代码Java 代码1.<!--------------------------------------- 文件名: web.xml-------------------------------->2.<?xml version="1.0" encoding="GB2312"?>3.<web-app xmlns=/xml/ns/j2ee4. xmlns:xsi=/2001/XMLSchema-instance5. version="2.4"6.xsi:schemaLocation="/xml/ns/j2ee7./xml/ns/j2ee/web-app_2_4.xsd">8. <filter>9. <!-- 过滤器名字 -->10. <filter-name>struts2</filter-name>11. <!-- 过滤器支持的struts2类 -->12. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>13. </filter>14.15. <filter-mapping>16. <!-- 过滤器拦截名字 -->17. <filter-name>struts2</filter-name>18. <!-- 过滤器拦截文件路径名字 -->19. <url-pattern>/*</url-pattern>20. </filter-mapping>21. <welcome-file-list>22. <welcome-file>index.jsp</welcome-file>23. </welcome-file-list>24.</web-app>代码解释(1)在Struts1中web.xml中对它的加载都是加载一个Servlet,但是在Struts2中,因为设计者为了实现AOP(面向方面编程)概念,因此是用filter来实现的。

web.xmlservlet、servlet-mapping配置

web.xmlservlet、servlet-mapping配置

web.xmlservlet、servlet-mapping配置Servlet 常称为服务器端⼩程序,即运⾏在服务器端的程序,⽤于处理及响应客户的请求。

Servlet类是个特殊的java类,继承于HttpServlet。

---------------------------------------------------------------⽅法客户端通常只有GET和POST两种请求⽅式,Servlet为了响应则两种请求,必须重写doGet()和doPost()⽅法。

⼤部分时候,Servlet对于所有的请求响应都是完全⼀样的,此时只需要重写service()⽅法即可响应客户端的所有请求。

另外,HttpServlet还有两个⽅法:(1). init(ServletConfig config):创建Servlet实例时,调⽤该⽅法的初始化Servlet资源。

(2). destroy():销毁Servlet实例时,⾃动调⽤该⽅法的回收资源。

通常⽆需重写init()和destroy()两个⽅法,除⾮需要在初始化Servlet时,完成某些资源初始化的⽅法,才考虑重写init()⽅法,如果重写了init()⽅法,应在重写该⽅法的第⼀⾏调⽤super.init(config),该⽅法将调⽤HttpServlet的init()⽅法。

如果需要在销毁Servlet之前,先完成某些资源的回收,⽐如关闭数据库连接,才需要重写destory⽅法()。

---------------------------------------------------------------Servlet创建时机(1). 客户端第⼀次请求某个Servlet时,系统创建该Servlet的实例,⼤部分Servlet都是这种Servlet。

(2). Web应⽤启动时⽴即创建Servlet实例,即load-on-start Servlet。

---------------------------------------------------------------Servlet的⽣命周期(1). 创建Servlet实例。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.监听器:1.ContextLoaderListener配置信息:<listener><listener-class>org.springframework.web.context.ContextLoaderListener </listener-class></listener>配置解释:ContextLoaderListener的作用就是启动Web容器时,自动装ApplicationContext的配置信息。

因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。

至于ApplicationContext.xml这个配置文件部署在哪,如何配置多个xml文件,书上都没怎么详细说明。

现在的方法就是查看它的API文档。

在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。

看看它的API说明第一段说明ContextLoader可以由ContextLoaderListener和ContextLoaderServlet生成。

如果查看ContextLoaderServlet的API,可以看到它也关联了ContextLoader这个类而且它实现了HttpServlet接口。

第二段,ContextLoader创建的是XmlWebApplicationContext这样一个类,它实现的接口WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext-> BeanFactory,这样一来spring中的所有bean都由这个类来创建。

第三段,讲如何部署applicationContext的xml文件,如果在web.xml中不写任何参数配置信息,默认的路径是"/WEB-INF/applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml。

如果是要自定义文件名可以在web.xml 里加入contextConfigLocation这个context参数:view plaincopy to clipboardprint?<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/applicationContext-*.xml</param-value></context-param>在<param-value> </param-value>里指定相应的xml文件名,如果有多个xml文件,可以写在一起并一“,”号分隔。

上面的applicationContext-*.xml采用通配符,比如这那个目录下有applicationContext-ibatis-base.xml,applicationContext-action.xml,applicationContext-ibatis-dao.xml等文件,都会一同被载入。

由此可见applicationContext.xml的文件位置就可以有两种默认实现:第一种:直接将之放到/WEB-INF下,之在web.xml中声明一个listener、第二种:将之放到classpath下,但是此时要在web.xml中加入<context-param>,用它来指明你的applicationContext.xml的位置以供web容器来加载。

按照Struts2 整合spring的官方给出的档案,写成:view plaincopy to clipboardprint?<!-- Context Configuration locations for Spring XML files --><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml </param-value></context-param>2.Log4jConfigListener配置信息:1.<context-param>2.<param-name>webAppRootKey</param-name>3.<param-value>xx.root</param-value>4.</context-param>5.6.<context-param>7.<param-name>log4jConfigLocation</param-name>8.<param-value>/WEB-INF/classes/log4j.xml</param-value>9.</context-param>10.11.<context-param>12. <param-name>log4jRefreshInterval</param-name>13. <param-value>60000</param-value>14.</context-param>15.16.<listener>17. <listener-class>org.springframework.web.util.Log4jConfigListener18. </listener-class>19.</listener>配置解释:使用spring中的Log4jConfigListener有如如下好处:1. 动态的改变记录级别和策略,不需要重启Web应用2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。

因为系统把web目录的路径压入一个叫webapp.root的系统变量。

这样写log文件路径时不用写绝对路径了.log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。

4.log4jRefreshInterval为60000,表示开一条watchdog线程每60秒扫描一下配置文件的变化.5.<context-param><param-name>webAppRootKey</param-name><param-value>web.sample.root</param-value></context-param>* 可以用System.getProperty("web.sample.root")来获取属性值。

在Eclipse调试Web 项目时,项目的路径是一个临时路径,不在真正的路径下,可以通过上述语句打印出属性值,来看看临时项目路径在哪里。

* Spring通过org.springframework.web.util.WebAppRootListener这个监听器来压入项目路径。

但是如果在web.xml中已经配置了org.springframework.web.util.Log4jConfigListener这个监听器,则不需要配置WebAppRootListener了。

* 因为Log4jConfigListener已经包含了WebAppRootListener的功能部署在同一容器中的Web项目,要配置不同的<param-value>,不能重复。

* 如果配置了log4j.appender.file.File=${web.sample.root}/WEB-INF/logs/sample.loglog4j会自己自动建立logs目录, 不需要手工显式建立空的logs目录。

6.log4j.xml配置示例:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j='/log4j/'> <!-- 将日志信息输出到控制台--><appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"/></layout></appender><!-- 以下根据级别将日志信息输出到不同的文件中--><!--设定级别为debug的配置信息--><appender name="DEBUG" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:\\logs\\app-debug.log"/><param name="Append" value="true"/><param name="MaxFileSize" value="500MB"/><param name="MaxBackupIndex" value="2"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"/></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="LevelMin" value="DEBUG" /><param name="LevelMax" value="DEBUG" /></filter></appender><!--设定级别为info的配置信息--><appender name="INFO" class="org.apache.log4j.RollingFileAppender"><param name="File" value="C:\\logs\\app-info.log"/><param name="Append" value="true"/><param name="MaxFileSize" value="500KB"/><param name="MaxBackupIndex" value="2"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"/></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="LevelMin" value="INFO" /><param name="LevelMax" value="INFO" /></filter></appender><!--设定级别为warn的配置信息--><appender name="WARN" class="org.apache.log4j.RollingFileAppender"><param name="File" value="C:\\logs\\app-warn.log"/><param name="Append" value="true"/><param name="MaxFileSize" value="500KB"/><param name="MaxBackupIndex" value="2"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"/></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="LevelMin" value="WARN" /><param name="LevelMax" value="WARN" /></filter></appender><!--设定级别为deb的配置信息--><appender name="ERROR" class="org.apache.log4j.RollingFileAppender"><param name="File" value="d:\\logs\\error.log"/><param name="Append" value="true"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"/></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="LevelMin" value="ERROR" /><param name="LevelMax" value="ERROR" /></filter></appender><!--配置具体要实现的方式,这边只设定了STDOUT,ERROR这2种情况,没有使用到的情况,不要在上面配置,否则会出错--><root><priority value="info"/><appender-ref ref="STDOUT"/><appender-ref ref="ERROR"/></root></log4j:configuration>3.IntrospectorCleanupListener配置信息:<listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener </listener-class></listener>配置解释:org.springframework.web.util.IntrospectorCleanupListener监听器主要负责处理由JavaBean Introspector使用而引起的缓冲泄露,它是一个在web应用关闭时清除JavaBean Introspector的监听器,在web.xml中注册这个listener可以保证在web应用关闭的时候释放掉与这个web应用相关的class loader和由它管理的类.4.RequestContextListener配置信息:<listener><listener-class>org.springframework.web.context.request.RequestContextListener </listener-class></listener>配置解释:在整合spring容器时使用ContextLoaderListener,它实现了ServletContextListener监听器接口,ServletContextListener只负责监听web容器启动和关闭的事件.而RequestContextListener实现ServletRequestListener监听器接口,该监听器监听HTTP请求事件,web服务器接收的每一次请求都会通知该监听器.spring容器启动和关闭操作由web容器的启动和关闭事件触发,但如果spring容器中的Bean需要request,session,globalsession作用域的支持,spring容器本身就必须获得web容器的HTTP请求事件,以HTTP请求的事件"驱动"Bean作用域的控制逻辑.二.Filter(过滤器)1.CharacterEncodingFilter配置信息:<filter><filter-name>encodingFilter</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>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>配置解释:使用Spring中的过滤器解决在请求和应答中的中文乱码问题。

相关文档
最新文档