`
grzrt
  • 浏览: 182704 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web.xml配置总结

    博客分类:
  • JAVA
 
阅读更多

一、关于webAppRootKey的定义

默 认情况下webAppRootKey属性的值为webapp.root(就是说系统会把“web目录的路径”压入一个叫webapp.root的系统变 量,也就是说我们可以在以后的properties文件设置中,使用${webapp.root.webtools}来代替“web目录的路径”,此例为 tomcat/webapp/webtools)

因为一个tomcat下面可能部署了多个基于spring、log4j的应用,webapp.root会产生冲突错误(也就是说不知道webapp.root具体代表那个应用的路径了),所以我们可以为具体应用具体配置,而不使用默认值。

如下:

 <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>webapp.root.webtools</param-value>
 </context-param>

这样我们就把“web目录的路径”压入一个叫webapp.root.webtools的系统变量。

二、spring以及log4j的配置

<!-- Spring ApplicationContext配置文件的路径,可使用通配符。多个路径用逗号分隔。此参数用于后面的Spring-Context loader -->

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

  <!--由Spring载入的Log4j配置文件位置-->
 <context-param>
     <param-name>log4jConfigLocation</param-name>
     <param-value>/WEB-INF/classes/log4j.properties</param-value>
 </context-param>

 <!--Spring默认刷新Log4j配置文件的间隔,单位为millisecond-->
 <context-param>
     <param-name>log4jRefreshInterval</param-name>
     <param-value>60000</param-value>
 </context-param>

//Log4jConfigListener会去log4j.propeties 读取配置文件;开一条watchdog线程每60秒扫描一下配置文件的变化;

 <listener>
     <listener-class>
         org.springframework.web.util.Log4jConfigListener
     </listener-class>
 </listener>

//根据spring的配置文件加载spring。

 <listener>
     <listener-class>
         org.springframework.web.context.ContextLoaderListener
     </listener-class>
 </listener>

三、Spring 刷新Introspector防止内存泄露

 <listener>
     <listener-class>
         org.springframework.web.util.IntrospectorCleanupListener
     </listener-class>
 </listener>

它主要负责处理由JavaBeans Introspector的使用而引起的缓冲泄露

spring中对它的描述如下:
    它是一个在web应用关闭的时候,清除JavaBeans Introspector 的监听器.在web.xml中注册这个listener.可以保证在web 应用关闭的时候释放与掉这个web 应用相关的class loader 和由它管理的类。
    如果你使用了JavaBeans Introspector来分析应用中的类,Introspector 缓冲中会保留这些类的引用.结果在你的应用关闭的时候,这些类以及web 应用相关的class loader没有被垃圾回收.
    不幸的是,清除Introspector的唯一方式是刷新整个缓冲.这是因为我们没法判断哪些是属于你的应用的引用.所以删除被缓冲的introspection会导致把这台电脑上的所有应用的introspection都删掉.
    需要注意的是,spring 托管的bean不需要使用这个监听器.因为spring它自己的introspection所使用的缓冲在分析完一个类之后会被马上从javaBeans Introspector缓冲中清除掉.
    应用程序中的类从来不直接使用JavaBeans Introspector.所以他们一般不会导致内部查看资源泄露.但是一些类库和框架往往会产生这个问题.例如:Struts

  1. package   org.springframework.web.util;   
  2.   
  3.   import   java.beans.Introspector;    
  4.   import   javax.servlet.ServletContextEvent;   
  5.   import   javax.servlet.ServletContextListener;   
  6.   
  7.   public     class   IntrospectorCleanupListener    implements   ServletContextListener   {   
  8.       public     void   contextInitialized(ServletContextEvent event)   {   
  9.     }    
  10.     
  11.        public     void   contextDestroyed(ServletContextEvent event)   {   
  12.         Introspector.flushCaches();    
  13.     }    
  14. }   

四、编码问题的配置

1、字符编码过滤器(将通过此url的访问的字符编码都强制转换成UTF-8)

 <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>

2、解决struts2中文乱码问题
 <filter>
    <filter-name>struts-cleanup</filter-name>
    <filter-class>
       org.apache.struts2.dispatcher.ActionContextCleanUp
    </filter-class>
 </filter>

 <filter-mapping>
    <filter-name>struts-cleanup</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>

3、再者建立数据库时要统一编码为UTF-8

4、jsp页面要统一编码 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>  

五、添加struts配置 (将所有一下的url访问拦截下来转发给action)

<filter>
   <filter-name>struts2</filter-name>
   <filter-class>
      org.apache.struts2.dispatcher.FilterDispatcher
   </filter-class>
   <init-param>
      <param-name>config</param-name>
      <param-value>
         struts-default.xml,struts-plugin.xml,struts/struts.xml

         //默认为classpath下或src下
      </param-value>
   </init-param>
</filter> 

<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

分享到:
评论

相关推荐

    关于Web.xml配置说明

    我自己总结的在b/s项目中的web.xml配置的详细说明

    关于web.xml配置的详细说明.pdf

    关于web.xml配置的详细说明,作者总结得很好,适合新手学习。在网上档的,整理成pdf文档,供同志们使用。内附原文地址。

    web.xml配置解析[总结].pdf

    web.xml配置解析[总结].pdf

    Tomcat web.xml,server.xml中详细配置说明文档

    在工作中总结的Tomcat中web.xml,server.xml的详细配置文件的说明,...包含web.xml,server.xml配置文件中的所有配置,想详细了解web.xml,server.xml配置的朋友,还是很有帮助的。 在总结的过程中,查阅了大量的资料~~

    struts2总结第一章

    Struts2第一章 一、 介绍: a) Struts2是以web work优秀的设计思想为核心,吸收了struts1的部分优点,建立了一个基于webwork和struts1的MVC框架。...b) 修改web.xml配置文件。 c) 添加struts.xml配置文件。

    JSP与Servlet 技术总结

    JSP & Servlet 技术总结 ...6. 在web.xml里配置的初始化参数怎么才能读回来? 12 7. 如何获得网页中form表单中的参数 12 8. session跨请求(页面)传数据怎么实现? 12 9. 过滤器如何使用? 13 10. 监听器如何使用? 13

    struts常用jar包和简单配置文件

    自己总结的struts常用jar包和配置文件的简单编写,其中包括项目的web.xml和struts.xml,给初学者很好礼物!

    struts2+spring2+ibates

    3、配置web.xml (分别配置sping,struts) 4、写sping的application和applicationservices或者其它配置.(可对些文件分为其它文件,在web.xml中注册即可) 5、配置struts.xml 6、配置sqlmapconfig.xml,如果有include,则...

    C#进阶系列--WebApi

    六、总结 ................................................................................................................................................................................. 22 C#进阶系列...

    ssh实现分页功能,一个简单的小项目

    主要是三个配置文件 web.xml struts-config.xml applicationContext.xml 数据库是sql2000

    SSH 项目框架搭建总结

    建立Web工程 * 导入需要的jar包 db:连接数据库的驱动包 hibernate:使用hibernate的jar包 jstl:java的标准标签库 junit:测试用到的jar包 spring:使用spring的jar包 ... struts.xml:struts2的配置文件

    struts2+spring+hibernate整合示例

    SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2、hibernate、mybatis等,今天我们来同时整合下 struts、spring、hibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合...

    struts自我学习过程程序以及说明

    配置dwr.xml和web.xml 运行 http://localhost:5858/start/dwr/ 它会在后台输出一些信息,自己看一下就可以了,就是一些加载项之类的东西或者是其他的一些信息. ajaxvalidate包 AjaxValidation.jsp 配置struts.xml即可...

    整合struts2和spring源代码(可以直接在tomcat中运行)

    4.配置spring的配置文件(可以查看WEB-INF里面的applicationContext.xml文件) 注意:如果是默认,一定要放在WEB-INF中并文件名为applicationContext.xml 5.配置struts中的配置文件 注意:如果让spring来创建...

    Web.config(应用程序的配置信息)总结

    Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,...

    webx3框架指南PDF教程附学习Demo

    2.2.1. XML Schema中的秘密 ................................................................. 16 2.2.2. 扩展点,Configuration Point ....................................................... 17 2.2.3. ...

    spring学习笔记

    ..............................................................................10 1.3.9MyEclipse 配置XML 提示:..............................................................................................

    struts2 action 配置方法 &&struts2的配置文件

    struts2 action几乎完全吸收了xwork 的精华,近日学习struts 2,总结...struts2相关的配置文件有web.xml(必须的),struts.xml(必须的),struts.properties,struts-default.xml,velocity.properties,struts-default.vm。

    WebSphere Applicatoin Server 7.0 基于独立定制注册表方式实现单点登录,及身份权限认证。

    关于Java单点登录虽然sun提供了SSO标准的JAAS实现方式,但是基于各应用服务器其配置方式不同而且完全不同,在使用上也会有出入,工程中web.xml配置方式基本相同,具体差别就在于应用服务器支持和配置。 在网上搜寻...

Global site tag (gtag.js) - Google Analytics