深入浅出讲述Web容器
涵盖SCWCD考试范围
实务教学经验集合
Tomcat源代码分析
逐步重构的案例实训
课后测验与实训
内附CD
案例源代码
代码运行所需库文件
环境配置工具
范例中继承了HttpServlet,并重写了doGet()方法?当浏览器以GET方法发送请求时,会调用此方法。
在doGet()方法上可以看到HttpServletRequest与HttpServletResponse两个参数,容器接收到客户端的HTTP请求后,会收集HTTP请求中的信息,并分别创建代表请求与响应的Java对象,而后在调用doGet()时将这两个对象当作参数传入。你可以从HttpServletRequest对象中取得有关HTTP请求的相关信息,在范例中是通过Http Servlet Request的getParameter()并指定请求参数名称,来取得用户所发送的请求参数值?
范例中的@Override是JDK5之后所提供的Annotation,作用是协助检查是否正确地重写了父类中所继承下来的方法,就编写Servlet而言,没有 @Override并没有影响。
HttpServletResponse对象代表对客户端的响应,可以通过其setContentType()设置正确的内容类型?范例中是告知浏览器,返回的响应要以text/html解析,而采用的字符编码是UTF8。接着再使用getWriter()方法取得代表响应输出的PrintWriter对象?,通过PrintWriter的println()方法来对浏览器输出响应的文字信息,在范例中是输出HTML并根据用户名称说声“Hello!”?
学习Servlet/JSP时有一些工程设置与部署的细节,建议你选择一个集成开发环境(Integrated Development Environment, IDE)来编写程序。为了初学者学习上的方便,本书将提供Eclipse与NetBeans IDE的工程,并使用Tomcat作为Web容器。若你不熟悉Eclipse或NetBeans IDE,附录中分别包含了Eclipse与NetBeans IDE的使用简介,可供参考。
通过这个范例,再进一步来思考一个问题,为什么要在继承HttpServlet之后重写doGet(),又为什么HTTP请求为GET时会自动调用doGet()。首先来讨论范例中所看到的应用程序接口(Application Interface, API)类图,如图2.1所示。
首先看到Servlet接口,它定义了Servlet所应当有的基本行为,例如与Servlet生命周期相关的init()、destroy()方法,提供服务时所要调用的service()方法等。
第1章 简介Web应用程序
1.1 Web应用程序架构
1.1.1 Web网站的组成
1.1.2 HTTP通信协议
1.1.3 静态页面和动态页面
1.1.4 客户端程序和服务器端程序
1.2 Servlet/JSP简介
1.2.1 Servlet的运行概念
1.2.2 Servlet与JSP的关系
1.2.3 Java EE简介
1.3 重点复习
课后练习
第2章 开发简单的Servlet&JSP
2.1 从Servlet到Web容器
2.1.1 从Servlet的编写认识HttpServlet
2.1.2 设置部署描述文件
2.1.3 Web应用程序文件组织
2.1.4 WAR的创建与部署
2.2 在HelloServlet之后
2.2.1 Web容器的作用
2.2.2 MVC与Model 2简介
2.2.3 简单的Model 2程序
2.3 重点复习
课后练习
实训题
第3章 HTTP请求、响应处理
3.1 HttpServletRequest的使用
3.1.1 请求信息的取得
3.1.2 中文处理问题
3.1.3 请求转发与包含
3.1.4 ServletRequest属性
3.2 HttpServletResponse的应用
3.2.1 对浏览器进行响应
3.2.2 sendRedirect() 与sendError()
3.2.3 ServletOutputStream的使用
3.3 综合练习/在线书签
3.3.1 在线书签应用程序分析
3.3.2 查看书签
3.3.3 添加书签
3.4 重点复习
课后练习
实训题
第4章 ServletConfig与ServletContext
4.1 关于ServletConfig
4.1.1 Servlet生命周期
4.1.2 Servlet初始参数的设置和取得
4.2 关于ServletContext
4.2.1 ServletContext简介
4.2.2 ServletContext初始参数
4.2.3 ServletContextListener
4.2.4 ServletContext属性
4.3 综合练习/在线书签
4.3.1 书签记录文件的加载
4.3.2 修改"查看书签"功能
4.3.3 修改"添加书签"功能
4.3.4 动态"添加书签"窗体
4.4 重点复习
课后练习
实训题
第5章 会话管理
5.1 会话管理的基本原理
5.1.1 隐藏字段的使用
5.1.2 Cookie的使用
5.1.3 URL重写的使用
5.2 HttpSession会话管理
5.2.1 HttpSession的使用
5.2.2 HttpSession会话管理原理
5.2.3 HttpSession与URL重写
5.3 重点复习
课后练习
实训题
第6章 过滤器与封装器
6.1 过滤器服务
6.1.1 过滤器的概念
6.1.2 过滤器的实现
6.1.3 过滤器的设置
6.2 搭配封装器
6.2.1 请求封装器
6.2.2 响应封装器
6.3 综合练习/在线书签
6.3.1 书签服务对象的实现
6.3.2 在线书签应用程序的重构
6.3.3 登录验证过滤器的实现
6.3.4 字符过滤器的使用
6.4 重点复习
课后练习
实训题
第7章 监听器、部署描述设置
7.1 监听器
7.1.1 生命周期监听器
7.1.2 属性操作监听器
7.1.3 会话属性类监听器
7.2 部署描述设置
7.2.1 Servlet的设置
7.2.2 设置欢迎与错误处理页面
7.2.3 MIME与扩展名的对应
7.3 重点复习
课后练习
实训题
第8章 使用JSP
8.1 从JSP到Servlet
8.1.1 JSP生命周期
8.1.2 指示元素
8.1.3 声明、Scriptlet与表达式元素
8.1.4 注释元素
8.1.5 隐含对象
8.1.6 错误处理
8.2 标准标签
8.2.1 与标签
8.2.2 、与简介
8.2.3 深入、与
8.2.4 Model 1简介
8.2.5 其他标准标签
8.3 表达式语言(EL)
8.3.1 EL简介
8.3.2 使用EL访问属性
8.3.3 EL隐含对象
8.3.4 EL运算符
8.3.5 EL函数的自定义
8.4 综合练习/在线书签
8.4.1 使用JSP实现"查看书签"页面
8.4.2 使用JSP实现"添加书签"页面
8.4.3 调整web.xml与其他源代码
8.5 重点复习
课后练习
实训题
第9章 使用JSTL与自定义标签
9.1 JSTL的使用
9.1.1 JSTL简介
9.1.2 流程处理标签
9.1.3 错误处理标签
9.1.4 网页导入、重定向标签
9.1.5 属性处理与输出标签
9.1.6 URL处理标签
9.2 Tag File自定义标签
9.2.1 Tag File简介
9.2.2 处理标签属性与主体
9.2.3 TLD文件
9.3 Simple Tag自定义标签
9.3.1 Simple Tag简介
9.3.2 架构与生命周期
9.3.3 处理标签属性与主体
9.3.4 与父标签的沟通
9.3.5 TLD文件
9.4 Tag自定义标签
9.4.1 Tag简介
9.4.2 架构与生命周期
9.4.3 重复执行标签主体
9.4.4 处理主体运行结果
9.4.5 与父标签的沟通
9.5 综合练习/在线书签
9.5.1 在"查看书签"页面使用JSTL
9.5.2 在"添加书签"页面使用JSTL
9.6 重点复习
课后练习
实训题
第10章 Web容器安全管理
10.1 Web容器的安全管理
10.1.1 Java EE安全的基本概念
10.1.2 声明式基本验证
10.1.3 容器基本验证原理
10.1.4 声明式窗体验证
10.1.5 容器窗体验证原理
10.1.6 使用HTTPS保护数据
10.1.7 编程安全管理
10.2 综合练习/在线书签
10.2.1 使用容器窗体验证
10.2.2 设置服务器对应文件
10.3 重点复习
课后练习
实训题
第11章 整合数据库
11.1 使用JDBC连接数据库
11.1.1 JDBC简介
11.1.2 数据库的连接
11.1.3 使用DataSource取得连接
11.1.4 Statement、ResultSet的使用
11.1.5 PreparedStatement的使用
11.2 综合练习/在线书签
11.2.1 重构/创建DAO
11.2.2 重构/修改BookmarkService
11.2.3 设置JNDI部署描述
11.2.4 添加"删除书签"功能
11.3 重点复习
课后练习
实训题
第12章 模式与重构
12.1 设计模式
12.1.1 Template Method模式(Gof设计模式)
12.1.2 Intercepting Filter模式(Java EE设计模式)
12.1.3 Model-View-Controller模式(架构模式)
12.2 从重构中认识模式
12.2.1 Business Delegate模式
12.2.2 Service Locator模式
12.2.3 Transfer Object模式
12.2.4 Front Controller模式
12.3 重点复习
课后练习
附录A NetBeans入门
A.1 NetBeans IDE与Tomcat的安装
A.2 Servlet的编写
A.3 Web应用程序的部署和运行
A.4 NetBeans工程的关闭和打开
附录B Eclipse入门
B.1 Eclipse与Tomcat的安装
B.2 Servlet的编写
B.3 Web应用程序的导出和执行
B.4 Eclipse工程的关闭、删除和导入
附录C MySQL入门
C.1 MySQL的安装和设置
C.2 MySQL的数据类型
C.3 数据库和数据表的创建
C.4 CRUD操作