【精选】webxml配置详细说明教程
web.xml详细配置

一、核心过滤器的配置正如上面看到的,当配置Struts2的FilterDispatcher类时,可以指定一系列的初始化参数,为该Filter配置初始化参数时,其中有3个初始化参数有特殊意义:—config:该参数的值是一个以英文逗号(,)隔开的字符串,每个字符串都是一个XML配置文件的位置。
Struts 2框架将自动加载该属性指定的系列配置文件。
—actionPackages:该参数的值也是一个以英文逗号(,)隔开的字符串,每个字符串都是一个包空间,Struts 2框架将扫描这些包空间下的Action类。
—configProviders:如果用户需要实现自己的ConfigurationProvider类,用户可以提供一个或多个实现了ConfigurationProvider接口的类,然后将这些类的类名设置成该属性的值,多个类名之间以英文逗号(,)隔开。
二、常量配置其中<param-name>子元素指定了常量name,而<param-value>子元素指定了常量value。
在web.xml文件中配置了该Filter,还需要配置该Filter拦截的URL。
通常,我们让该Filter拦截所有的用户请求,因此使用通配符来配置该Filter拦截的URL。
配置了Struts 2的核心FilterDispatcher后,基本完成了Struts 2在web.xml文件中的配置。
如果Web应用使用了Servlet 2.3以前的规范,因为Web应用不会自动加载Struts 2框架的标签文件,因此必须在web.xml文件中配置加载Struts 2标签库。
配置加载Struts 2标签库的配置片段如下:在上面配置片段中,指定了Struts 2标签库配置文件物理位置:/WEB-INF/struts- tags.tld,因此我们必须手动复制Struts 2的标签库定义文件,将该文件放置在Web应用的WEB-INF 路径下。
web.xml详解

web.xml详解我们都知web项⽬的运⾏,通常会⾸先加载web.xml⽂件,但却对web.xml⽂件知之甚少,今天就来揭开它的⾯纱,⼀睹它的真容!⼀.web.xml是什么?web.xml是web项⽬的配置⽂件,⼀般的web⼯程都会⽤到web.xml来配置,主要⽤来配置Listener,Filter,Servlet等。
但需要注意的是:web.xml并不是必须的,⼀个web⼯程可以没有web.xml⽂件⼆.web项⽬加载web.xml过程Tomcat启动web项⽬时,web容器就会的加载⾸先加载web.xml⽂件,加载过程如下:1.web项⽬加载web.xml,读取context-param和listener这两个结点,2.创建⼀个ServletContext(Servlet上下⽂),整个项⽬会共享这个ServletContext3.容器将<context-param>转换为键值对,并交给ServletContext4.容器创建<listener>中的类实例,创建监听器三.web.xml元素详解⾸先是表明xml的使⽤版本。
<?xml version="1.0" encoding="UTF-8"?>web-app是web.xml的根元素,包含着web.xml所有⼦元素。
xmlns以及xmlns:xsi后⾯引进的连接是表明web.xml引进的模式⽂件,便能拥有该模式的相关功能。
<web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_1.xsd"version="3.1"></web-app>指明项⽬名称<display-name>web-SSMTest</display-name>web项⽬加载web.xml⾸先读取这两个结点,加载spring容器及创建spring监听器;ApplicationContext.xml 是spring 全局配置⽂件,⽤来控制spring 特性的ContextLoaderListener的作⽤就是启动Web容器时,⾃动装配ApplicationContext的配置信息。
webxml的基本参数和配置

webxml的基本参数和配置一.理论准备先说下我记得xml规则,必须有且只有一个根节点,大小写敏感,标签不嵌套,必须配对。
web.xml是不是必须的呢?不是的,只要你不用到里面的配置信息就好了,不过在大型web工程下使用该文件是很方便的,若是没有也会很复杂。
那么web.xml能做的所有事情都有那些?其实,web.xml的模式(Schema)文件中定义了多少种标签元素,web.xml中就可以出现它的模式文件所定义的标签元素,它就能拥有定义出来的那些功能。
web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素<web-app>中,都必须标明这个web.xml 使用的是哪个模式文件。
来看个例子:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>db</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list></web-app>二.标签元素指定欢迎页面<welcome-file-list><welcome-file>index.jsp</welcome-file><welcome-file>index1.jsp</welcome-file></welcome-file-list>上面的例子指定了2个欢迎页面,显示时按顺序从第一个找起,如果第一个存在,就显示第一个,后面的不起作用。
web.xml配置说明

