Java Servlet3.1规范

目录

前言............................... 3

其他资料............................................................................................................................................................3 

谁应该读此规范................................................................................................................................................3 

API规范............................................................................................................................................................3 

其他的Java平台规范.......................................................................................................................................3 

其他重要参考资料............................................................................................................................................4 

提供反馈............................................................................................................................................................4 

专家组成员........................................................................................................................................................5 

答谢....................................................................................................................................................................5 

目录............................... 6

概览.............................. 13

1.1  什么是Servlet?..................................................................................................................................13 

1.2 什么是Servlet容器?...............................................................................................................................13 

1.3 例子...........................................................................................................................................................13 

1.4 Servlet与其他技术的比较........................................................................................................................ 14 

1.5 与Java平台企业版的关系...................................................................................................................... 14 

1.6 与Java Servlet规范2.5版本间的兼容性.............................................................................................. 14 

1.6.1 监听器(Listener)顺序............................................................................................................... 14 

1.6.2注解处理.........................................................................................................................................14 

Servlet 接口 ...................... 15

2.1 请求处理方法...........................................................................................................................................15 

2.1.1 基于Http规范的请求处理方法................................................................................................... 15 

2.1.2 附加的方法....................................................................................................................................15 

2.1.3 有条件GET支持.......................................................................................................................... 16 

2.2 实例数量...................................................................................................................................................16 

2.2.1 关于Single Thread Model.............................................................................................................. 16 

2.3 Servlet生命周期.......................................................................................................................................16 

2.3.1 加载和实例化................................................................................................................................16 

2.3.2 初始化............................................................................................................................................16 

2.3.3 请求处理........................................................................................................................................17 

2.3.4 终止服务(End of Service)......................................................................................................... 27 

Request ........................... 29

3.1 HTTP协议参数.........................................................................................................................................29 

3.1.1 当参数可用时................................................................................................................................29 

3.2文件上传....................................................................................................................................................30 

3.3 属性...........................................................................................................................................................30 

3.4 头...............................................................................................................................................................30 

3.5 请求路径元素...........................................................................................................................................31 

3.6 路径转换方法...........................................................................................................................................32 

3.7 非阻塞IO...................................................................................................................................................32 

3.8 Cookies........................................................................................................................................................33 

3.9 SSL属性....................................................................................................................................................33 

3.10 国际化.....................................................................................................................................................34 

3.11 请求数据编码.........................................................................................................................................34 

3.12 Request对象的生命周期........................................................................................................................ 34 

Servlet Context ................... 35

4.1 ServletContext接口介绍........................................................................................................................... 35 

4.2 ServletContext接口作用范围................................................................................................................... 35 

4.3 初始化参数...............................................................................................................................................35 

4.4 配置方法...................................................................................................................................................35 

4.4.1 编程式添加和配置Servlet............................................................................................................. 36 

4.4.2 编程式添加和配置Filter............................................................................................................... 36 

4.4.3编程式添加和配置Listener............................................................................................................ 37 

4.5 上下文属性...............................................................................................................................................39 

4.6 资源...........................................................................................................................................................39 

4.7 多主机和Servlet上下文.......................................................................................................................... 40 

4.8 Reload注意事项.......................................................................................................................................40 

4.8.1 临时工作目录................................................................................................................................40 

Response .......................... 41

5.1 缓冲...........................................................................................................................................................41 

5.2 头信息.......................................................................................................................................................41 

5.3 非阻塞IO...................................................................................................................................................42 

5.4 简便方法...................................................................................................................................................43 

5.5 国际化.......................................................................................................................................................43 

5.6 结束响应对象...........................................................................................................................................44 

5.7 Response的生命周期................................................................................................................................44 

过滤器............................ 45

6.1 什么是过滤器...........................................................................................................................................45 

6.1.1 过滤器组件示例............................................................................................................................ 45 

6.2 主要概念...................................................................................................................................................46 

6.2.1 过滤器生命周期............................................................................................................................ 46 

6.2.2 包装请求和响应............................................................................................................................ 47 

6.2.3 过滤器环境....................................................................................................................................47 

6.2.4 在Web应用中配置过滤器........................................................................................................... 47 

6.2.5 过滤器和RequestDispatcher.......................................................................................................... 49 

会话.............................. 51

7.1 会话跟踪机制...........................................................................................................................................51 

7.1.1 Cookies.............................................................................................................................................51 

7.1.2 SSL会话.........................................................................................................................................51 

7.1.3 URL 重写.......................................................................................................................................51 

7.1.4 会话完整性....................................................................................................................................52 

7.2 创建会话...................................................................................................................................................52 

7.3 会话范围...................................................................................................................................................52 

7.4 绑定Session属性.....................................................................................................................................52 

7.5 会话超时...................................................................................................................................................53 

7.6 最后访问时间...........................................................................................................................................53 

7.7 重要的会话语义.......................................................................................................................................53 

7.7.1 多线程问题....................................................................................................................................53 

7.7.2 分布式环境....................................................................................................................................53 

7.7.3 客户端语义....................................................................................................................................54 

注解和可插拔性.................... 55

8.1 注解和可插拔性.......................................................................................................................................55 

8.1.1 @WebServlet....................................................................................................................................55 

8.1.2 @WebFilter......................................................................................................................................56 

8.1.3 @WebInitParam...............................................................................................................................56 

