web.xml中的listener、filter、servlet加载顺序及其详解转载
原创在项目中,我总会遇到一些关于装载的优先级问题,最近也遇到了类似的问题。因此,我找到了数据,并对其进行了总结。以下部分内容由其他人转载。毕竟,人们写得很好,所以我不会再制造轮子,只会添加我自己的一些修改。
首先,可以肯定的是,加载顺序与它们的 web.xml 文件中的顺序无关紧要。也就是说,不是因为 filter 写在 listener 将首先加载Will的正面。 filter。最后的结论是: listener -> filter -> servlet
还有一个配置部分:context-param,它被使用 ServletContext 提供键-值对,即。应用程序上下文信息。我们的 listener, filter 等等将在初始化期间使用这些上下文中的信息。 context-param 是否应写入配置节 listener 节前的配置怎么样?实际上 context-param 配置节可以在任何地方写入,因此 真正加载顺序为:context-param -> listener -> filter -> servlet
对于某些类型的配置节,它与它们出现的顺序相关。至 filter 为例,web.xml 当然,可以在中定义多个 filter,与 filter 相关的配置部分为 filter-mapping,这里需要注意的是,对于拥有相同的 filter-name 的 filter 和 filter-mapping 对于配置节,filter-mapping 必须出现在 filter 在此之后,否则在解析时。 filter-mapping 当它对应于 filter-name 尚未定义。web 在容器启动时初始化每个容器。 filter 什么时候,是按照 filter 当请求资源与多个资源匹配时,将按初始化顺序显示配置部分。 filter-mapping 时, filter 截取资源的基础是 filter-mapping 配置节按它们被调用的顺序显示。 doFilter() 方法的。
servlet 同 filter 类似 ,在此不再重复。
由此可见,web.xml 加载顺序为: context-param -> listener -> filter -> servlet ,并且相同类型之间的实际程序调用的顺序基于对应的 mapping 呼叫的顺序。
web.xml文件详解
Xml代码