设置web应用程序描述符web.xml里的<session-timeout>元素。
正在装载数据……这个值以分钟为单位,并覆盖weblogic.xml中的timeoutsecs属性<session-config><session-timeout>24</session-timeout></session-config>此例表示session将在24分钟后过期当<session-timeout>设置为-2,表示将使用在weblogic.xml中设置的timeoutsecs这个属性值。
当<session-timeout>设置为-1,表示session将永不过期,而忽略在weblogic.xml中设置的timeoutsecs属性值。
该属性值可以通过console控制台来设置2 weblogic.xml设置weblogic特有部署描述符weblogic.xml的<session-descriptor>元素的timeoutsecs属性。
这个值以秒为单位<session-descriptor><session-param><param-name>timeoutsecs</param-name><param-value>2600</param-value></session-param></session-descriptor>默认值是2600秒3,jsp中控制session.setmaxinactiveinterval(7200);session是默认对象,可以直接引用,单位秒s4,servlet中控制httpsession session = request.getsession();session.setmaxinactiveinterval(7200);单位秒s配置tomcat的时候,我想禁掉目录列表的访问。
web.xml配置详解

web.xml配置详解web.xml文件我们都不陌生,每一个web应用中都会有一个web.xml文件。
在Tomcat 安装目录下的conf目录也有web.xml文件,而今天我们分析的web.xml正是Tomcat的web.xml。
我们知道,每一个web应用最终是被发布到Tomcat的webappes目录下,Tomcat是它们的运行环境。
可以理解为Tomcat的web.xml文件是每一个web应用的web.xml的父文件,Tomcat将每个应用的公共配置提取出来放在conf目录下的web.xml中,每个应用的个性配置放在自己的web.xml文件中。
如图1-1所示:图1-1web.xml关系图下面我们结合web.xml文件的内容,来分析它的配置的作用,web.xml文件主要内容如例1-1所示:例1-1conf/web.xml......<servlet><servlet-name>default</servlet-name><servlet-class>org.apache.catalina.servlets.DefaultServlet</serv let-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>listings</param-name><param-value>false</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet><servlet-name>jsp</servlet-name><servlet-class>org.apache.jasper.servlet.JspServlet</servle t-class><init-param><param-name>fork</param-name><param-value>false</param-value></init-param><init-param><param-name>xpoweredBy</param-name><param-value>false</param-value></init-param><load-on-startup>3</load-on-startup></servlet><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/</url-pattern></servlet-mapping><servlet-mapping><servlet-name>jsp</servlet-name><url-pattern>*.jsp</url-pattern><url-pattern>*.jspx</url-pattern></servlet-mapping><session-config><session-timeout>30</session-timeout></session-config><!--这里省略了大概4000多行的MIME类型的定义,只给出两种MIME类型的定义--><mime-mapping><extension>bmp</extension><mime-type>image/bmp</mime-type></mime-mapping><mime-mapping><extension>htm</extension><mime-type>text/html</mime-type></mime-mapping><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file></welcome-file-list>对以上内容进行分析,如下:(1)<servlet-name>default</servlet-name>对应一个类名为DefaultServlet的Servlet,我们看这个servlet对应的<servlet-mapping>中的映射路径是“/”,匹配所有路径。
Servlet2.4中web.xml配置及说明

