综合技术 --maven web.xml详解

//参考  http://mianhuaman.iteye.com/blog/1105522

本项目的web.xml文件内容

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>CQR</display-name>
  
   <filter>  
        <filter-name>CharacterEncodingFilter</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>  
   </filter>  
  
   <filter-mapping>  
        <filter-name>CharacterEncodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
   </filter-mapping>
  
   <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
   </listener>
   
   <servlet>  
        <servlet-name>springMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    
    <servlet-mapping>  
        <servlet-name>springMVC</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>   
  
    <welcome-file-list>  
           <welcome-file>index.jsp</welcome-file>  
    </welcome-file-list> 
    
</web-app>

详解web.xml文件

一、开篇

1.每次启动web项目的时候,web容器都会去读取它的配置文件web.xml,读取<listener>和<context-param>两个节点。--我的项目只配了<listener>

2.紧接着容器创建一个servletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。

3.容器将<context-param>转换为键值对,并交给servletContext。

4.容器创建<listener>中的类实例,创建监听器。

二、load-on-startup

load-on-startup配置在<servlet>中,见本工程配置。

load-on-startup元素在web应用启动的时候指定了servlet被加载的顺序,它的值必须是一个整数。

在servlet的配置中,<load-on-startup>1</load-on-startup> 的含义是:容器在启动的时候就加载这个servlet。

三、加载顺序

加载顺序与它们在web.xml文件中的先后顺序无关,即不会因为filter写在listener之前就先加载filter。它们的加载顺序是:context-param -->listener -->filter -->servlet。

四、web.xml文件详解

web.xml文件中所有的元素都放在<web -app>与</web -app>之间。

<display-name></display-name> 定义站台的名称 --本项目配置中有

<discription></discription> 对站台的描述,可以不要

<context-param></context-param> 设定web站台的环境参数,它有两个子元素

<param-name></param-name> 指定参数的名称

<param-value></param-value> 设定参数值

eg:

<context-param>
    <param-name>my_param</param-name>
    <param-value>hello</param-value>
</context-param>

在此设定的参数,可以在servlet中用getServletContext().getInitParameter("my_param") 来取得

<filter></filter>包含如下子元素

<filter-name></filter-name> 指定filter名字

<filter-class></filter-class> 指定filter的类的名称

<init-param></init-param>用来定义参数,它有两个子元素

<param-name></param-name> 指定参数的名称

<param-value></param-value> 设定参数值

eg:本项目中字符编码过滤

   <filter>  
        <filter-name>CharacterEncodingFilter</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>  
   </filter>

与<filter></filter>同时使用的是<filter-mapping></filter-mapping> 用来定义filter所对应的URL,它有两个子元素

<filter-name></filter-name> 指定filter的名字

<url-pattern></url-pattern> 指定filter所对应的URL

eg:

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

<listener></listener>用来设定listener接口,主要子元素有

<listener-class></listener-class>定义listener的类的名称

eg:

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

<servlet></servlet>用来声明一个servlet的数据,主要有以下子元素

<servlet-name></servlet-name> 指定servlet名称

<servlet-class></servlet-class> 指定servlet的类的名称

eg:

   <servlet>  
        <servlet-name>springMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <load-on-startup>1</load-on-startup>  
    </servlet>

与servlet一起使用的是<servlet-mapping>用来定义servlet所对应的URL,包含两个子元素

<servlet-name></servlet-name> 指定servlet的名称

<url-pattern></url-pattern> 指定servlet所对应的URL

    <servlet-mapping>  
        <servlet-name>springMVC</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>

<welcome-file-list></welcome-file-list> 用来定义首页的列单,包含一个子元素

<welcome-file></welcome-file> 指定首页的文件名称

例如:

    <welcome-file-list>  
           <welcome-file>index.jsp</welcome-file>
           <welcome-file>index.html</welcome-file>  
    </welcome-file-list>

<error-page></error-page>  用来处理错误代码或异常的页面,有三个子元素

<error-code></error-code>  指定错误代码

<exception-type></exception-type>  指定一个java异常类型

<location></location>  指定在该web项目内站台的资源路径

例如:

<error-page>
    <error-code>404</error-code>
    <location>/error404.jsp</location>
</error-page>
<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/exception.jsp</location>
</error-page>

