JAVA WEB工程中的web.xml文件

在传统的java web项目中不可避免的是要配置web.xml文件,在应用启动时web.xml用来初始化工程配置信息,其重要性就不言而喻了。

既然是xml文件,它就遵循一些xml文件的书写规格,这里就不说明了,web.xml所对应的xml Schema文件中定义了多少种标签元素,web.xml中就可以出现它所定义的标签元素,也就具备哪些特定的功能。web.xml文件的根元素为<web-app>。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

//这里是我们所写的内容         
</web-app>

web.xml常用的会来配置项目的描述、名称、图表等基本信息,还有context-param,filter,filter-mapping,listener,session-config,servlet,welcome-file-list,error-page等。

配置基本信息

<display-name>demo</display-name><!-- 项目名称 -->    
<description>This is a demo</description>   <!-- 项目描述 -->
 <icon><!-- 图表icon -->    
   <small-icon>/images/small.gif</small-icon>      
   <large-icon>/images/large.gir</large-icon>   
 </icon>

context-param

  <context-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/server.properties</param-value>
  </context-param>

context-param元素含有一对参数名和参数值,用作应用的servlet上下文初始化参数。参数名在整个Web应用中必须是惟一的。
context-param 元素用来设定web应用的环境参数(context),它包含两个子元素: param-name和param-value.

  <param-name>参数名称</param-name> 设定Context名称 
  <param-value>值</param-value> 设定Context名称的值 </context-param> 

param-value值的获取
在JSP网页中可以使用下列方法来取得:${initParam.param_name}
在Servlet可以使用下列方法来获得:
String param_name=getServletContext().getInitParamter(“param_name”);

filter AND filter-mapping
filter元素用于指定Web容器中的过滤器
filter-mapping元素用来声明Web应用中的filter映射。
filter 和 filter-mapping 是一组使用的两个标签

   <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>*.htm</url-pattern>
  </filter-mapping>

过滤器可被映射到一个servlet或一个URL模式。将过滤器映射到一个 servlet中会造成过滤器作用于servlet上。将过滤器映射到一个URL模式中则可以将过滤器应用于任何资源,只要该资源的URL与URL模式匹配。过滤是按照部署描述符的filter-mapping元素出现的顺序执行的。

listener
listener元素用来注册一个监听器类,可以在Web应用中包含该类。使用listener元素,可以收到事件什么时候发生以及用什么作为响应的通知。

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

session-config
session-config包含一个子元素session-timeout.定义web应用中的session参数

  <session-config>
  <!-- 定义这个web应用所有session的有效期限.单位为30分钟.-->
        <session-timeout>30</session-timeout>
  </session-config>

servlet AND servlet-mapping
servlet 在web.xml中完成的一个最常见的任务是对servlet或JSP页面给出名称和定制的URL.
servlet-mapping元素包含两个子元素servlet-name和url-pattern.用来定义servlet所对应URL.两个标签结对使用

 <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>com.purang.web.login.LoginServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
  </servlet>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/login</url-pattern>
  </servlet-mapping>

load-on-startup
特别说明下load-on-startup的子标签

1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。

2)它的值必须是一个整数,表示servlet应该被载入的顺序

2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。

4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

5)当值相同时,容器就会自己选择顺序来加载。

所以,<load-on-startup>x</load-on-startup>,中x的取值12345代表的是优先级,而非启动延迟时间。

猜你喜欢

转载自blog.csdn.net/gavin_wangzg/article/details/78590908