web.xml整理
web.xml,部署描写叙述符文件(专业术语)。是在Servlet规范中定义的。是web应用的配置文件(Servlet 3.0已開始放弃使用web.xml,转而使用annotation注解来配置项目)。它通常放置在web项目的WEB-INF文件夹下。
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>
: 用于声明应用范围内的初始化參数。在server启动时,容器会将<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>
:
未完待续!
web.xml整理的更多相关文章
- TOMCAT web.xml 整理说明
JavaWeb项目中web.xml有关servlet的基本配置: 我们注意到,tomcat下的conf中也有一个web.xml文件,没错的,所有的JavaWeb项目中web.xml都继承自服务器下的w ...
- web.xml总结整理
web.xml 配置的详细解读 web.xml (部署描述符文件) 整理参考: 加载顺序 ServletContext-->listener->filter->srvlet ...
- 【未整理】web.xml加载顺序.RP
一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Ser ...
- web.xml配置整理
虽然是做web开发,但是web中的很多配置有的时候却不是很清楚,只是知道怎么配置,于是就把在网上看到各种关于web.xml的东西整理一下: web.xml中url-pattern的3种写法 1完全匹配 ...
- web.xml相关知识摘录整理
web.xml 中的listener. filter.servlet 加载顺序及其详解 在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人 ...
- web.xml常用标签整理(不定期更新)
<?xml version="1.0" encoding="UTF-8"?><!-- 标明使用的XML版本和文档编码,此项必须位于第一行,之前 ...
- web.xml加载顺序
一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Ser ...
- java web.xml配置详解
1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...
- Spring Security 从配置入门 学习讲解。万恶之源------------web.xml
这段时间,工作闲了下来,接触了Spring Security,对于我一个基础很差的人来说,无疑是个挑战啊. 经过一段时间的摸索,终于有了点眉目,在这里,要特别感谢http://blog.csdn.ne ...
随机推荐
- [转]linux sudo 命令
转自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/11/11/2245341.html “Sudo”是Unix/Linux平台上的一个 ...
- Git系列学习(1)-Git安装
一.概述 msysGit名字前面的四个字面来源于MSYS项目: MSYS项目来源于MinGW(Minimalist GNU for Windows,最简GNU工具集) 通过添加一个bash提供的she ...
- NHibernate系列学习(一)-看看用NH怎么做增速改查
1.本次所有代码是在一下环境下运行的 学习系统:win8 64bit 开发环境:VS2013,MSSQL2012 NHibernate版本:NHibernate-4.0.3.GA [文章结尾有本次笔记 ...
- Python随笔-函数
在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. def GetMax(v1, v2):#注 ...
- JVM 内存分配和垃圾回收(GC)机制
一 判断对象是否存活 垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“活着”,哪些已经"死去”,即不能再被任何途径使用的对象. 1.1 引用计数法 (Reference ...
- sql server 数据分析优化实战(一)——SQL语句优化
前言 在我们进行数据分析的时候,首要的目标是根据业务逻辑,通过编写SQL代码得到我们想要的结果,这是毋庸置疑的.一般情况下,由于我们分析的数据量比较少,体会不出SQL语句各种写法的性能优劣,对SQL代 ...
- SQL基本操作——case end
case end进行多条件的判断 --查看Person表 select * from Person --对math字段进行条件判断 select name,数学成绩= case then '优' th ...
- 详谈java集合框架
1.为什么使用集合框架 当我们并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架 2.Java集合框架包含的内容 接口:(父类)Collection接口下包含Li ...
- Redis事物及锁的运用
redis与mysql事物比较如下: 下面是一个redis事物运用于买票的demo
- ES6 数组去重 方法用了filter或者 indexOf Array.from