8.1.4 @WebListener..................................................................................................................................56 

8.1.5 @MultipartConfig............................................................................................................................ 57 

8.1.6 其他注解/惯例...............................................................................................................................57 

8.2 可插拔性...................................................................................................................................................57 

8.2.1 web.xml模块..................................................................................................................................57 

8.2.2 web.xml和web-fragment.xml顺序.............................................................................................. 58 

8.2.3 装配web.xml、web-fragment.xml描述符和注解....................................................................... 63 

8.2.4 共享库/ 运行时可插拔性........................................................................................................... 72 

8.3 JSP容器可插拔性.....................................................................................................................................74 

8.4 处理注解和fragment................................................................................................................................74 

分派请求.......................... 75

9.1 获得一个RequestDispatcher..................................................................................................................... 75 

9.1.1 请求调度器路径中的查询字符串................................................................................................ 75 

9.2 请求调度器的使用...................................................................................................................................75 

9.3 Include方法...............................................................................................................................................76 

9.3.1 内置请求参数................................................................................................................................76 

9.4 Forward方法.............................................................................................................................................76 

9.4.1 查询字符串....................................................................................................................................77 

9.4.2 转发的请求参数............................................................................................................................ 77 

9.5 错误处理...................................................................................................................................................77 

9.6 获得一个异步上下文对象....................................................................................................................... 77 

9.7 Dispatch方法.............................................................................................................................................78 

9.7.1 查询字符串....................................................................................................................................78 

9.7.2 调度请求参数................................................................................................................................78 

Web 应用 .......................... 80

10.1 Web服务器中的Web应用程序............................................................................................................. 80 

10.2 与ServletContext的关系....................................................................................................................... 80 

10.3 Web应用的要素......................................................................................................................................80 

10.4 部署层次结构.........................................................................................................................................80 

10.5 目录结构.................................................................................................................................................80 

10.5.1 应用程序目录结构示例...................................................................................................................... 81 

10.6 Web应用程序归档文件.......................................................................................................................... 82 

10.7 Web应用程序部署描述文件.................................................................................................................. 82 

10.7.1 扩展的依赖关系.......................................................................................................................... 82 

10.7.2 Web应用程序类加载器............................................................................................................... 83 

10.8 更新Web应用........................................................................................................................................83 

10.9 错误处理.................................................................................................................................................83 

10.9.1 请求属性......................................................................................................................................83 

10.9.2 错误页面......................................................................................................................................84 

10.9.3 错误过滤器..................................................................................................................................85 

10.10 欢迎文件...............................................................................................................................................85 

10.11 Web应用程序环境................................................................................................................................86 

10.12 Web应用程序部署................................................................................................................................86 

10.13 包含web.xml部署描述文件............................................................................................................... 86 

应用生命周期事件.................. 87

11.1 介绍.........................................................................................................................................................87 

11.2 事件监听器.............................................................................................................................................87 

11.2.1 事件类型和监听器接口.............................................................................................................. 87 

11.2.2 监听器使用的一个例子.............................................................................................................. 88 

11.3 监听器类配置.........................................................................................................................................88 

11.3.1 提供监听器类.............................................................................................................................. 88 

11.3.2 部署声明......................................................................................................................................88 

11.3.3 监听器注册..................................................................................................................................89 

11.3.4 关闭时通知..................................................................................................................................89 

11.4 部署描述符示例.....................................................................................................................................89 

11.5 监听器实例和线程.................................................................................................................................90 

11.6 监听器异常.............................................................................................................................................90 

11.7 分布式容器.............................................................................................................................................90 

11.8 会话事件.................................................................................................................................................90 

映射请求到 Servlet................. 91

12.1 使用URL路径.......................................................................................................................................91 

12.2 映射规范.................................................................................................................................................91 

12.2.1 隐式映射......................................................................................................................................91 

12.2.2 示例映射集合.............................................................................................................................. 92 

安全.............................. 93

13.1 介绍.........................................................................................................................................................93 

13.2 声明式安全.............................................................................................................................................93 

13.3 编程式安全.............................................................................................................................................93 

13.4 编程式安全策略配置............................................................................................................................. 94

13.4.1 @ServletSecurity注解.................................................................................................................. 95 

13.4.2 ServletRegistration.Dynamic的setServletSecurity..................................................................... 101 

13.5 角色.......................................................................................................................................................101 

13.6 认证.......................................................................................................................................................102 

13.6.1 HTTP基本认证.......................................................................................................................... 102 

13.6.2 HTTP摘要认证.......................................................................................................................... 102 

13.6.3基于表单的认证......................................................................................................................... 102 

13.6.4 HTTPS客户端认证.................................................................................................................... 104 

13.6.5 其他容器认证机制.................................................................................................................... 104 

13.7 服务器跟踪认证信息........................................................................................................................... 104 

13.8 指定安全约束.......................................................................................................................................104 

13.8.1 组合约束....................................................................................................................................105 

13.8.2 示例............................................................................................................................................105 

13.8.3 处理请求....................................................................................................................................107 

13.8.4 未覆盖的HTTP协议方法........................................................................................................ 107 

13.9 默认策略...............................................................................................................................................109 

13.10 登录和退出.........................................................................................................................................110 

   ..................... 

猜你喜欢

转载自yangyangmyself.iteye.com/blog/2341235