目录
前言............................... 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
.....................