Java web项目中web.xml的配置

转载 2016年08月31日 13:33:29

(转载)http://blog.csdn.net/dreamrealised/article/details/9123201

在java的web项目中,我们都能发现一个web.xml文档,但是这个文档并不是必须的,web.xml的主要功能是用来初始化项目工程的配置信息,比如说welcome页面,filter,servlet等,当你的web工程中没用到这些当然也就不需要这个xml文件来配置你的apllication。
下面简单介绍web.xml的几个功能的配置和作用:

1.context-param
容器启动后创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.容器将转化为键值对,并交给ServletContext。
[html] view plain copy
  1.   <context-param>  
  2. <param-name>webAppRootKey</param-name>  
  3. <param-value>web.xkxt.root</param-value>  
  4.       </context-param>  
上面这个context-param的配置主要是区分tomcat的webapp下的不同项目,能够让log能将日志写到对应项目根目录下。
[html] view plain copy
  1.    <context-param>  
  2.     <param-name>log4jConfigLocation</param-name>  
  3.     <param-value>classpath:log4j.xml</param-value>  
  4. </context-param>  
  5. <listener>  
  6.     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
  7. </listener>  
       上面的配置信息是建立log4j的键值对并且建立log4j的监听。
[html] view plain copy
  1.    <context-param>  
  2.     <param-name>contextConfigLocation</param-name>  
  3.     <param-value>/WEB-INF/applicationContext*.xml</param-value>  
  4. </context-param>  
  5. <listener>  
  6.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  7. </listener>  
Java <wbr>web项目中web.xml的配置
       上面的配置是启动web的时候初始化spring的配置文档applicationContext.xml。applicationContext.xml的配置详见http://blog.sina.com.cn/s/blog_6cad92b701019thl.html
2.配置拦截器dispatcher
[html] view plain copy
  1.    <servlet>  
  2.     <servlet-name>dispatcher</servlet-name>  
  3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  4.       
  5.     <load-on-startup>1</load-on-startup>  
  6. </servlet>  
  7. <servlet-mapping>  
  8.     <servlet-name>dispatcher</servlet-name>  
  9.     <url-pattern>*.do</url-pattern>  
  10. </servlet-mapping>  
  11. <servlet-mapping>  
  12.     <servlet-name>dispatcher</servlet-name>  
  13.     <url-pattern>*.aj</url-pattern>  
  14. </servlet-mapping>  
Java <wbr>web项目中web.xml的配置
        以上配置是针对拦截器,可以看到拦截器文档的名字应该叫做dispatcher-servlet.xml,拦截的url请求是以do和aj为结尾。具体的dispatcher-servlet.xml的配置请参见:后续会详细介绍dispatcher-servlet.xml。
3.welcome-file-list
[html] view plain copy
  1.    <welcome-file-list>  
  2.     <welcome-file>main.do</welcome-file>  
  3. </welcome-file-list>  
        该标签是为了指定欢迎列表,可以配置多个welcome-file,显示时候按照顺序从第一个开始找起。对于tomcat来说,当你只指定一个web的根名,没有指定具体页面,去访问时一个web时,如果web.xml文件中配置了欢迎页,那么就返回指定的那个页面作为欢迎页,如果web.xml中没指定欢迎页的情况下,它默认先查找index.html文件,如果找到了,就把index.html作为欢迎页还回给浏览器。如果没找到index.html,tomcat就去找index.jsp。找到index.jsp就把它作为欢迎页面返回。而如果index.html和index.jsp都没找到,那此时tomcat就不知道该返回哪个文件,那么前端会报错。
