web.xml
是 Servlet
规范制定的 JavaWeb
应用发布描述文件.
名称 描述 常用 display-name 定义了WEB应用的名字 T description 声明WEB应用的描述信息 T distributable 元素为空标签,它的存在与否可以指定站台是否可分布式处理.如果web.xml中出现这个元素,则代表站台在开发时已经 被设计为能在多个JSP Container 之间分散执行. F context-param 声明应用范围内的初始化参数。在应用内共享. T filter 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。 T filter-mapping 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。 T listener servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。Listener元素指出事件监听程序类。 T servlet 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。 T servlet-mapping 定义了servlet与url之间的映射关系,其name与
元素相连. T session-config 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。
可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。 T mime-mapping 如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。 F welcome-file-list 欢迎页面(
等) T error-page 异常被抛出时,指定将要显示的页面。 T jsp-config 用于为Web应用程序中的JSP文件提供全局配置信息。 它有两个子元素,
。 F security-constraint 用于将安全约束与一个或多个Web资源集合相关联 F login-config 指定服务器应该怎样给试图访问受保护页面的用户授权。它与
元素联合使用。 T security-role 定义安全角色.该定义包括对安全角色的可选描述以及安全角色名称。 F resource-env-refType 声明与资源相关的一个管理对象。 F resource-ref 声明一个资源工厂使用的外部资源。 F
对于 Servlet
容器收到的客户请求,以及发出的响应结果,过滤器都能检查和修改其中的信息.在 web
应用中加入过滤器,需要在 web.xml
中配置两个元素: <filter></filter>
和 <filter-mapping></filter-mapping>
.以下是 <filter></filter>
元素的示范:
SampleFilter
com.yan.SampleFilter
以上代码定义了一个过滤器,名为 SampleFilter
,实现这个过滤器的类是 com.yan.SampleFilter
.
<filter></filter>
的子元素:
属性 描述
SampleFilter
*.jsp
以上代码指明当客户请求访问 Web
应用中的所有 JSP
文件时,将触发 SampleFilter
过滤器工作.具体的过滤事务由在 <filter></filter>
元素中指定的类中完成.
<filter-mapping></filter-mapping>
元素的子元素描述:
属性 描述
指定过滤器名,这里的过滤器名必须和
元素中定义的名称对应.
指定过滤器负责过滤的URL
<servlet></servlet>
元素用来定义 Servlet
,以下代码定义了一个名为 SampleServlet
的 Servlet
,实现这个 Servlet
类的是 com.yan.servlet.SampleServlet
:
SampleServlet
com.yan.servlet.SampleServlet
<servlet></servlet>
元素的属性描述:
属性 描述
定义
名字
指定实现这个
的类
定义
的初始化参数,对应的是
定义的类中的
包含参数名和参数值,在一个
元素中可以有多个
类中通过
方法访问初始化参数.
指定当
应用启动时,加载
的次序,当这个值为正数或0时,
容器先加载数值较小的
,如果为负数或没有设定,那么
容器将在
客户首次访问这个
时加载它,即懒加载.
<servlet-mapping></servlet-mapping>
元素用来设定客户访问某个 Servlet
的 URL
,以下代码为 SampleServlet
指定 URL
为 /sample
:
SampleServlet
/sample
<servlet-mapping></servlet-mapping>
使得程序中定义的 Servlet
类名和客户访问的 URL
彼此独立.当 Servlet
类名发生改变时,只要修改 <servlet></servlet>
元素中的 <servlet-class></servlet-class>
子元素即可.
而客户端访问 Servlet
的 URL
无须做相应的改动.
<servlet-mapping></servlet-mapping>
元素的子元素:
属性 描述
指定
名字,与
元素中定义的名字匹配
指定访问这个
,这里只需给出相对于整个
应用的
<session-config></session-config>
元素用来设定 HTTP Session
的生命周期.例如,如下代码指明 Session
可以保持不活动状态的最长时间为30秒,超过这一时间, Servlet
容器将把它作为无效 Session
处理.
30
当客户访问 Web
应用时,如果仅仅给出 Web
应用的 Root URL
,没有指定具体的文件名或资源路径, Servlet
会自动调用 Web
应用的 Welcome
文件. <welcome-file-list></welcome-file-list>
元素用来设定 Welcome
文件清单.:
login.jsp
login.html
<welcome-file></welcome-file>
可以是一个序列,找到第一个合法文件即返回给客户端.
DB Connection
jdbc/sampleDB
javax.sql.DataSource
Container
其子元素描述:
属性 描述
说明
指定所引用资源的JNDI名字
指定所引用资源的类名字
指定管理所引用资源的
,有两个可选值:
,分别表示由容器还是
来创建和管理
<security-constraint></security-constraint>
用来为 Web
应用应以安全约束.以下代码指明当前用户访问该 Web
应用下的所有资源时,必须具备 admin
角色.
sample application
/*
POST
admin
NONE
<security-constraint></security-constraint>
元素的子元素:
元素 描述
声明受保护的
资源
声明可以访问受保护的资源的角色,可以包含多个
子元素
核心是
,它指定客户端和服务器之间的通信应为
默认为
,表示该应用程序不需要任何运输保证。
表示应用程序要求在客户端和服务器之间发送的数据必须以在传输过程中无法更改的方式发送。
机密意味着应用程序要求以防止其他实体观察传输内容的方式传输数据。
在大多数情况下,如果出现
标志,则表明需要使用
<web-resource-collection></web-resource-collection>
元素的子元素:
元素 描述
标识受保护的
资源
指定受保护的
路径,可以是多个
指定受保护的方法,可以是多个
<login-config></login-config>
元素指定当 Web
客户访问受保护的 Web
资源时,系统弹出的登录对话框的类型.以下代码配置了基于表单验证的登录界面:
FORM
Form-Based Authentication
/login.jsp
/error.jsp
<login-config></login-config>
元素的各个子元素:
属性 描述
指定验证方法,它有三个可选:
(基本验证),
(摘要验证)和
(表单验证)
设定安全域的名称
当验证方法为
时,配置验证页面和出错页面
当验证方法为
时,登录界面路径
当验证方法为
时,设定出错页面
<security-role></security-role>
元素指明这个 Web
应用引用的所有角色的名字.例如,如下代码声明引用了 admin
角色:
The Role that is required to log in to the sample Application
admin
如上我们所配置的安全信息生效,需要在 WEB-INF/tomcat-user.xml
中配置相应的角色信息:
当用户访问当前页面 /sample
时,会找到 <login-config></login-config>
的实际配置给用户一个登录渠道,当用户输入的用户名密码对应上 tomcat-user.xml
中配置的 user
后找到其归属的 role
,如果 role
为 admin
,则允许访问.
Original: https://www.cnblogs.com/yw0219/p/12664271.html
Author: 舒山
Title: JavaWeb-web.xml
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/537891/
转载文章受原作者版权保护。转载请注明原作者出处!