web.xml整理
2015-08-23 14:36
260 查看
web.xml,部署描述符文件(专业术语),是在Servlet规范中定义的,是web应用的配置文件(Servlet 3.0已开始放弃使用web.xml,转而使用annotation注解来配置项目),它通常放置在web项目的WEB-INF目录下。
web.xml基本配置(Servlet 2.4):
注意点:
1. web.xml是一个标准的XML文件,所以它也必须遵循XML的语法规范,即大小写敏感,而且在web.xml中所有元素标签都是小写的!
2. web.xml对元素的次序敏感
Servlet2.3:
Servlet2.5:
Servlet3.0(该版本已开始推荐使用注解进行web项目配置,但还是可以使用web.xml进行配置):
JSP中取值方法:${initParam.test_param_name}
Servlet取值方法:
-
REQUEST:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问时,那么该过滤器就不会被调用。
INCLUDE:如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
FORWARD:如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。
ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。
java中获取该JNDI方法:
BASIC:HTTP规范,Base64
DIGEST:HTTP规范,数据完整性强一些,但不是SSL
CLIENT-CERT:J2EE规范,数据完整性很强,公共钥匙(PKC)
FORM:J2EE规范,数据完整性非常弱,没有加密,允许有定制的登陆界面。
未完待续!
原文地址:http://blog.csdn.net/chen_zw/article/details/47706069
web.xml基本配置(Servlet 2.4):
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" 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/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Servlet2.4Test</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
注意点:
1. web.xml是一个标准的XML文件,所以它也必须遵循XML的语法规范,即大小写敏感,而且在web.xml中所有元素标签都是小写的!
2. web.xml对元素的次序敏感
<web-app>: 顶层(根)元素,用于描述项目使用的Servlet版本规范、XML版本、编码等信息(特别注意:如果声明的Servlet版本与项目使用的真实版本不一致的话,可能导致用Eclipse打开web.xml卡死的现象),各Servlet版本的声明如下:
Servlet2.3:
<?xml version="1.0" encoding="UTF-8"?> <!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 id="WebApp_ID"> <display-name>Servlet2.3Test</display-name> </web-app>
Servlet2.5:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Servlet2.5Test</display-name> </web-app>
Servlet3.0(该版本已开始推荐使用注解进行web项目配置,但还是可以使用web.xml进行配置):
<?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>
<icon>: 指出IDE和GUI工具用来表示Web应用的大图标和小图标,图标必须为GIF或JPEG格式,扩展名必须为.gif或.jpg。
<small-icon>: 小图标,大小为16 X 16 pixel
<large-icon>: 大图标,为32 X 32 pixel。
<icon> <small-icon>/images/app_small.gif</small-icon> <large-icon>/images/app_large.gif</large-icon> </icon>
<display-name>: 提供GUI工具可能会用来标记这个特定的Web应用的一个名称。
<!-- 项目名称 --> <display-name>ServletTest</display-name>
<disciption>: 对Web应用进行相关描述说明。
<disciption>doing some Servlet Test!</disciption>
<context-param>: 用于声明应用范围内的初始化参数。在服务器启动时,容器会将
<context-param>转换为键值对,并交给servletContext,所以可以通过ServletContext对象的getInitParamter()方法来获取该参数值。
<param-name>: 参数名,该值在整个Web应用中必须是惟一的。
<param-value>: 参数值
<description >: 参数描述
<context-param> <!-- 参数名称 --> <param-name>test_param_name</param-name> <!-- 参数值 --> <param-value>This is param name test!</param-value> </context-param>
JSP中取值方法:${initParam.test_param_name}
Servlet取值方法:
String param_name=getServletContext().getInitParamter("test_param_name");
<filter>: 用于设定web应用的过滤器,可以过滤url或servlet请求。
<filter-name>: 过滤器名称,与
<filter-mapping>的
<filter-name>相同,进行一 一映射,该值在整个Web应用中必须是惟一的。
<filter-class>:过滤类,在指定的请求被过滤器捕获到后,进行相关操作的类,该类必须实现javaxs.servlet.Filter接口。
<description>:过滤器描述说明。
<init-param>: 自定义配置过滤器相关参数值,可以通过javax.servlet.FilterConfig的getInitParameter(“param-name”)获取到。
<param-name>: 参数名
<param-value>:参数值
-
<filter-mapping>: 用于声明过滤器要拦截的资源,必须与
<filter>配合使用。filter过滤器的调用顺序是根据
<filter-mapping>在web.xml中的先后顺序调用的。
<filter-name>:过滤器名称,与
<filter-mapping>的
<filter-name>相同,进行一 一映射。
<servlet-name>:被过滤的servlet名称。
<url-pattern>:被过滤的url。
<dispatcher>: 指定过滤器所拦截的资源被 Servlet 容器调用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默认REQUEST。用户可以设置多个
<dispatcher>子元素用来指定 Filter 对资源的多种调用方式进行拦截。
<dispatcher>子元素可以设置的值及其意义:
REQUEST:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问时,那么该过滤器就不会被调用。
INCLUDE:如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
FORWARD:如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。
ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。
<listener>: 用于定义注册一个监听器类,可以收到事件什么时候发生以及用什么作为响应的通知。
<listener-class>: 监听器类,须包含完整路径。
<servlet>:声明一个Servlet类
<servlet-name>:servlet名称
<servlet-class>:Servlet类,须包含完整路径。
<display-name>:
<description>: Servlet相关描述说明。
<load-on-startup>:设置Servlet加载的次序。当这个数>=0时,Web容器启动时会按数值从小到大依次加载进内存(实例化此servlet,并调用它的init方法)。如果数值<0或没有指定,则由Web容器决定什么时候加载servlet(Web容器通常会在客户首次访问这个Servlet时才加载)。配置该属性值可以避免首次Servlet访问时,加载Servlet导致的响应延迟。
<jsp-file>:
<init-param>: Servlet相关参数配置。
<param-name>:参数名
<param-value>:参数值
<description>:相关描述说明
<run-as>: 如果定义了run-as元素,它会重写用于调用Web应用中servlet所设定的Enterprise JavaBean(EJB)的安全身份。
<description>:相关描述说明
<role-name>:为当前Web应用定义的一个安全角色的名称。
<servlet-mapping>: 将URL模式映射到某个servlet上。
<servlet-name>:servlet名称
<url-pattern>:
<session-config>:指定javax.servlet.http.HttpSession对象的相关参数。
<session-timeout>:指定默认的session超时时间,单位为分钟,该数值必须为整数。如果
<session-timeout>元素的值为零或负数,则表示会话将永远不会超时。也可以用HttpSesion的setMaxInactiveInterval()方法设置sesion的时效。
<session-config> <session-timeout>30</session-timeout> </session-config>
<mime-mapping>:将mime类型映射到扩展名
<extension>:文件扩展名
<mime-type>:MIME类型
<mime-mapping> <extension>doc</extension> <mime-type>application/vnd.ms-word</mime-type> </mime-mapping> <mime-mapping> <extension>xls</extension> <mime-type>application/vnd.ms-excel</mime-type> </mime-mapping> <mime-mapping> <extension>ppt</extesnion> <mime-type>application/vnd.ms-powerpoint</mime-type> </mime-mapping>
<welcome-file-list>:
<welcome-file>:用于指定默认首页文件的名称
<error-page>:
<error-code>:HTTP错误代码
<exception-type>:Java异常类型的完全限定的名称,eg:java.lang.Exception | java.io.IOException | javax.servlet.ServletException …
location >:跳转的路径
<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>
<jsp-config>:用于JSP的相关配置,该标签为Servlet2.4版本新增属性
<taglib>:用于自定义标签库
<taglib-uri>:TLD文件的URI
<taglib-location>:TLD文件在项目中的存放路径
<jsp-property-group>:Servlet2.4版本新增属性
<description>: 相关描述说明
<display-name>:
<el-ignored>:是否不支持EL语法,取值:true|false
<page-encoding>:设定JSP页面的编码
<scripting-invalid>:是否不支持<%scription%>语法,取值:true|false
<is-xml>:
<icon>:
<small-icon>:
<large-icon>:
<url-pattern>:设定值所影响的范围,如:/CH2 或者/*.jsp
<include-prelude>:
<include-coda>:
<resource-env-ref>:声明与资源相关的一个管理对象
<description>:相关描述说明
<env-entry-name>:
<env-entry-type>:
<env-entry-value>:
<resource-ref>:
<description>:相关描述说明
<res-ref-name>:与java:comp/env上下文相对应的JNDI名称,在整个Web应用中必须是惟一的。
<res-type>:指明资源类型
<res-auth>:指定管理所引用资源的Manager,取值:Application | Container。Container表示由容器来创建和管理Resource,Application表示由web应用来创建和管理Resource。
<res-sharing-scope>:是否可以共享通过给定资源管理器连接工厂引用获得的连接。取值:Shareable(默认值) | Unshareable。
<resource-env-ref> <resource-env-ref-name>jdbc/testDataSource</resource-env-ref-name> <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type> <res-auth>Container</res-auth> </resource-env-ref>
java中获取该JNDI方法:
Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jndi/testDataSource"); Connection conn = ds.getConnection();
<security-constraint>:
<login-config>:设定该web站点四种认证类型
<auth-method>:指定验证方法。取值:BASIC | DIGEST | FORM | CLIENT-CERT。
BASIC:HTTP规范,Base64
DIGEST:HTTP规范,数据完整性强一些,但不是SSL
CLIENT-CERT:J2EE规范,数据完整性很强,公共钥匙(PKC)
FORM:J2EE规范,数据完整性非常弱,没有加密,允许有定制的登陆界面。
<realm-name>:指定BASIC验证中使用的领域名。
<auth-method>属性配置为BASIC时才有效。
<form-login-config>:指定FORM验证中,相关登陆页面和出错页面。
<auth-method>属性配置为FORM时才有效。
<form-login-page>:定义登陆页面的路径
<form-error-page>:定义出错页面的路径
<security-role>:
<env-entry>:’
<ejb-ref>:
<ejb-local-ref>:
未完待续!
原文地址:http://blog.csdn.net/chen_zw/article/details/47706069
相关文章推荐
- 使用jQuery.wechat构建微信WEB应用
- 关于JSP配置文件web.xml加载顺序详解
- Servlet与JSP间的两种传值情况
- JSP、Servlet中get请求和post请求的区别总结
- jsp和servlet的区别探讨
- Struts2访问servlet分享
- java中Servlet处理乱码的方法
- jsp web.xml文件的作用及基本配置
- Servlet 过滤器详细介绍
- servlet中session简介和使用例子
- 在Jsp Servlet中页面重新定向总汇
- Servlet动态网页技术详解
- jsp和servlet操作mysql中文乱码问题的解决办法
- js调用后台servlet方法实例
- 利用JQuery和Servlet实现跨域提交请求示例分享
- JavaWeb编程 Servlet的基本配置
- java servlet 几种页面跳转的方法
- servlet 解决乱码问题
- 实例解读Ajax与servlet交互的方法