Struts配置文件之web.xml
在Java Web程序的开发过程中,web.xml文件是一个必须的文件,它位于“WEB-INF”文件夹中。
在Struts 2 框架中,web.xml是一个非常重要的配置文件,它对Web程序的一些初始化信息进行了配置。Struts 2框架所依赖的FilterDispatcher过滤器(此过滤器用来拦截Web程序的HTTP请求),必须在web.xml文件中进行配置。
web.xml文件中含有一系列标签元素,这些标签元素代表了不同的功能,后面我们将讲解部分常用的标签元素。
web.xml文件中可以包含哪些标签是由其对应的Schema文件来定义的(web.xml的Schema文件以前由Sun公司定义,现在有Oracle公司定义)。因此,必须在每个web.xml文件的根元素web-app中指定其Schema文件的版本(如果不指定Schema文件,web.xml文件中将不会出现代码校验和提示功能)。
<?xml version="1.0"encoding="UTF-8"?>
<web-app id="WebApp_9"version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
...
</web-app>
在上面的代码中第1行,定义了XML文件的版本和编码方式,在<web-app>标签中指明了Schema文件的来源,其他标签元素如果需要,则要添加在<web-app>和</web-app>标签之间。
1.welcome-file-list和welcome-file元素
访问一个网站时,必不可少的便是欢迎页面(第一个页面,即输入网站会调转到的页面)。
通常,欢迎页面都会在web.xml文件中进行指定。
在web.xml文件中,welcome-file-list和welcome-file元素就是用来指定欢迎页面的。welcome-file-list元素中可以包含多个welcome-file元素,每个welcome-file元素指定一个欢迎页面,Tomcat会按照顺序查找,找到了便开始跳转,不在执行查找后面的。
代码如下:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
注释:如果在访问Web应用时,若只指定了根名,Tomcat会先查看web.xml中是否指定了欢迎界面,如果指定了,边去访问欢迎界面;否则,Tomcat默认会去查找index.html和index.jsp页面;如果两个页面都不存在,就会报错。
2.filter和filter-mapping元素
filter元素用于声明一个过滤器,使用该元素可以同时拦截多个请求的URL,filter-mapping元素用来指定与过滤器相关联的URL。
代码如下:
<filter>
<filter-name>struts2</filter-name><!-- 指定过滤器的名称 -->
<!-- 设置实现类为Struts2提供的过滤器类 -->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<!-- 定义过滤器负责拦截的URL地址 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
注:在上面代码<url-pattern>标签中的“/*”代表过滤所有的URL请求。
3.error-page元素
在浏览网页时,我们经常可以看到一些HTTP的元素错误,如:HTTP404错误,当我们不想让用户看到这些错误时,我们可以配置吗?web.xml文件中的error-page元素便能配置Web程序中的一些错误。
error-page元素可以通过错误码元素error-code配置HTTP错误的跳转,还可以通过配置exception-type来捕获java异常。
代码如下:
<!--配置HTTP错误跳转 -->
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<!-- 配置捕获java异常 -->
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/exception.jsp</location>
</error-page>
4.listener元素
listener元素用来注册监听器,其内部listener-class元素用来指定监听器的实现类名。
代码如下(用于初始化Spring框架):
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
5.session-config元素
session-config元素用来设置会session(会话)的过期时间。
代码如下:
<session-config>
<!-- 设置session超出30分钟自动失效 -->
<session-timeout>30</session-timeout>
</session-config>
6.init-param元素(必须在servlet、filter中)
init-param元素用来配置初始化值,用在servlet或者filter之中。
代码如下:
<init-param>
<param-name>struts.i18n.encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
用在servlet中代码如下:
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>org.com.LoginServlet</servlet-class>
<init-param>
<param-name>struts.i18n.encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
用在filter中代码如下:
<filter>
<filter-name>struts2</filter-name><!-- 指定过滤器的名称 -->
<!-- 设置实现类为Struts2提供的过滤器类 -->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.i18n.encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
到这里为止,web.xml的常用配置便讲解完了,希望可以供大家参考!