内容简介
《Servlet&JSP学习笔记》以“在线书签”项目贯穿全书,随着每一章的讲述都在适当的时候将 Servlet & JSP技术应用于“在线书签”程序之中,并作适当修改,以了解完整的应用程序构建方法。《Servlet&JSP学习笔记》内容包括简单的Web应用程序,开发简单的Servlet & JSP合理管理,JSP的使用,整合数据库等相关内容,《Servlet&JSP学习笔记》适合Servlet & JSP初学者,以及广大的Servlet & JSP技术应用人员。
目录
第1章 简介Web应用程序 1
1.1 Web应用程序架构 2
1.1.1 Web网站的组成 2
1.1.2 HTTP通信协议 5
1.1.3 静态页面和动态页面 8
1.1.4 客户端程序和服务器端程序 10
1.2 Servlet/JSP简介 11
1.2.1 Servlet的运行概念 11
1.2.2 Servlet与JSP的关系 14
1.2.3 Java EE简介 17
1.3 重点复习 19
课后练习 20
第2章 开发简单的Servlet & JSP 23
2.1 从Servlet到Web容器 24
2.1.1 从Servlet的编写认识HttpServlet 24
2.1.2 设置部署描述文件 27
2.1.3 Web应用程序文件组织 29
2.1.4 WAR的创建与部署 30
2.2 在HelloServlet之后 31
2.2.1 Web容器的作用 32
2.2.2 MVC与Model 2简介 34
2.2.3 简单的Model 2程序 37
2.3 重点复习 40
课后练习 42
实训题 44
第3章 HTTP请求、响应处理 45
3.1 HttpServletRequest的使用 46
3.1.1 请求信息的取得 46
3.1.2 中文处理问题 50
3.1.3 请求转发与包含 53
3.1.4 ServletRequest属性 54
3.2 HttpServletResponse的应用 56
3.2.1 对浏览器进行响应 56
3.2.2 sendRedirect() 与sendError() 58
3.2.3 ServletOutputStream的使用 59
3.3 综合练习/在线书签 61
3.3.1 在线书签应用程序分析 61
3.3.2 查看书签 62
3.3.3 添加书签 64
3.4 重点复习 68
课后练习 70
实训题 72
第4章 ServletConfig与ServletContext 73
4.1 关于ServletConfig 74
4.1.1 Servlet生命周期 74
4.1.2 Servlet初始参数的设置和取得 76
4.2 关于ServletContext 79
4.2.1 ServletContext简介 79
4.2.2 ServletContext初始参数 82
4.2.3 ServletContextListener 82
4.2.4 ServletContext属性 84
4.3 综合练习/在线书签 85
4.3.1 书签记录文件的加载 86
4.3.2 修改“查看书签”功能 87
4.3.3 修改“添加书签”功能 88
4.3.4 动态“添加书签”窗体 91
4.4 重点复习 94
课后练习 96
实训题 99
第5章 会话管理 101
5.1 会话管理的基本原理 102
5.1.1 隐藏字段的使用 102
5.1.2 cookie的使用 105
5.1.3 URL重写的使用 110
5.2 HttpSession会话管理 112
5.2.1 HttpSession的使用 112
5.2.2 HttpSession会话管理原理 116
5.2.3 HttpSession与URL重写 118
5.3 重点复习 120
课后练习 122
实训题 124
第6章 过滤器与封装器 125
6.1 过滤器服务 126
6.1.1 过滤器的概念 126
6.1.2 过滤器的实现 128
6.1.3 过滤器的设置 131
6.2 搭配封装器 133
6.2.1 请求封装器 133
6.2.2 响应封装器 137
6.3 综合练习/在线书签 141
6.3.1 书签服务对象的实现 141
6.3.2 在线书签应用程序的重构 144
6.3.3 登录验证过滤器的实现 147
6.3.4 字符过滤器的使用 149
6.4 重点复习 150
课后练习 152
实训题 155
第7章 监听器、部署描述设置 157
7.1 监听器 158
7.1.1 生命周期监听器 158
7.1.2 属性操作监听器 162
7.1.3 会话属性类监听器 163
7.2 部署描述设置 166
7.2.1 Servlet的设置 166
7.2.2 设置欢迎与错误处理页面 169
7.2.3 MIME与扩展名的对应 170
7.3 重点复习 171
课后练习 173
实训题 175
第8章 使用JSP 177
8.1 从JSP到Servlet 178
8.1.1 JSP生命周期 178
8.1.2 指示元素 181
8.1.3 声明、scriptlet与表达式元素 184
8.1.4 注释元素 189
8.1.5 隐含对象 189
8.1.6 错误处理 192
8.2 标准标签 196
8.2.1 与<
摘要与插图
范例中继承了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()方法等。