第1部分入门
第1章Java Web入门
第2部分JSP基础开发
第2章JSP基本语法
第3章JSP访问数据库
第4章URL传值
第5章JSP指令和动作
第6章实践指导1
第7章基本表单开发
第8章同名表单元素和隐藏表单元素
第9章JSP和JavaBean
第10章实践指导2
第3部分JSP内置对象
第11章JSP内置对象(上)
第12章用Cookie保存登录信息
第13章JSP内置对象(下)
第14章实践指导3
第4部分Servlet开发
第15章Servlet基础编程
第16章Servlet高级编程
第17章过滤器和监听器
第18章实践指导4
第5部分标签应用与开发
第19章EL
第20章JSTL
第21章自定义标签
第6部分AJAX开发
第22章利用AJAX改善客户体验
第23章利用AJAX处理XML文档
第24章实践指导5
第7部分常用工具
第25章查询分页
第26章文件上传下载
第27章验证码开发
第28章用JFreeChart开发图片报表
第29章用iText开发PDF报表
第30章JavaMail
第31章网站安全
第32章log4j和ant
第8部分综合案例
第33章GoodEdu教务管理系统项目文档
2. 章节内容介绍
全书共分为8部分。
第1部分为入门部分,包括1章。
第1章为Java Web入门,介绍了B/S结构的主要特点,然后介绍服务器的安装、IDE的安装和配置。最后介绍建立简单的Web项目,并介绍Web项目的结构。
第2部分为JSP基础开发,包括9章。
第2章为JSP基本语法,首先学习编写JSP页面、使用注释,然后学习编写表达式、程序段和声明的方法。
第3章为JSP访问数据库,基于JDBC(Java Data Base Connectivity)技术,讲解对数据库的增删改查,然后讲解数据库操作过程中应该注意的一些问题。
第4章为URL传值,首先介绍URL传值的使用范围,然后介绍几种常用的URL传值方法,最后介绍URL传值中一些常见的问题。
第5章为JSP指令和动作,学习常见的指令,掌握page指令的各种属性及其应用、利用include属性导入外部页面,以及通过include动作导入外部页面,并掌握两种include的区别,最后掌握利用forward进行跳转。
第6章为实践指导1,利用一个投票系统,对前面内容进行复习。
第7章为基本表单开发,学习JSP编程中的表单开发,首先对表单的基本结构和基本属性进行学习,然后学习表单元素与服务器的交互。
第8章为同名表单元素和隐藏表单元素,学习同名和隐藏表单元素开发,首先对同名和隐藏表单元素的基本作用进行学习,然后学习同名表单与隐藏元素的使用方法。
第9章为JSP和JavaBean,学习JavaBean概念和编写,特别对属性的编写重点进行强调,然后学习JSP中使用JavaBean,以及JavaBean的范围,最后学习DAO和VO的应用。
第10章为实践指导2,利用两个案例对前面内容进行复习。
第3部分为JSP内置对象,包括4章。
第11章为JSP内置对象(上),学习JSP中的内置对象out、request和response。
第12章为用Cookie保存登录信息,首先学习Cookie的用途,然后学习Cookie的读写,最后学习Cookie的检查与安全。
第13章为JSP内置对象(下),首先学习session,利用session解决购物车问题,并学习session的其他作用; 然后学习application对象; 还对JSP中的其他内置对象exception、page、config、pageContext进行学习。
第14章为实践指导3,利用一个案例对前面内容进行复习。
第4部分为Servlet开发,包括4章。
第15章为Servlet基础编程,介绍Servlet的作用、如何创建一个Servlet、Servlet的生命周期、Servlet中如何使用JSP页面中常用的内置对象。
第16章为Servlet高级编程,主要学习Web容器中Servlet经常使用的高级功能。主要包括欢迎页面的设定、在Servlet内实现跳转、在Servlet中实现包含、初始化参数的设定、异常的集中处理等,并学习一种常见的开发模式——MVC模式。
第17章为过滤器和监听器,介绍过滤器、监听器的原理、编写方法和配置过程。
第18章为实践指导4,利用一个案例对前面的内容进行复习。
第5部分为标签应用与开发,包括3章。
第19章为EL,学习EL在JSP中常用的功能,包括EL中的基本语法、EL基本运算符、EL中的数据访问和内置对象。
第20章为JSTL,学习核心标签库、XML标签库、国际化标签库、数据库标签库和函数标签库中各个重要标签的应用。
第21章为自定义标签,学习自定义标签的开发、配置、使用,了解几种不同的自定义标签。
第6部分为AJAX开发,包括3章。
第22章为利用AJAX改善客户体验,首先通过一些实际的案例,学习AJAX技术的必要性,了解AJAX技术的原理; 接下来,将学习AJAX技术的基础API编程,以及了解简单的案例。
第23章为利用AJAX处理XML文档,学习怎样在AJAX中通过DOM技术来解析XML输出。
第24章为实践指导5,基于AJAX基础知识,讲解AJAX的一些典型应用,根据AJAX在不同场合的应用,将AJAX分为自动查询、按需取数据、页面部分刷新等使用领域进行学习。
第7部分为常用工具,包括8章。
第25章为查询分页,将学习查询分页的两种方法: 基于缓存的分页和基于查询的分页。
第26章为文件上传下载,将学习文件上传下载的基本实现。
第27章为验证码开发,将学习验证码的原理以及实现方式。
第28章为用JFreeChart开发图片报表,将学习报表的实现方式,基于JFreeChart,学习柱状报表、饼状报表、曲线报表等报表的生成。
第29章为用iText开发PDF报表,将学习PDF报表的实现方式。
第30章为JavaMail,将学习用Java Web编程收发邮件的方法: JavaMail。
第31章为网站安全,将学习Web编程中的一些安全问题,包括URL操作攻击、跨站脚本和SQL注入。
第32章为log4j和ant,首先讲解log4j的作用,接下来讲解其配置文件的编写,以及日志的级别操作。本章还讲解了如何利用ant来进行项目的部署。
第8部分为综合案例,即第33章。
第33章为GoodEdu教务管理系统项目文档,按照软件工程的一般过程进行开发,文档包括了软件开发的各个过程: 需求分析—总体设计—详细设计—编码的过程,文档的编写严格按照国家标准,项目的源代码将提供电子版。
3. 教学数据库介绍
本书的所有内容都基于教务管理系统。本系统中需要用到的数据表如表1~表4所示。
表1教师(T_TEACHER)(职工号,密码,姓名,性别,职称)
序号数据名称数据代码类型宽度备注
1职工号TEANOVARCHAR2(20)20主键
2密码TEAPWDVARCHAR2(20)20
3姓名TEANAMEVARCHAR2(20)20
4性别TEASEXVARCHAR2(20)20
5职称TITLEVARCHAR2(20)20
表2学生(T_STUDENT)(学号,密码,姓名,性别)
序号数据名称数据代码类型宽度备注
1学号STUNOVARCHAR2(20)20主键
2密码STUPWDVARCHAR2(20)20
3姓名STUNAMEVARCHAR2(20)20
4性别STUSEXVARCHAR2(20)20
表3课程(T_COURSE)(课程号,课程名称,学分,职工号)
序号数据名称数据代码类型宽度备注
1课程号COURSENOVARCHAR2(20)20主键
2课程名称COURSENAMEVARCHAR2(20)20
3学分CREDITFLOAT
4职工号TEANOVARCHAR2(20)20外键
表4考试成绩(T_SCORE)(学号,课程号,类型,分数)
序号数据名称数据代码类型宽度备注
1学号STUNOVARCHAR2(20)20
2课程号COURSENOVARCHAR2(20)20
3类型TYPEVARCHAR2(20)20主键
4分数SCOREFLOAT
本书提供了全书所有实例的源代码,供读者学习参考使用,所有程序均经过了作者精心的调试。
由于时间仓促和作者水平有限,书中的错误和不妥之处在所难免,敬请读者批评指正。
有关本书的意见反馈和咨询,可在清华大学出版社相关版块中与作者进行交流。
本书所用部分程序可以从清华大学出版社网站相关版面下载,或者在作者官方网站http://www.chinasei.com进行下载。
郭克华
2012年2月
第1部分入门
第1章Java Web入门
1.1认识B/S结构
1.1.1什么是B/S结构
1.1.2B/S结构的特点
1.2服务器安装
1.2.1为什么需要服务器
1.2.2获取服务器软件
1.2.3安装服务器软件
1.2.4测试服务器
1.2.5配置服务器
1.3IDE安装
1.3.1为什么需要IDE
1.3.2获取IDE软件
1.3.3安装IDE
1.3.4配置IDE
1.4第一个Web项目
1.4.1创建Web项目
1.4.2目录结构
1.4.3部署
1.4.4常见错误
本章知识体系
第2部分JSP基础开发
第2章JSP基本语法
2.1第一个JSP页面
2.1.1什么是JSP
2.1.2如何编写JSP
2.1.3测试JSP
2.2注释
2.2.1几种不同的注释
2.2.2如何写注释
2.3JSP表达式
2.3.1什么是JSP表达式
2.3.2如何使用JSP表达式
2.4JSP程序段
2.4.1什么是JSP程序段
2.4.2编写JSP程序段
2.4.3混合JSP程序段、HTML和表达式
2.4.4程序段中的变量作用范围
2.5JSP声明
2.5.1什么是JSP声明
2.5.2编写JSP声明
2.5.3需要注意的问题
本章知识体系
第3章JSP访问数据库
3.1认识JDBC
3.1.1什么是JDBC
3.1.2JDBC如何连接数据库
3.2使用厂商驱动进行数据库连接
3.2.1如何获取厂商驱动
3.2.2准备工作: 确定连接配置
3.3JDBC操作
3.3.1添加数据
3.3.2删除数据
3.3.3修改数据
3.3.4查询数据
3.4使用PreparedStatement和调用存储过程
3.4.1为什么要使用PreparedStatement
3.4.2如何使用PreparedStatement
3.4.3如何调用存储过程
3.5事务
3.5.1为什么需要事务
3.5.2如何使用事务
3.6用ODBC连接数据库
本章知识体系
第4章URL传值
4.1认识URL传值
4.1.1为什么需要URL传值
4.1.2如何使用URL传值
4.1.3如何得到URL参数
4.2用URL传值实现删除
4.2.1编写displayStu.jsp
4.2.2编写deleteStu.jsp
4.2.3将两个页面合成一个页面
4.3需要注意的问题
4.3.1怎样解决中文乱码
4.3.2URL传值的功能和安全问题
本章知识体系
第5章JSP指令和动作
5.1指令和动作
5.1.1什么是指令和动作
5.1.2指令和动作的分类
5.2page指令
5.2.1什么是page指令
5.2.2导入包
5.2.3设定字符集
5.2.4设定错误页面
5.2.5设定MIME类型和字符编码
5.2.6其他属性
5.3include指令
5.3.1为什么需要include指令
5.3.2如何使用include指令
5.3.3需要注意的问题
5.4include动作
5.4.1include动作介绍
5.4.2区分include动作和include指令
5.4.3需要注意的问题
5.5forward动作
5.5.1什么是forward动作
5.5.2如何使用forward
5.5.3传递参数
5.5.4需要注意的问题
本章知识体系
第6章实践指导1
6.1投票系统的案例需求
6.2投票系统分析
6.3开发过程
6.3.1准备数据
6.3.2如何出现进度条
6.3.3编写display.jsp
6.3.4编写vote.jsp
6.4进一步改进
6.4.1存在的问题
6.4.2如何封装数据库连接
6.4.3如何重用代码
6.5思考题: 如何防止刷票
第7章基本表单开发
7.1认识表单
7.1.1表单的作用
7.1.2定义表单
7.2单一表单元素数据的获取
7.2.1获取文本框中的数据
7.2.2获取密码框中的数据
7.2.3获取多行文本框中的数据
7.2.4获取单选按钮中的数据
7.2.5获取下拉菜单中的数据
7.3其他问题
7.3.1用JavaScript进行验证提交
7.3.2怎样解决中文乱码
7.4用表单添加学生信息
7.4.1案例需求
7.4.2案例实现
7.4.3案例思考
本章知识体系
第8章同名表单元素和隐藏表单元素
8.1认识同名表单元素
8.1.1什么是同名表单元素
8.1.2获取复选框组中的数据
8.1.3获取多选列表框中的数据
8.1.4获取其他同名表单元素中的数据
8.2隐藏表单元素
8.2.1为什么需要隐藏表单元素
8.2.2如何使用隐藏表单元素
8.2.3用隐藏表单元素实现修改
8.2.4用隐藏表单元素实现批量修改
8.2.5需要注意的问题
本章知识体系
第9章JSP和JavaBean
9.1认识JavaBean
9.1.1为什么需要JavaBean
9.1.2如何编写JavaBean
9.1.3如何编写JavaBean属性
9.2在JSP中使用JavaBean
9.2.1定义JavaBean
9.2.2设置JavaBean属性
9.2.3获取JavaBean属性
9.3DAO和VO
9.3.1为什么需要DAO和VO
9.3.2编写DAO和VO
9.3.3在JSP中使用DAO和VO
本章知识体系
第10章实践指导2
10.1案例1: 基于表单的投票系统
10.1.1案例需求
10.1.2投票系统分析
10.1.3开发过程
10.1.4存在的问题
10.2案例2: 成绩输入系统
10.2.1案例需求
10.2.2系统分析
10.2.3开发过程
10.2.4思考
第3部分JSP内置对象
第11章JSP内置对象(上)
11.1认识JSP内置对象
11.1.1什么是内置对象
11.1.2JSP的内置对象
11.2out对象
11.2.1什么是out对象
11.2.2利用out对象进行客户端输出
11.2.3利用out对象管理缓冲区
11.3request对象
11.3.1什么是request对象
11.3.2利用request对象获得客户端参数
11.3.3利用request对象获得客户端基本信息
11.4response对象
11.4.1什么是response对象
11.4.2利用response对象进行重定向
11.4.3两种跳转方法的区别
11.4.4利用response设置HTTP头
本章知识体系
第12章用Cookie保存登录信息
12.1认识Cookie
12.1.1为什么需要Cookie
12.1.2如何将Cookie写入客户端
12.1.3如何读取客户端的Cookie
12.2Cookie的应用
12.2.1用Cookie实现自动登录
12.2.2用Cookie实现页间传值
12.2.3用Cookie保存客户个性化信息
12.3Cookie安全
12.3.1Cookie是安全的吗
12.3.2如何解决安全问题
本章知识体系
第13章JSP内置对象(下)
13.1利用session开发购物车
13.1.1生活中的购物车
13.1.2为什么要学习session
13.1.3如何使用session开发购物车
13.2session进阶
13.2.1session的其他API
13.2.2session内容初始化技巧
13.2.3sessionId
13.3session的其他应用
13.3.1利用session保存登录信息
13.3.2利用session传值
13.4application对象
13.4.1为什么要学习application
13.4.2如何使用application
13.4.3利用application对象获取资源物理路径
13.5exception对象
13.6page对象
13.7config对象
13.8pageContext对象
本章知识体系
第14章实践指导3
14.1在线交流系统的案例需求
14.2系统分析
14.2.1页面结构
14.2.2状态保存
14.3开发过程
14.3.1准备数据
14.3.2编写DAO和VO
14.3.3编写loginForm.jsp和loginAction.jsp
14.3.4编写chatForm.jsp和chatAction.jsp
14.3.5编写msgs.jsp
14.3.6编写logoutAction.jsp
14.4思考题: 如何进行session检查
第4部分Servlet开发
第15章Servlet基础编程
15.1认识Servlet
15.1.1什么是Servlet
15.1.2寻找JSP对应的Servlet
15.2编写第一个Servlet
15.2.1建立Servlet
15.2.2编写Servlet
15.2.3配置Servlet
15.2.4部署Servlet
15.2.5测试Servlet
15.2.6Servlet运行机制
15.3Servlet方法
15.3.1doGet()/doPost()方法
15.3.2init()方法
15.3.3service()方法
15.3.4destroy()方法
15.3.5Servlet生命周期
15.4Servlet与JSP内置对象
15.4.1为什么要在Servlet中使用内置对象
15.4.2获得out对象
15.4.3获得request和response对象
15.4.4获得session对象
15.4.5获得application对象
15.4.6获得其他对象
本章知识体系
第16章Servlet高级编程
16.1设置欢迎页面
16.1.1为什么需要欢迎页面
16.1.2如何设置欢迎页面
16.1.3设置多个欢迎页面
16.2在Servlet内实现跳转和包含
16.2.1为什么要在Servlet内跳转
16.2.2用response对象实现跳转
16.2.3用forward方法实现跳转
16.2.4在Servlet内实现包含
16.3在Servlet中读取参数
16.3.1为什么要设置参数
16.3.2如何设置参数
16.3.3如何获取参数
16.4MVC模式
16.4.1为什么需要MVC
16.4.2MVC基本结构
16.5异常集中处理
16.5.1什么时候需要异常处理
16.5.2如何进行异常处理
本章知识体系
第17章过滤器和监听器
17.1认识过滤器
17.1.1为什么需要过滤器
17.1.2如何编写过滤器
17.1.3如何配置过滤器
17.1.4需要注意的问题
17.2过滤器的其他应用
17.2.1利用过滤器进行session检查
17.2.2利用过滤器进行Cookie检查
17.2.3利用过滤器进行权限检查
17.3认识监听器
17.3.1为什么需要监听器
17.3.2如何编写监听器
17.3.3如何配置监听器
本章知识体系
第18章实践指导4
18.1购物车案例需求
18.2系统分析
18.2.1提取系统中的动作和视图
18.2.2设计动作和视图
18.2.3设计DAO和VO
18.2.4设计数据结构和其他模块
18.3开发过程
18.3.1准备数据
18.3.2编写DAO和VO
18.3.3编写SessionListener.java
18.3.4编写InitServlet.java和showAllBook.jsp
18.3.5编写buyForm.jsp和AddServlet.java
18.3.6编写showCart.jsp和RemoveServlet.java
18.4思考题: 如何进行session检查
第5部分标签应用与开发
第19章EL
19.1认识表达式语言
19.1.1为什么需要表达式语言
19.1.2如何使用表达式语言
19.2EL基本运算
19.2.1.和[]运算符
19.2.2算术运算符
19.2.3关系运算符
19.2.4逻辑运算符
19.2.5其他运算符
19.3EL数据访问
19.3.1对象的作用域
19.3.2如何访问JavaBean
19.3.3如何访问集合
19.4其他内置对象
19.4.1使用param对象获得参数
19.4.2使用cookie内置对象
19.4.3使用initParam内置对象
本章知识体系
第20章JSTL
20.1认识JSTL
20.1.1为什么需要JSTL
20.1.2什么是JSTL
20.2核心标签库
20.2.1什么是核心标签库
20.2.2用核心标签进行基本数据操作
20.2.3用核心标签实现选择流程
20.2.4用核心标签实现循环流程
20.2.5用核心标签进行URL操作
20.3XML标签库
20.4国际化标签库
20.5数据库标签库
20.6函数标签库
20.6.1函数标签库介绍
20.6.2函数标签的使用
本章知识体系
第21章自定义标签
21.1认识自定义标签
21.1.1什么是JSP标签
21.1.2为什么需要自定义标签
21.2开发自定义标签
21.2.1确定标签父类
21.2.2编写标签中的函数
21.3配置自定义标签
21.3.1为什么需要配置自定义标签
21.3.2编写标签库定义文件
21.3.3配置标签库
21.4使用自定义标签
21.4.1导入标签库
21.4.2使用标签
21.5开发具有属性的标签
21.5.1为什么需要属性
21.5.2开发属性
21.5.3配置属性
21.5.4测试
21.5.5使用默认属性
21.5.6使用必需属性
21.5.7设置表达式属性
本章知识体系
第6部分AJAX开发
第22章利用AJAX改善客户体验
22.1AJAX概述
22.1.1为什么需要AJAX技术
22.1.2AJAX技术介绍
22.2开发AJAX
22.2.1AJAX核心代码
22.2.2API解释
22.3用AJAX实现登录
22.3.1表单验证需求
22.3.2实现方法
22.3.3需要注意的问题
本章知识体系
第23章利用AJAX处理XML文档
23.1响应的类型
23.1.1文本响应类型
23.1.2XML响应类型
23.2DOM读取
23.2.1API介绍
23.2.2案例应用
23.3DOM修改
23.3.1API介绍
23.3.2案例应用
本章知识体系
第24章实践指导5
24.1用AJAX实现自动查询
24.1.1需求介绍
24.1.2实现过程
24.1.3类似应用
24.2按需取数据
24.2.1需求介绍
24.2.2实现过程
24.2.3类似应用
24.3页面部分刷新
24.3.1需求介绍
24.3.2实现过程
24.3.3类似应用
第7部分常 用 工 具
第25章查询分页
25.1认识查询分页
25.1.1什么是查询分页
25.1.2如何进行查询分页
25.2基于缓存的分页
25.2.1如何计算页数和记录范围
25.2.2编写代码
25.3查询时分页
25.3.1如何组织SQL语句
25.3.2编写代码
本章知识体系
第26章文件上传下载
26.1认识文件上传
26.1.1什么是文件上传
26.1.2文件上传控件
26.2实现文件上传
26.2.1文件上传包
26.2.2如何编写上传表单
26.2.3如何实现上传
26.2.4如何以虚拟路径保存文件
26.2.5应该注意的问题
26.3文件下载
26.3.1什么是文件下载
26.3.2如何实现文件下载
26.3.3如何出现保存对话框
本章知识体系
第27章验证码开发
27.1认识验证码
27.1.1为什么需要验证码
27.1.2验证码原理
27.2开发验证码
27.2.1在JSP上实现验证码
27.2.2如何嵌入验证码
27.2.3如何刷新验证码
27.3如何用验证码进行验证
本章知识体系
第28章用JFreeChart开发图片报表
28.1认识报表
28.1.1为什么需要报表
28.1.2什么是报表
28.1.3环境配置
28.2开发柱状报表
28.2.1什么是柱状报表
28.2.2如何开发柱状报表
28.2.3改善柱状报表的美观性
28.3开发饼状报表
28.3.1什么是饼状报表
28.3.2如何开发饼状报表
28.4开发曲线报表
28.4.1什么是曲线报表
28.4.2如何开发曲线报表
28.4.3如何开发多曲线报表
本章知识体系
第29章用iText开发PDF报表
29.1认识PDF报表
29.1.1为什么需要PDF报表
29.1.2如何配置iText框架
29.2如何输出PDF
29.2.1如何在服务器端生成PDF
29.2.2如何将PDF输送到客户端
29.3PDF文档内容管理
29.3.1如何美化PDF文本
29.3.2如何美化PDF文档
29.3.3如何添加中文支持
29.4输出表格和图片
29.4.1如何输出表格
29.4.2如何输出图像
本章知识体系
第30章JavaMail
30.1认识JavaMail
30.1.1为什么需要JavaMail
30.1.2准备工作
30.1.3了解基本知识
30.2通过JavaMail发送普通邮件
30.2.1基本API
30.2.2编写发送代码
30.3发送复杂的邮件
30.3.1发送HTML邮件
30.3.2发送带附件的邮件
30.4读取邮件
本章知识体系
第31章网站安全
31.1URL操作攻击
31.1.1什么是URL操作攻击
31.1.2解决方法
31.2Web跨站脚本攻击
31.2.1什么是跨站脚本
31.2.2跨站脚本如何实现攻击
31.2.3如何防范跨站脚本攻击
31.3SQL注入
31.3.1什么是SQL注入
31.3.2用SQL注入删除数据
31.3.3用SQL注入修改数据
31.3.4SQL注入攻击的危害
31.3.5防范方法
本章知识体系
第32章log4j和ant
32.1认识log4j
32.1.1为什么需要log4j
32.1.2如何安装log4j
32.2如何使用log4j
32.2.1如何编写配置文件
32.2.2日志测试
32.2.3详解日志消息级别
32.2.4详解日志布局
32.2.5日志文件的存放
32.2.6将日志保存到数据库
32.2.7需要注意的问题
32.3认识ant
32.3.1为什么需要ant
32.3.2下载并配置ant
32.3.3ant的使用
本章知识体系
第8部分综 合 案 例
第33章GoodEdu教务管理系统项目文档
33.1概述
33.1.1产品介绍
33.1.2产品应遵循的标准
33.1.3产品范围
33.2需求分析报告
33.2.1引言
33.2.2任务概述
33.2.3需求规定
33.2.4运行环境规定
33.3总体设计报告
33.3.1引言
33.3.2范围
33.3.3软件系统结构设计
33.3.4数据库结构设计
33.3.5界面设计
33.4详细设计报告
33.4.1引言
33.4.2程序系统的结构
33.4.3模块设计说明
33.5编码、测试和操作手册