Servlet2.4中web.xml配置及说明<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-app_2_4.xsd" version="2.4"><!-- icon元素指出IDE和GUI工具用来表示Web应用的一个和两个图像文件的位置--><icon><small-icon>/images/small.gif</small-icon><!-- 16*16 --><large-icon>/images/large.jpg</large-icon><!-- 32*32 --></icon><!-- display-name元素提供GUI工具可能会用来标记这个特定的Web应用的一个名称--><display-name>The applicaitonname</display-name><!-- description元素给出与此有关的说明性文本--> <description>A longer description of the application</description><!-- 用于告知Web容器: 应用设计为在分布式Web容器中运行. --><distributable /><!-- context-param元素声明应用范围内的所有组件(servlet和JSP页面)都可用的上下文参数--><context-param><!-- 参数名称--><param-name>Support</param-name><!-- 参数值--><param-value>xihaikun@</param-value&g t;</context-param><!-- 注册一个过滤器组件--><filter><!-- 描述--><description></description><!-- 名称--><display-name></display-name><icon></icon><!-- 过滤器名称--><filter-name>filtername</filter-name><!-- 具体类--><filter-class>com.ebuilds.Filter</filter-class> <!-- 初始化参数--><init-param><param-name></param-name><param-value></param-value></init-param></filter><!-- 将过滤器映像至一个URI模式, 或者映像至一个Servlet. --><filter-mapping><filter-name>filtername</filter-name><url-pattern></url-pattern></filter-mapping><filter-mapping><filter-name>filtername</filter-name><servlet-name>servletName</servlet-name> </filter-mapping><!-- 注册一个监听器--><listener><listener-class>com.ebuilds.ajax.TaskListener</list ener-class></listener><!-- 定义了Servlet或JSP页面的细节. 最常见的情况是, 此元素仅把一个Servlet或JSP页面与一个短名相关联, 并指定初始化参数: --><servlet><!-- servlet-name元素用来定义servlet的名称,该名称在整个应用中必须是惟一的--><servlet-name>TimeServlet</servlet-name><!-- 用来指定servlet的完全限定的名称--><servlet-class>com.ebuilds.ajax.TimeServlet</servl et-class><!-- 元素用来指定应用中JSP文件的完整路径。
web.xml配置详细说明教程
Web.xml常用元素<web-app><display-name></d isplay-name>定义了WEB应用的名字<description></description>声明WEB应用的描述信息<context-par am></context-param>context-param元素声明应用范围内的初始化参数。
<filter></filter>过滤器元素将一个名字与一个实现javax.servlet.Fi lter接口的类相关联。
<filte r-mapping></filter-m apping>一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。
<listener></li stener>servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或serv let环境时得到通知。
Listen er元素指出事件监听程序类。
<ser vlet></servlet>在向se rvlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。
Servlet元素就是用来完成此项任务的。
<servlet-ma pping></servlet-mapp ing>服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servle t/ServletName。
但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。
在更改缺省URL时,使用servlet-mappi ng元素。
web.xml配置详解
web.xml配置详解1、框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name)2、在web.xml配置监听器ContextLoaderListener(listener-class)ContextLoaderListener的作⽤就是启动Web容器时,⾃动装配ApplicationContext的配置信息。
因为它实现了ServletContextListener这个接⼝,在web.xml配置这个监听器,启动容器时,就会默认执⾏它实现的⽅法。
3、部署applicationContext的xml⽂件:contextConfigLocation(context-param下的param-name)4、DispatcherServlet是前置控制器,配置在web.xml⽂件中的。
拦截匹配的请求,Servlet拦截匹配规则要⾃已定义,把拦截下来的请求,依据某某规则分发到⽬标Controller(我们写的Action)来处理。
DispatcherServlet(servlet-name、servlet-class、init-param、param-name(contextConfigLocation)、param-value)在DispatcherServlet的初始化过程中,框架会在web应⽤的 WEB-INF⽂件夹下寻找名为[servlet-name]-servlet.xml 的配置⽂件,⽣成⽂件中定义的bean<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd"><!-- 在Spring框架中是如何解决从页⾯传来的字符串的编码问题的呢?下⾯我们来看看Spring框架给我们提供过滤器CharacterEncodingFilter这个过滤器就是针对于每次浏览器请求进⾏过滤的,然后再其之上添加了⽗类没有的功能即处理字符编码。
web.xml配置汇总(servlet2.3)
Web.xml配置详解(版本:2.3)部署描述符实际上是一个XML文件,包含了很多描述servlet/JSP应用的各个方面的元素,如servlet注册、servlet映射以及监听器注册。
部署描述符从下面的XML头开始:<?xml version="1.0" encoding="ISO-8859-1"?>这个头指定了XML的版本号以及所使用的编码。
头的下面是DOCTYPE声明:<!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd">这段代码指定文件类型定义(DTD),可以通过它检查XML文档的有效性。
下面显示的<!DOCTYPE>元素有几个特性,这些特性告诉我们关于DTD的信息:→web-app定义该文档(部署描述符,不是DTD文件)的根元素→PUBLIC意味着DTD文件可以被公开使用→"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"意味着DTD由Sun Microsystems, Inc.维护。
该信息也表示它描述的文档类型是DTD Web Application 2.3,而且DTD是用英文书写的。
→URL"/dtd/web-app_2_3.dtd"表示D文件的位置。
注意:在部署描述符中, <!--…-->用于注释。
部署描述符的根元素是web-app。
DTD文件规定,web-app元素的子元素的语法如下:<!ELEMENT web-app (icon?, display-name?, description?,distributable?, context-param*, filter*, filter-mapping*,listener*, servlet*, servlet-mapping*, session-config?,mime-mapping*, welcome-file-list?,error-page*, taglib*, resource-env-ref*, resource-ref*,security-constraint*, login-config?, security-role*,env-entry*,ejb-ref*, ejb-local-ref*)>正如我们所看到的,这个元素含有23个子元素,而且子元素都是可选的。
web.xml配置
●●Web.xml是非必须的;对于tomcat来说,当你只指定一个web的根名,没有指定具体页面,去访问时一个web时,如果web.xml文件中配置了欢迎页,那么就返回指定的那个页面作为欢迎页,而在文中没有web.xml文件,或虽然有web.xml,但web.xml也没指定欢迎页的情况下,它默认先查找index.html文件,如果找到了,就把index.html作为欢迎页还回给浏览器。
如果没找到index.html,tomcat就去找index.jsp。
找到index.jsp就把它作为欢迎页面返回。
而如果index.html和index.jsp都没找到,又没有用web.xml文件指定欢迎页面,那此时tomcat就不知道该返回哪个文件了,它就显示The requested resource (/XXX) is not available的页面。
其中XXX表示web的根名。
但如果你指定了具体页面,是可以正常访问的。
●content-param --> listener --> filter --> servlet●1、启动WEB项目的时候,应用服务器会去读它的配置文件web.xml.读两个节点:<listener></listener> 和<context-param></context-param>2、紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.3、容器将<context-param></context-param>转化为键值对,并交给ServletContext.4、容器创建<listener></listener>中的类实例,即创建监听.5、在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得:ServletContext = ServletContextEvent.getServletContext();context-param的值= ServletContext.getInitParameter("context-param的键");6、得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早.换句话说,这个时候,你对<context-param>中的键值做的操作,将在你的WEB项目完全启动之前被执行. 如果想在项目启动之前就打开数据库,那么这里就可以在<context-param>中设置数据库的连接方式,在监听类中初始化数据库的连接,这个监听是自己写的一个类,除了初始化方法,它还有销毁方法.用于关闭应用前释放资源.比如说数据库连接的关闭.web.xml 的加载顺序是:context-param -> listener -> filter-> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的mapping 的顺序进行调用的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<resource-ref></resource-ref>声明一个资源工厂使用的外部资源。
<security-constraint></security-constraint>制定应该保护的URL。它与login-config元素联合使用
<mime-mapping></mime-mapping>如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。
<welcome-file-list></welcome-file-list>指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。
<servlet-mapping></servlet-mapping>用来定义servlet所对应的URL,包含两个子元素
<servlet-name></servlet-name>指定servlet的名称
<url-pattern></url-pattern>指定servlet所对应的URL
8、会话超时配置(单位为分钟)
的role-name子元素中。分别地声明角色可使高级IDE处理安全信息更为容易。
<env-entry></env-entry>声明Web应用的环境项。
<ejb-ref></ejb-ref>声明一个EJB的主目录的引用。
< ejb-local-ref></ ejb-local-ref>声明一个EJB的本地主目录的应用。
4、上下文参数:声明应用范围内的初始化参数。
<context-param>
<param-name>ContextParameter</para-name>
<param-value>test</param-value>
<description>It is a test parameter.</description>
<url-pattern>/snoop</url-pattern>
</servlet-mapping>
高级配置
<servlet>
<servlet-name>snoop</servlet-name>
<servlet-class>SnoopServlet</servlet-class>
<init-param>
<filter></filter>过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。
<filter-mapping></filter-mapping>一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。
<listener></listener>servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。
</taglib>
如果MyEclipse一直在报错,应该把<taglib>放到<jsp-config>中
<jsp-config>
<taglib>
<taglib-uri>/tomcat/debug-taglib</taglib-uri>
<taglib-location>/WEB-INF/pager-taglib.tld</taglib-location>
</web-app>
相应元素配置
1、Web应用图标:指出IDE和GUI工具用来表示Web应用的大图标和小图标
<icon>
<small-icon>/images/app_small.gif</small-icon>
<large-icon>/images/app_large.gif</large-icon>
<session-config>
<session-timeout>120</session-timeout>
</session-config>
9、MIME类型配置
<mime-mapping>
<extension>htm</extension>
<mime-type>text/html</mime-type>
Listener元素指出事件监听程序类。
<servlet></servlet>在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。
<servlet-mapping></servlet-mapping>服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。
<filter-class>com.myTest.setCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
Web.xml常用元素
<web-app>
<display-name></display-name>定义了WEB应用的名字
<description></description>声明WEB应用的描述信息
<context-param></context-param>context-param元素声明应用范围内的初始化参数。
</taglib>
</jsp-config>
13、资源管理对象配置
<resource-env-ref>
<resource-env-ref-name>jms/StockQueue</resource-env-ref-name>
</listener>
7、Servlet配置
基本配置
<servlet>
<servlet-name>snoop</servlet-name>
<servlet-class>SnoopServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>snoop</servlet-name>
</mime-mapping>
10、指定欢迎文件页配置
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</context-param>
在servlet里面可以通过getServletContext().getInitParameter("context/param")得到
5、过滤器配置:将一个名字与一个实现javaxs.ser>
<filter-name>setCharacterEncoding</filter-name>
</filter>
<filter-mapping>
<filter-name>setCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6、监听器配置
<listener>
<listerner-class>listener.SessionListener</listener-class>
<servlet-name></servlet-name>指定servlet的名称
<servlet-class></servlet-class>指定servlet的类名称
<jsp-file></jsp-file>指定web站台中的某个JSP网页的完整路径
<init-param></init-param>用来定义参数,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数