编辑推荐
分享作者学习JSP心得
涵盖SCWCD考试范围
Servlet 3.0新功能介绍
全新综合练习/微博开发
提供Lab操作案例与IDE操作
教学视频
《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学员在学习课程或认证考试中遇到的概念、操作、应用等问题及解决方案
针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做了重新编写与全面更新
详细介绍了Servlet/JSP与Web容器之间的关系,必要时从Tomcat源代码分析,了解Servlet/JSP如何与容器互动
涵盖了文本处理、图片验证、自动登录、验证过滤器、压缩处理、JSTL应用与操作等各种实用范例
以“微博”项目贯穿全书,将JSP&Servlet技术应用于实际项目开发之中,并使用重构方式来改进应用程序架构
提供练习的Lab操作文档,方便读者掌握练习重点
将IDE操作纳入教学内容,使读者能与实践结合,提供教学视频能更清楚地帮助读者掌握操作步骤
内容简介
《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet或认证考试时遇到的概念、操作、应用等各种问题及解决方案。
本书针对Servlet3.0的新功能全面改版,无论章节架构还是范例程序代码,都做了全面更新。书中详细介绍了Servlet/JSP与Web容器之间的关系,必要时从Tomcat源代码分析,了解Servlet/JSP如何与容器互动。本书还涵盖了文本处理、图片验证、自动登录、验证过滤器、压缩处理、JSTL应用与操作等各种实用范例。
本书在讲解的过程中,以“微博”项目贯穿全书,随着每一章的讲述都在适当的时候将JSP&Servlet技术应用于“微博”程序之中,使读者能够了解完整的应用程序构建方法。
本书适合JSP&Servlet初学者以及广大JSP&Servlet;技术应用人员。
作者简介
林信良(网名:良葛格)学历:台湾大学电机工程学系经历:台湾升阳教育训练技术顾问、专业讲师,Oracle授权训练中心讲师
著作:《JavaJDK5.O学习笔记》、《JavaSE6技术手册》、《JavaJDK6.0学习笔记》、《JSP&Servlet;学习笔记》、《Spring技术手册》等
译作:《Ajax实战手册》、《iQuery实战手册(第2版)》
内页插图
目录
Chapter 1 Web应用程序简介
1.1 Web应用程序基础知识
1.1.1 关于HTML
1.1.2 UR、URN与URI
1.1.3 关于HTTP
1.1.4 有关URL编码
1.1.5 动态网页与静态网页
1.2 Servlet/JSP简介
1.2.1 何谓Web容器
1.2.2 Servlet与JsP的关系
1.2.3 关于MVC/Model2
1.2.4 JavaEE简介
1.3 重点复习
1.4 课后练习
Chapter 2 编写与设置Servlet
2.1 第一个Servlet
2.1.1 准备开发环境
2.1.2 第一个Servlet程序
2.2 在HeIloServlet之后
2.2.1 关于HttpServlet
2.2.2 使用@WebServlet
2.2.3 使用web.xml
2.2.4 文件组织与部署
2.3 进阶部署设置
2.3.1 URL模式设置
2.3.2 Web目录结构
2.3.3 使用web-fragment.xml
2.4 重点复习
2.5 课后练习
Chapter 3 请求与响应
3.1 从容器到ttpServlet
3.1.1 Web容器做了什么
3.1.2 doXXXO方法
3.2 关于HttpServletRequest
3.2.1 处理请求参数与标头
3.2.2 请求参数编码处理
3.2.3 getReader()、getInputStream()读取Body内容
3.2.4 getPart().getParts()取得上传文件
3.2.5 使用RequestDispatcher调派请求
3.3 关于HttpServletResponse
3.3.1 设置响应标头、缓冲区
3.3.2 使用getWriter0输出字符
3.3.3 使用getOutputStream0输出二进制字符
3.3.4 使用sendRedirect().sendError)
3.4 综合练习
3.4.1 微博应用程序功能概述
3.4.2 实现会员注册功能
3.4.3 实现会员登录功能
3.5 重点复习
3.6 课后练习
Chapter 4 会话管理
4.1 会话管理基本原理
4.1.1 使用隐藏域
4.1.2 使用Cookie
4.1.3 使用URL重写
4.2 HttpSession会话管理
4.2.1 使用HttpSession
4.2.2 HttpSession会话管理原理
4.2.3 HttpSession与URL重写
4.3 综合练习
4.3.1 修改微博应用程序
4.3.2 新增与删除信息
4.3.3 会员网页显示信息
4.4 重点复习
4.5 课后练习
Chapter 5 Servlet进阶API、过滤器与监听器
5.1 Servlet进阶API
5.1.1 Servlet.ServletConfig与GeneriCServlet
5.1.2 使用ServletConfig
5.1.3 使用ServletContext
5.2 应用程序事件、监听器
5.2.1 ServletContext事件、监听器
5.2.2 HttpSession事件、监听器
5.2.3 HttpServletRequest事件、监听器
5.3 过滤器
5.3.1 过滤器的概念
5.3.2 实现与设置过滤器
5.3.3 请求封装器
5.3.4 响应封装器
5.4 异步处理
5.4.1 AsyncContext简介
5.4.2 模拟服务器推播
5.4.3 更多AsyncContext细节
5.5 综合练习
5.5.1 创建UserService
5.5.2 设置过滤器
5.5.3 重构微博
5.6 重点复习
5.7 课后练习
Chapter6 使用JSP
6.1 从JsP到Sen,let
6.1.1 JSP生命周期l
6.1.2 Servlet至JSP的简单转换
6.1.3 指示元素
6.1.4 声明、Scriptlet与表达式元素
6.1.5 洼释元素
6.1.6 隐式对象
6.1.7 错误处理
6.2 标准标签
6.2.1 .标签
6.2.2 、与简介
6.2.3 深入.与
6.2.4 谈谈Model1
……
Chapter7 使用JSTL
Chapter8 自定义标签
Chapter9 整合数据库
Chapter10 Web容器安全管理
Chapter11 JavaMail入门
Chapter12 从模式到框架
AppendixA 如何使用本书项目
AppendixB MySQL入门
前言/序言
深入探索Java Web开发的核心——JSP与Servlet的奥秘 作为一款专为Java Web开发者精心打造的学习指南,本书(第二版,附带DVD-ROM光盘)旨在系统性、深入性地剖析Java Server Pages (JSP) 和Servlet这两大构建动态Web应用的关键技术。本书不仅仅是API的罗列,更注重于理解技术背后的原理,掌握实用的开发技巧,以及构建高效、健壮的Web应用。从基础概念到高级特性,从单个组件的运用到整体架构的设计,本书将带领读者一步步构建起坚实的Java Web开发知识体系。 第一部分:Servlet——Java Web开发的服务端基石 本部分将为你构建坚实的Servlet编程基础。我们将从最核心的`Servlet`接口和`HttpServlet`类入手,详细讲解其生命周期(加载、初始化、服务、销毁),以及如何通过`Servlet`处理HTTP请求和生成HTTP响应。你将学习到: Servlet入门: 理解Servlet的工作原理,如何编写第一个Servlet程序,以及如何在Web服务器(如Tomcat)中部署和运行。 请求与响应处理: 深入理解`HttpServletRequest`和`HttpServletResponse`对象,包括如何获取请求参数、请求头、Cookies,以及如何设置响应状态码、响应头和发送响应内容。 Servlet配置与管理: 掌握`web.xml`(或注解)在Servlet配置中的作用,包括URL映射、初始化参数、安全约束等,并探讨Servlet 3.0+ introduced的注解驱动配置方式。 Servlet链与过滤器: 学习如何利用Servlet链将多个Servlet串联起来处理请求,以及如何使用Servlet过滤器(`Filter`)在请求到达Servlet之前或响应返回客户端之前进行预处理或后处理,例如日志记录、身份验证、数据转换等。 Servlet监听器: 了解Servlet监听器(`ServletContextListener`、`HttpSessionListener`、`ServletRequestListener`等)的作用,如何监听Web应用的生命周期事件,以及如何利用它们实现全局的资源管理和状态维护。 Session与Cookie管理: 深入解析HTTP协议的无状态特性,以及如何通过Session和Cookie来实现用户会话的维护。你将学习Session的创建、销毁、属性的存储与获取,以及Cookie的设置、读取和管理,理解它们在用户身份认证、购物车等场景中的关键作用。 Servlet的线程安全与并发处理: 探讨Servlet在多线程环境下的并发问题,理解`SingleThreadModel`(虽然已过时但理解其历史背景有益)和更现代的并发控制策略,学习如何编写线程安全的Servlet代码,避免数据竞争和死锁。 Servlet进阶特性: 探索Servlet API提供的其他高级功能,如异步处理(`AsyncContext`)用于提高I/O密集型应用的吞吐量,以及Servlet 3.1+ introduced的WebSocket支持,为实现实时通信应用奠定基础。 第二部分:JSP——Java Web开发的高效视图层技术 在掌握了Servlet的服务端处理能力后,本部分将聚焦于JSP,一种使Java代码和HTML混合编写的服务器端脚本技术,它极大地简化了Web页面的动态内容生成。你将学会: JSP基础: 理解JSP的工作原理,它如何被编译成Servlet,以及JSP页面与Servlet的交互方式。学习JSP的基本语法,包括指令(`<%@ page %>`、`<%@ include %>`、`<%@ taglib %>`)、声明(`<%! %>`)、脚本片段(`<% %>`)、表达式(`<%= %>`)和JSP动作(``、``、``、``、``)。 JSP内置对象: 详细介绍JSP提供的九个内置对象(`request`、`response`、`session`、`application`、`out`、`pageContext`、`config`、`page`、`exception`),并演示它们在实际开发中的应用。 EL表达式(Expression Language): 学习EL表达式,一种更简洁、更易读的方式来访问JavaBean的属性、Session属性、Application属性等,有效减少了脚本片段的使用。 JSTL(JSP Standard Tag Library): 深入掌握JSTL标签库,包括核心标签库(`c:`)、格式化标签库(`fmt:`)、SQL标签库(`sql:`,已不推荐在Web应用中使用,但了解其原理有益)、XML标签库(`x:`)和函数标签库(`fn:`)。JSTL是实现JSP页面无Java代码的“干净”开发的基石,能够极大提高开发效率和代码可维护性。 自定义标签: 学习如何编写自己的JSP自定义标签,扩展JSP的功能,将重复的逻辑封装起来,实现代码的重用和业务与表现的分离。 JSP与Servlet的协作: 探讨JSP和Servlet在MVC(Model-View-Controller)设计模式中的角色。理解Servlet作为控制器,处理业务逻辑并转发请求到JSP视图层,JSP负责生成动态HTML响应。 JSP的高级应用: 学习JSP的页面包含、页面重定向、错误处理机制,以及如何在JSP中使用JavaBean和DAO(Data Access Object)进行数据操作。 第三部分:整合与实践——构建完整的Java Web应用 本书的第三部分将以上两部分的知识为基础,引导读者将Servlet和JSP技术整合起来,构建一个功能完善的Java Web应用程序。我们将重点关注: MVC设计模式实战: 详细讲解MVC模式在Java Web开发中的应用。如何使用Servlet作为控制器,处理用户请求,调用业务逻辑,并将数据传递给JSP视图进行展示。 常用Java Web框架介绍(简述): 虽然本书聚焦于JSP和Servlet本身,但也会简要介绍一些流行的Java Web框架(如Spring MVC、Struts等)如何建立在Servlet API之上,以及它们如何提供更高级的功能和开发模式,帮助读者理解JSP/Servlet在现代Java Web开发生态中的位置。 数据库访问: 学习如何使用JDBC(Java Database Connectivity)连接数据库,执行SQL语句,并处理查询结果。结合Servlet和JSP,实现从数据库读取数据并展示在Web页面上,以及将用户输入的数据保存到数据库的功能。 表单处理与验证: 掌握如何处理HTML表单提交的数据,包括GET和POST请求方式,以及如何在服务端进行数据验证,确保数据的合法性和安全性。 文件上传与下载: 实现Web应用中的文件上传功能,包括处理Multipart请求,以及如何实现文件的下载功能。 异常处理与日志记录: 学习如何设计健壮的异常处理机制,捕获和处理Web应用中可能出现的各种异常,并结合日志框架(如Log4j2, SLF4j)记录应用运行时的关键信息,便于调试和问题排查。 安全性考虑: 讨论Java Web应用的基本安全问题,如SQL注入、XSS攻击、CSRF攻击等,并介绍一些基本的防御措施,包括输入验证、输出编码、使用HTTPS等。 部署与性能优化: 讲解如何将Web应用程序打包成WAR文件,并部署到Web服务器(如Tomcat)中。同时,提供一些Web应用程序性能优化的基本建议,例如缓存、连接池、代码优化等。 DVD-ROM光盘内容: 随书附赠的DVD-ROM光盘是本书学习体验的重要补充。光盘中包含了: 本书案例源代码: 所有章节中涉及的示例代码,方便读者下载、运行和修改,加深对理论知识的理解。 开发环境配置指南: 详细的开发环境搭建教程,包括JDK、Tomcat、IDE(如Eclipse/IntelliJ IDEA)的安装与配置,确保读者能够快速上手。 实用工具集: 一些在Java Web开发中常用的辅助工具和库,例如数据库连接工具、HTTP客户端工具等。 拓展阅读材料: 部分与JSP/Servlet相关的技术文档、教程或电子书链接,供读者进一步深入学习。 常见问题解答(FAQ): 整理了在学习过程中可能遇到的常见问题及其解决方案,提供快速的参考。 本书特色: 系统性强: 从基础概念到高级应用,层层递进,构建完整的知识体系。 理论与实践结合: 深入浅出地讲解理论,并辅以大量实际案例,让读者在动手实践中巩固所学。 注重原理: 强调对技术原理的理解,而非简单的API调用。 面向实战: 涵盖实际Web开发中常见的场景和技术,培养读者的工程实践能力。 内容翔实: 详细的解释和丰富的示例,满足不同水平读者的学习需求。 光盘资源丰富: 提供高质量的配套光盘,极大地提升了学习的便捷性和效率。 无论您是刚刚踏入Java Web开发领域的新手,还是希望系统性回顾和提升自身技能的资深开发者,本书都将是您不可多得的得力助手。通过阅读和实践本书内容,您将能够自信地设计、开发和维护高性能、高可用的Java Web应用程序,为您的职业发展打下坚实的基础。