Java EE中web.xml详细配置说明
另味怪友
537次浏览
2019年12月08日 23:01
最佳经验
本文由作者推荐
java安卓开发app
详细配置
Webapp与WebServer的关系
详细配置
首先可以肯定的是,加载顺序与它们在 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener -> filter -> servlet
同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是应该写在 listener 配置节前呢?实际上 context-param 配置节可写在任意位置,因此真正的加载顺序为:context-param -> listener -> filter -> servlet
对于某类配置节而言,与它们出现的顺序是有关的。以 filter 为例, 中当然可以定义多个 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 类似,此处不再赘述。
由此,可以看出, 的加载顺序是:context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。
XML 元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。例如,XML 头必须是文件中的第一项,DOCTYPE 声明必须是第二项,而 web-app 元素必须是第三项。在web-app 元素内,元素的次序也很重要。服务器不一定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝执行含有次序不正确的元素的 Web 应用。这表示使用非标准元素次序的 文件是不可移植的! 所以正确的顺序是非常必要的。
文件详解
Xml代码
常用元素(按正确的顺序排列)
1.
2. icon元素指出 IDE 和 GUI 工具用来表示 Web 应用的一个和两个图像文件的位置。
3. 定义了WEB应用的名字
4. 声明WEB应用的描述信息
5. context-param元素声明应用范围内的初始化参数。
6. 过滤器元素将一个名字与一个实现接口的类相关联。
7. 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。
8. servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。 Listener元素指出事件监听程序类。
9. 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。
10. 服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。 但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。
11. 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。 可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。
12. 如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。
13. 指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。
14. 在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。
15. 对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。
16. 声明与资源相关的一个管理对象。
17. 声明一个资源工厂使用的外部资源。
18. 制定应该保护的URL。它与login-config元素联合使用
19. 指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。
20. 给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中。分别地声明角色可使高级IDE处理安全信息更为容易。
21. 声明Web应用的环境项。
22. 声明一个EJB的主目录的引用。
23. 声明一个EJB的本地主目录的应用。
24.
相应元素配置
Web应用图标:
指出IDE和GUI工具用来表示Web应用的大图标和小图标
1.
2./images/app_
3./images/app_
4.
Web 应用名称:
提供GUI工具可能会用来标记这个特定的Web应用的一个名称
1.Tomcat Example
Web 应用描述:
给出于此相关的说明性文本
1.Tomcat Example servlets and JSP pages.
上下文参数:
声明应用范围内的初始化参数。
1.
2.ContextParameter
3.test
4.It is a test parameter.
5.
6. 在servlet里面可以通过getServletContext().getInitParameter("context/param")得到
过滤器配置:
将一个名字与一个实现接口的类相关联。
1.
2.setCharacterEncoding
3.racterEncodingFilter
4.
5.encoding
6.GB2312
7.
8.
9.
10.setCharacterEncoding
11./*
12.
监听器配置
1.
2.nListener
3.
Servlet配置
1. 基本配置
2.
3.snoop
4.SnoopServlet
5.
6.
7.snoop
8./snoop
Webapp与WebServer的关系
详细配置
首先可以肯定的是,加载顺序与它们在 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener -> filter -> servlet
同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是应该写在 listener 配置节前呢?实际上 context-param 配置节可写在任意位置,因此真正的加载顺序为:context-param -> listener -> filter -> servlet
对于某类配置节而言,与它们出现的顺序是有关的。以 filter 为例, 中当然可以定义多个 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 类似,此处不再赘述。
由此,可以看出, 的加载顺序是:context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。
XML 元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。例如,XML 头必须是文件中的第一项,DOCTYPE 声明必须是第二项,而 web-app 元素必须是第三项。在web-app 元素内,元素的次序也很重要。服务器不一定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝执行含有次序不正确的元素的 Web 应用。这表示使用非标准元素次序的 文件是不可移植的! 所以正确的顺序是非常必要的。
文件详解
Xml代码
常用元素(按正确的顺序排列)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
相应元素配置
Web应用图标:
指出IDE和GUI工具用来表示Web应用的大图标和小图标
1.
2.
3.
4.
Web 应用名称:
提供GUI工具可能会用来标记这个特定的Web应用的一个名称
1.
Web 应用描述:
给出于此相关的说明性文本
1.
上下文参数:
声明应用范围内的初始化参数。
1.
2.
3.
4.
5.
6. 在servlet里面可以通过getServletContext().getInitParameter("context/param")得到
过滤器配置:
将一个名字与一个实现接口的类相关联。
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
监听器配置
1.
2.
3.
Servlet配置
1. 基本配置
2.
3.
4.
5.
6.
7.
8.