五、相应元素配置

1.web应用图标:指出IDE和GUI工具用来表示web应用的大图标和小图标

<icon>

<small-icon>/images/app_small.gif</small-icon>

<large-icon>/images/app_large.gif</large-icon>

</icon>

2.web应用名称:提供给GUI工具展现时该web应用的名称

<display-name> QQZQ </display-name>

3.web应用描述:给出这个web应用的一些说明性文本

<disciption> CQR servlet and JSP pages</disciption>

4.上下文参数:声明应用范围内的初始化参数

<context-param>
    <param-name>ContextParameter</para-name>        
    <param-value>test</param-value>        
    <description>It is a test parameter.</description> 
</context-param>

在servlet里面可以通过getServletContext().getInitParameter("context/param")得到

5.过滤器设置:将一个名字与一个实现javaxs.servlet.Filter接口的类相关联

  	<filter>  
        <filter-name>CharacterEncodingFilter</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>  
    </filter>  
    
    <filter-mapping>  
        <filter-name>CharacterEncodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>

6.监听器设置

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

7.servlet配置

    <servlet>  
        <servlet-name>springMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>springMVC</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>

8.会话超时配置(单位为分钟)

   <session-config>    
      <session-timeout>120</session-timeout>    
   </session-config>

9.数据库连接池配置

  <resource-ref>    
       <description>JNDI JDBC DataSource of shop</description>    
       <res-ref-name>jdbc/sample_db</res-ref-name>    
       <res-type>javax.sql.DataSource</res-type>    
       <res-auth>Container</res-auth>    
   </resource-ref>

自此,结束。

时间: 2024-10-11 15:51:41

综合技术 --maven web.xml详解的相关文章

Web.xml详解(转)

这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢迎大家一起讨论. ---题记 一.            Web.xml详解: (一)  web.xml加载过程(步骤) 首先简单说一下,web.xml的加载过程. 当我们去启动一个WEB项目时,容器包括(JBoss.Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来. l  启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点: 

SSH项目中的web.xml详解

web.xml 中的listener. filter.servlet 加载顺序及其详解 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息.我们的 listener, filter 等在

Spring web.xml详解

web.xml文件是Java Web项目中的一个配置文件,主要用于配置欢迎页.Filter.Listener.Servlet等,但并不是必须的,一个Java Web项目没有web.xml文件也是照样能跑起来的. 1. web.xml各版本区别 首先来看一下Tomcat官网的Servlet和JSP规范规范与的Apache Tomcat版本之间的对应关系,如图: 从中可以清晰的看到不同版本的web.xml文件要使用相应版本的Tomcat服务器. 下面是各版本的web.xml配置的头部声明: serv

tomcat简介之web.xml详解(转)

http://blog.csdn.net/facepp/archive/2008/04/19/2306602.aspx 位于每个Web应用的WEB-INF路径下的web.xml文件被称为配置描述符,这个 web.xml文件对于Java Web应用十分重要,每个Java Web应用都必须包含一个web.xml文件,且必须放在WEB-INF路径下. 对于Java Web应用而言,WEB-INF是一个特殊的文件夹,Web容器会包含该文件夹下的内容,客户端浏览器无法访问WEB-INF路径下的任何内容.J

Maven.pom.xml详解

1 <project xmlns="http://maven.apache.org/POM/4.0.0" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"> 4 <!--父项目

Maven pom.xml详解(转)

pom文件总体结构 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!-

史上最全maven pom.xml详解

1 <project xmlns="http://maven.apache.org/POM/4.0.0" 2 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 5 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> 6 7 &l

**tomcat简介之web.xml详解

一.Tomcat背景 自从JSP发布之后,推出了各式各样的JSP引擎.Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet, 这样Tomcat就诞生了.Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的喜爱.s

web.xml详解

web.xml的作用 web.xml,一个Tomcat工程中最重要的配置文件.web.xml没有其实也可以----只要你确定你的项目里面不需要任何过滤器.监听器.Servlet等等.我试了一下,没有web.xml对那些已经编译成Servlet的jsp页面来说,是不影响正常显示的,但是那些没有编译成Servlet的jsp页面,访问的时候就会报500的错误了.下面逐一看一下web.xml里常用标签的作用. welcome-file-list 这个标签是用来配置首页用的: <welcome-file-