-
Web.xml常用元素
-
-
定义了WEB应用程序名称 -
声明WEB应用程序的描述信息 -
context-param元素声明应用程序范围内的初始化参数。 -
Filter元素将名称与实现组合在一起。javax.servlet.Filter接口的类是关联的。 -
命名筛选器后,即可使用它。filter-mapping元素将其与一个或多个servlet或JSP页面是关联的。 -
servlet API的版本2.3增加了对事件侦听器的支持,这些侦听器可以建立、修改和删除会话或servlet环境在收到通知时。 -
Listener元素的作用是:指示事件侦听器类。
-
在向servlet或JSP页面以开发初始化参数或自定义。URL必须先命名。servlet或JSP页面。Servlet元素用于完成此任务。 -
服务器一般是servlet提供默认设置URL:http://host/webAppPrefix/servlet/ServletName。 -
然而,这一点经常会改变。URL,以便servlet可以访问初始化参数或更轻松地处理相对URL。在更改默认设置中URL时,使用servlet-mapping元素。
-
如果某个会话在一段时间内未被访问,服务器可以将其丢弃以节省内存。 -
可使用以下方式制作HttpSession的setMaxInactiveInterval方法显式设置单个会话对象的超时值,或者可以使用。session-config元素的作用是:设置默认超时值。
-
如果Web应用程序考虑了特殊的文件,希望确保为它们分配一个特定的MIME类型,则mime-mapping元素提供了这样的保证。 -
指示服务器接收对目录名的引用,而不是对文件名的引用。URL要使用哪个文件。 -
当返回特定的HTTP可以在状态代码或抛出特定类型的异常时计算出要显示的页面。 -
对于标记库描述符文件(Tag Libraryu Descriptor file)指定别名。此功能使您能够更改TLD文件的位置, -
而不编辑这些文件的使用。JSP页面。
-
声明与资源相关的管理对象。 -
声明资源工厂使用的外部资源。 -
发展应该保护的东西URL。它与login-config元素的组合使用 -
指定服务器应如何授权尝试访问受保护页面的用户。它已关联sercurity-constraint元素的组合使用。 -
提供将在中显示的安全角色列表servlet元素内的security-role-ref元素 -
的role-name子元素。单独声明角色可实现高级IDE它更容易处理安全信息。
-
声明Web适用的环境项目。 -
声明一个EJB对主目录的引用。 -
< ejb-local-ref></ ejb-local-ref>声明一个EJB本地主目录的应用程序。
-
对应的元件配置
-
1、Web应用图标:指出IDE和GUI工具被用来表示Web应用了大图标和小图标
-
-
/images/app\_small.gif -
/images/app\_large.gif -
2、Web 应用程序名称:提供GUI可以使用工具来标记这一特定的Web应用程序的名称
-
Tomcat Example -
3、Web 应用程序描述: 给出了与此相关的说明性文本。
-
Tomcat Example servlets and JSP pages. -
4上下文参数:在应用程序范围内声明初始化参数。
-
-
ContextParameter -
test -
It is a test parameter. -
在servlet里面是可以传的。getServletContext().getInitParameter("context/param")得到
-
5,筛选器配置:带有实现的名称。javaxs.servlet.Filter接口的类是关联的。
-
-
setCharacterEncoding -
com.myTest.setCharacterEncodingFilter -
-
encoding -
GB2312 -
-
setCharacterEncoding -
/* -
6、监听程序配置
-
-
listener.SessionListener -
7、Servlet配置
-
基本配置
-
-
snoop -
SnoopServlet -
-
snoop -
/snoop -
高级配置
-
-
snoop -
SnoopServlet -
-
foo -
bar -
-
Security role for anonymous access -
tomcat -
-
snoop -
/snoop -
元素说明
-
用于声明一个servlet数据,主要是下列子要素: -
指定servlet的名称 -
指定servlet的类名称 -
指定web其中一个站台JSP网页的完整路径 -
用于定义参数,可以有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数。 -
指定当Web当应用程序启动时,加载Servlet的次序。 -
当值为正或零时:Servlet容器首先加载一个较小的值。servlet,然后依次加载其他值。servlet.
-
当值为负值或未定义时:Servlet容器将在Web客户是第一次访问该网站。servlet时加载它
-
用来定义servlet所对应的URL,包含两个子元素 -
指定servlet的名称 -
指定servlet所对应的URL -
8、会话超时配置(分钟)
-
-
120 -
9、MIME类型配置
-
-
htm -
text/html -
10,指定欢迎文件页面配置
-
-
index.jsp -
index.html -
index.htm -
11,配置错误页
-
一、 按错误代码配置error-page
-
-
404 -
/NotFound.jsp -
上述配置在系统运行时发生。404发生错误时,跳转到错误处理页面NotFound.jsp。
-
2.通过异常类型配置error-page
-
-
java.lang.NullException -
/error.jsp -
上述配置在系统运行时发生。java.lang.NullException(即空指针异常),跳转到错误处理页面error.jsp
-
12、TLD配置
-
-
http://jakarta.apache.org/tomcat/debug-taglib -
/WEB-INF/jsp/debug-taglib.tld -
如果MyEclipse我一直在报告错误。,应该把
放到 中 -
-
-
http://jakarta.apache.org/tomcat/debug-taglib -
/WEB-INF/pager-taglib.tld -
13、资源管理对象配置
-
-
jms/StockQueue -
14,资源工厂分配
-
-
mail/Session -
javax.mail.Session -
Container -
在此处配置数据库连接池:
-
-
JNDI JDBC DataSource of shop -
jdbc/sample\_db -
javax.sql.DataSource -
Container -
15、安全限制配置
-
-
Example Security Constraint -
-
Protected Area -
/jsp/security/protected/* -
DELETE -
GET -
POST -
PUT -
-
tomcat -
role1 -
16、登录验证配置
-
-
FORM -
Example-Based Authentiation Area -
-
/jsp/security/protected/login.jsp -
/jsp/security/protected/error.jsp -
17、安全角色:security-role元素提供将在中显示的安全角色列表servlet元素内的security-role-ref元素的role-name子元素。
-
单独声明角色可实现高级IDE它更容易处理安全信息。
-
-
tomcat -
18、Web环境参数:env-entry元素声明Web适用的环境项目
-
-
minExemptions -
1 -
java.lang.Integer -
19、EJB 声明
-
-
Example EJB reference -
ejb/Account -
Entity -
com.mycompany.mypackage.AccountHome -
com.mycompany.mypackage.Account -
20、本地EJB声明
-
-
Example Loacal EJB reference -
ejb/ProcessOrder -
Session -
com.mycompany.mypackage.ProcessOrderHome -
com.mycompany.mypackage.ProcessOrder -
21、配置DWR
-
-
dwr-invoker -
uk.ltd.getahead.dwr.DWRServlet -
-
dwr-invoker -
/dwr/* -
22、配置Struts
-
Struts Blank Application -
-
action -
-
org.apache.struts.action.ActionServlet
-
-
detail -
2 -
-
debug -
2 -
-
config -
/WEB-INF/struts-config.xml -
-
application -
ApplicationResources -
2 -
-
action -
*.do -
-
index.jsp -
-
struts-bean -
/WEB-INF/tld/struts-bean.tld -
-
struts-html -
/WEB-INF/tld/struts-html.tld -
-
struts-nested -
/WEB-INF/tld/struts-nested.tld -
-
struts-logic -
/WEB-INF/tld/struts-logic.tld -
-
struts-tiles -
/WEB-INF/tld/struts-tiles.tld -
23、配置Spring(基本上都在Struts在中配置)
-
-
contextConfigLocation -
-
/WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml
-
-
org.springframework.web.context.ContextLoaderListener -
-
-
org.springframework.web.context.request.RequestContextListener
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123



