Servlet与JSP权威指南:用web.xml控制Web应用行为
需积分: 0 107 浏览量
更新于2024-09-28
收藏 119KB PDF 举报
"《用web.xml控制Web应用的行为》是Servlet与JSP权威指南第五章的内容,由Marty Halls撰写,钟鸣石永翻译,机械工业出版社2002年出版。该章节主要介绍了如何使用web.xml配置文件来控制Web应用程序的行为。"
在Java Web开发中,`web.xml`是部署描述符文件,它是应用的核心配置文件,用于定义Servlet、JSP、过滤器、监听器等组件的行为以及Web应用的整体设置。以下是该文件中涉及的关键知识点:
1. **定义头和根元素**:
- XML头:文件以XML头开始,定义XML版本和字符编码。
- DOCTYPE声明:紧跟XML头,指定servlet规范版本(如2.2或2.3)和DTD,确保解析遵循正确的语法规则。
- `web-app`元素:作为部署描述符的根元素,所有其他配置都包含在这个元素内部。
2. **分配名称和定制URL**:
- 分配名称:用于给Servlet、Filter、Listener等组件分配唯一的名称。
- 定义定制URL:通过`servlet-mapping`元素映射Servlet到特定URL模式,便于请求分发。
3. **禁止激活器servlet**:
- 通过重新映射或全局禁止,可以避免某些Servlet被自动激活,例如通过`<servlet-mapping>`元素的URL模式排除。
4. **初始化和预装载servlet与JSP页面**:
- servlet初始化参数:通过`<init-param>`元素分配,这些参数在Servlet实例化时可用。
- JSP初始化参数:类似地,JSP页面也可以有初始化参数,用于设置页面级的配置。
- 应用范围内的初始化参数:通过`<context-param>`分配,可供整个应用中的所有组件使用。
- 服务器启动时装载servlet:通过`load-on-startup`元素设定,让Servlet在服务器启动时即初始化。
5. **声明过滤器**:
- 使用`<filter>`和`<filter-mapping>`元素定义过滤器及其作用范围,过滤器可应用于特定的URL模式或Servlet。
6. **指定欢迎页**:
- 通过`<welcome-file-list>`元素指定用户访问目录时默认展示的页面。
7. **指定处理错误的页面**:
- `error-code`元素:当HTTP错误码发生时,转向指定的错误处理页面。
- `exception-type`元素:捕获特定类型的异常,将请求转发至对应的错误页面。
8. **提供安全性**:
- 指定验证方法:例如HTTP基本认证、表单认证等。
- 限制资源访问:使用`<security-constraint>`元素定义哪些URL需要受保护。
- 分配角色名:定义应用中的安全角色,如管理员、用户等。
9. **控制会话超时**:
- 通过`<session-config>`元素的`<session-timeout>`子元素设置会话的默认过期时间。
10. **Web应用的文档化**:
- 可用于添加应用的元数据信息,帮助理解和维护。
11. **关联文件与MIME类型**:
- 通过`<mime-mapping>`元素将文件扩展名与对应的MIME类型关联,影响文件的下载或浏览器处理方式。
12. **定位TLD**:
- TLD(Tag Library Descriptor)是自定义标签库的描述文件,通过`<taglib>`元素指定其位置。
13. **指定应用事件监听程序**:
- 使用`<listener>`元素注册监听器,它们能响应应用生命周期中的特定事件。
14. **J2EE元素**:
- 针对J2EE环境的特定配置,如EJB的引用、资源的注入等。
通过理解和熟练使用这些配置,开发者能够精确控制Web应用程序的行为,实现高效且灵活的应用架构。
2007-11-27 上传
2019-12-04 上传
2021-10-20 上传
2021-09-27 上传
2021-09-27 上传
2009-03-16 上传
2021-10-20 上传
2021-10-12 上传
cck1112
- 粉丝: 2
- 资源: 35
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析