4.过滤器
[html] view plain copy
  1.    <filter>  
  2.     <filter-name>encodingFilter</filter-name>  
  3.     <filter-class>nju.software.xkxt.web.filter.SetEncodeFilter</filter-class>  
  4.     <init-param>  
  5.         <param-name>encoding</param-name>  
  6.         <param-value>UTF-8</param-value>  
  7.     </init-param>  
  8.     <init-param>  
  9.         <param-name>forceEncoding</param-name>  
  10.         <param-value>true</param-value>  
  11.     </init-param>  
  12. </filter>  
  13. <filter-mapping>  
  14.     <filter-name>encodingFilter</filter-name>  
  15.     <url-pattern>*.do</url-pattern>  
  16. </filter-mapping>  
        该过滤器主要是解决前台JSP页面和JAVA代码中使用了不同的字符集进行编码的时候出现的表单提交的数据或者上传/下载中文名称文件出现乱码的问题。其中filter标签内部配置的是过滤器的名字和具体的类。而filter-mapping中配置的是过滤器对什么文件有效,此处在页面请求.do操作的时候会进行拦截,然后执行过滤器代码。其中SetEncodingFilter类的具体代码如下:
[java] view plain copy
  1. package nju.software.xkxt.web.filter;  
  2.   
  3. import java.io.IOException;  
  4. import javax.servlet.Filter;  
  5. import javax.servlet.FilterChain;  
  6. import javax.servlet.FilterConfig;  
  7. import javax.servlet.ServletException;  
  8. import javax.servlet.ServletRequest;  
  9. import javax.servlet.ServletResponse;  
  10.   
  11. /** 
  12.  * @author typ 
  13.  *  
  14.  */  
  15. public class SetEncodeFilter implements Filter {  
  16.   
  17.     public void doFilter(ServletRequest request, ServletResponse response,  
  18.             FilterChain chain) throws IOException, ServletException {  
  19.         request.setCharacterEncoding("utf-8");  
  20.         chain.doFilter(request, response);  
  21.     }  
  22.   
  23.     public void destroy() {  
  24.         // TODO Auto-generated method stub  
  25.   
  26.     }  
  27.   
  28.     public void init(FilterConfig arg0) throws ServletException {  
  29.         // TODO Auto-generated method stub  
  30.   
  31.     }  
  32.   
  33. }  
该类需要继承Filter类,并实现Filter类中的三个抽象方法:doFilter,destroy,init。doFilter中的request.setCharacterEncoding("utf-8");语句的作用是设置用户界面提交的数据是以utf-8编码格式提交到服务器。

encoding用来指定一个具体的字符集 forceEncoding作用很单一,当request中已经被指定了一个字符集的时候是否再将用endcoding对应的字符集设置到request中去。举个例子来说明,假如forceEncoding=false,当请求被提交之后,过滤器会判断request.getCharacterEncoding()是否为null,如果是null那么就会进行request.setCharacterEncoding("UTF-8")的操作,如果不是null那么过滤器什么也不会做。



相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

java web项目 web.xml配置文件下载

  • 2016年04月29日 15:14
  • 653B
  • 下载

java web项目中达梦数据库的xml配置文件

达梦数据库的使用并不多见,很少有项目有达梦数据库作为ho数据库

java web项目 web.xml配置详解

  • 2012年03月31日 10:51
  • 196KB
  • 下载

Java Web项目web.xml配置详解与示例

开发Java Web项目,常需要配置web.xml文件,这篇博客主要讲解web.xml文件的作用及如何配置,文中很多内容来自于网络,我会尽量把出处标记。 每一个站的WEB-INF下都有一个web.x...

Java Web项目中利用FreeMarker模板生成的word文档,其它格式文档同理,如pdf,txt,java,xml等等

利用FreeMarker模板生成的word文档,其它格式文档同理,如pdf,txt,java,xml等等 需要向项目中加入freemarker的JAR文件,可以通过下面的链接获得Freema...

阿里云服务器CentOS7配置Java Web项目运行环境(MySql,Tomcat,Jre)

此教程基于阿里云服务器,安装好系统之后的操作。 1.MySql的配置。 推荐使用阿里云的集成配置工具“Linux一键安装web环境 ”,我使用的版本是...

Java Web项目如何读取.properties配置文件

在幼儿园管理系统中,为了实现在线预览功能,就使用OpenOffice+SwfTools+Flexpaper技术,在使用的时候,代码里面要配置工具的安装路径(绝对路径),为了方便后期维护该路径。现将该相...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java web项目中web.xml的配置
举报原因:
原因补充:

(最多只允许输入30个字)