在前几年JSP+Servlet+JavaBean是采用Java语言进行Web开发的常用技术,但后来Struts 2框架逐渐流行起来,再后来Spring框架成了当仁不让的霸主,而Hibernate框架则成了持久层处理技术的代表。如果细细比较,可以发现这几种技术各有千秋,因此 Struts 2+Spring+Hibernate的组合成了采用Java语言进行Web开发的主流。为了使读者尽快了解和掌握如何使用Struts 2+Spring+Hibernate 这3个框架整合的方式来开发Web应用系统,笔者花费了大量的时间来完成这本关于Struts 2 + Spring +Hibernate 整合的书。为了尽可能保证内容的准确和权威性,笔者查阅了大量的官方文档,并针对关键部分阅读了相应的源代码。
本书的写作目标就是力争让读者尽可能地掌握JSP+Servlet+JavaBean和Struts 2+ Spring+Hibernate这两个解决方案,以及相关框架整合的相关知识。本书以现实职场中经典模块和完整系统的项目为背景,通过多种前台技术和后台技术的不同组合,让读者深入地了解这些流行架构的使用方法。
本书有何特色
1.从基础开始,由浅入深
JSP/Servlet技术是Java Web技术的基础,很多初学者在学习SSH之前并没有很好地掌握该技术,因此本书考虑这个原因,在第1篇讲解了如何搭建Java Web开发环境,第2篇介绍了JSP+Servlet+JavaBean技术解决方案,使读者对Java Web开发技术有一个初步的了解。同时每一篇的章节按照由浅入深、循序渐进的顺序编排,从而可以使读者渐进式地学习本书的知识。
2.各篇独立,内容完整
本书的每一篇都是相对独立的。如第3篇讲解了Struts 2的各种技术;第4篇讲解了Hibernate的主要技术,而且每一篇讲解的技术比较完整。这样就会给想学习SSH整合技术,但却未掌握SSH中的一项或几项技术的读者带来方便,至少不需要同时准备几本书,从而给读者节省了大量的时间和金钱。
3.各章实例丰富,使读者更容易理解书中的知识
本书几乎在每一章都提供了大量的实例。这些实例充分展现了相关知识点的实现细节。读者可以在学习相关知识点后,通过上机实践这些例子来更深入地了解并掌握这些知识点。
4.提供了完整的实例,使读者更进一步体会SSH开发模式的精髓
本书以现实职场中经典模块和完整系统的项目为背景,结合当前Java Web技术的主流开发技能需求,组织和编写最后两个完整的实例(网络硬盘和论坛系统)。这两个实例都采用了SSH模式进行开发。通过对这两个实例的深入研究,读者可以比较全面地掌握基于SSH模式的Web应用程序的开发步骤和开发方法,并可将实例中所采用的技术应用到自己的项目中。
5.使用最新版本的开发工具和框架
本书所使用的开发工具和相关的框架在笔者写作本书时都是最新版本,如MyEclipse 10.6、Struts 2.3、Hibernate 4.1和Spring 3.2等。读者可以在学习SSH开发技术的同时,接触到目前最新版本的开发工具和框架。即使读者目前所使用的软件版本低于本书所使用的软件版本,也可以为未来的工作奠定基础。
6.配有源代码与视频光盘,方便读者使用
为了方便读者实验本书提供的实例程序,特将所有的源代码都收录到了配书光盘中,以方便读者使用。另外,作者特别为本书录制了近20小时高清教学视频,将书中的一些相关操作直观地展示给读者,以达到更好的学习效果。另外,光盘中还赠送了大量的进阶学习视频和实例源代码。
本书内容
本书共28章,分为5篇,结合目前最新软件开发环境MyEclipse 10.6,全方位介绍了关于Java Web开发的基本概念和各种解决方案。从搭建Java Web环境讲起,然后详细介绍了JSP+Servelt+JavaBean解决方案、Struts 2框架、Hibernate框架和Spring框架,最后结合笔者的经验,利用Struts 2+Spring+Hibernate解决方案讲解了两个完整项目。
第1篇 Web开发基础篇(第1~6章)
本篇首先介绍了Java Web环境的搭建过程,包括JDK 7、Eclipse 4、MyEclipse 10、Eclipse IDE for Java EE Developers和Tomcat 7等软件的下载、安装和配置,然后详细讲解了Windows平台下数据库MySQL软件和数据库客户端SQLyog软件的安装和配置过程。接着重点介绍了JSP+Servlet+JavaBean技术解决方案和通过该方案实现项目的过程。其中前者首先介绍了Web技术的发展历史和JSP的两种模型,然后详细介绍了Java Web的客户端技术、Servlet技术和JSP技术。为了便于读者掌握JSP+Servlet+JavaBean技术解决方案,最后以用户注册登录系统为例,详细讲解了其开发过程。
第2篇 Struts 2篇(第7~16章)
本篇主要介绍了Struts 2框架和通过该框架实现项目的过程。其中前者首先介绍了Struts 2框架的体系结构、MVC模式和相关基础知识,例如Struts 2 Action、处理结果、模型驱动和异常处理;然后详细介绍了Struts 2框架的各种高级知识,如拦截器技术、类型转换器、输入校验技术、文件上传技术、国际化技术和Struts 2标签。为了便于读者掌握Struts 2框架,最后以用户注册登录系统为例,详细讲解了其开发过程。
第3篇 Hibernate篇(第17~21章)
本篇主要介绍了Hibernate框架的基础知识和高级知识。其中前者首先介绍了Hibernate框架基础知识,例如ORM技术、Hibernate与EJB关系等;然后详细介绍了Hibernate框架的各种核心知识,通过配置文件和注释,对Hibernate进行配置、O/R映射、会话的基本操作、标准(Criteria)查询API技术等。最后又简单介绍了Hibernate框架的一些高级技术,例如事务、锁、拦截器、事件和过滤器。
第4篇 Spring篇(第22~25章)
本篇主要介绍了Spring框架和通过该框架实现项目的过程。其中前者首先介绍了Spring框架的主要特性和核心技术;然后详细介绍了Spring框架的各种核心知识,如反向控制技术(Ioc)、数据库技术和AOP技术。
第5篇 综合实例篇(第26~28章)
本篇首先介绍了SSH 5三大框架的整合思路和流程,然后重点介绍了Java Web技术的应用和实战开发。其中,用Struts 2+Hibernate 4+Spring 3技术解决方案实现网络硬盘项目。为了便于读者掌握该项目,在具体讲解时按照面向应用的方式对该系统分成4层,即持久对象层、数据访问层、业务逻辑层和Web表示层,然后详细介绍了各层。最后介绍了一个网络论坛系统的实现,该系统不仅使用Struts 2+Hibernate 4+Spring 3技术解决方案实现,而且还涉及一个Web编辑器(FCKEditor)的安装和使用。
本书超值DVD光盘内容
* 本书各章涉及的实例源文件;
* 19.4小时本书配套教学视频;
* 15.5小时Struts 2+Hibernate+Spring整合开发教学视频;
* 19个Java Web典型模块源程序及9.2小时教学视频;
* 5个Java Web项目案例源程序及1.3小时教学视频。
适合阅读本书的读者
* 需要全面学习Java Web开发技术的读者;
* 初步掌握Java技术,想进一步学习Java Web开发的读者;
* 对SSH整合技术有了一定的了解,想进一步提高的读者;
* 正在使用SSH整合技术开发项目,想作为参考的程序员;
* 大中专院校的学生;
* 社会培训学生;
* 需要作为案头必备手册的程序员。
本书作者
本书第1~8章主要由李宁编写,第9~16章主要由南阳理工学院的刘岩编写,第17~28章主要由张国平编写。其他参与编写的人员有陈一东、高阳、蒋欣、卢晓洋、秦婧、张婉婉、周萌、祝翠、宾光富、陈非凡、陈泓石、陈曦、崔晓明、房伟、高素芳、高志雷、郭靖、郭晓博、胡敏、黄翌、姜艳丽、黎敬硕、李海涛、李槐、李锐、林映红、马航、宁伟斌、邵明洋、孙浏毅、唐颂侃、王倩、王永静。
本书的编写对笔者而言是一个“浩大的工程”。虽然作者投入了大量的精力和时间,但只怕百密难免一疏。若有任何疑问或疏漏,请发邮件至bookservice2008@163.com。最后祝读者读书快乐!
编著者
第1篇 Web开发基础篇
第1章 搭建开发环境( 教学视频:23分钟)
1.1 各种软件和框架的版本
1.2 下载与安装JDK 7
1.3 下载与安装Eclipse 4
1.4 下载与安装MyEclipse 10
1.5 下载与安装Eclipse IDE for Java EE Developers
1.6 下载与安装Tomcat 7
1.7 在MyEclipse中配置Tomcat
1.8 在Eclipse IDE for Java EE Developers中配置Tomcat
1.9 下载与安装MySQL 5数据库
1.10 下载与安装数据库客户端软件SQLyog
1.11 小结
1.12 实战练习
第2章 Java Web应用开发基础( 教学视频:14分钟)
2.1 Web技术的发展
2.2 了解Java Web技术
2.2.1 认识Java Web程序的基本组成
2.2.2 认识Java Web程序的目录结构
2.2.3 了解Java Web程序的配置文件
2.3 了解MVC模式与MVC框架
2.3.1 认识JSP模型1和JSP模型2
2.3.2 认识Web应用程序的基础服务
2.3.3 MVC模式概述
2.3.4 了解常用的MVC框架
2.4 小结
2.5 实战练习
第3章 Web开发必会的客户端技术( 教学视频:82分钟)
3.1 学习客户端技术的开发工具
3.1.1 在MyEclipse中使用HTML技术
3.1.2 在MyEclipse中使用JavaScript技术
3.1.3 在MyEclipse中使用CSS技术
3.2 学习超文本标签语言HTML
3.2.1 HTML基本构成
3.2.2 HTML基本标签——段落格式设置标签
3.2.3 HTML基本标签——超级链接标签
3.2.4 HTML基本标签——图像标签
3.2.5 HTML基本标签——表格标签
3.2.6 HTML基本标签——框架标签
3.2.7 HTML基本标签——表单标签
3.3 学习JavaScript技术
3.3.1 实例:编写第一个JavaScript程序:Greet
3.3.2 学习变量
3.3.3 学习原始类型
3.3.4 掌握类型转换
3.3.5 学习函数与函数调用
3.3.6 学习类和对象
3.4 其他客户端技术
3.4.1 了解DOM
3.4.2 获得HTML元素的3种方法
3.4.3 实例:图像自动切换
3.4.4 了解正则表达式
3.4.5 实例:表格排序
3.5 学习CSS技术
3.5.1 了解CSS
3.5.2 在Style属性中定义样式
3.5.3 在HTML中定义样式
3.5.4 在外部文件中定义样式
3.5.5 实现样式的继承
3.6 学习AJAX技术
3.6.1 了解AJAX技术
3.6.2 实例:使用XMLHttpRequest获得Web资源
3.6.3 实例:使用XMLHttpRequest跨域访问Web资源
3.6.4 实例:AJAX的3种交换数据方法
3.7 小结
3.8 实战练习
第4章 Java Web的核心技术——Servlet( 教学视频:79分钟)
4.1 编写Servlet的Helloworld程序
4.1.1 实例:用MyEclipse工具编写第一个Servlet程序——Helloworld
4.1.2 实例:手工编写第一个Servlet程序——Helloworld
4.2 学习Servlet技术
4.2.1 配置Tomcat 7服务器的数据库连接池
4.2.2 实例:通过数据库连接池连接MySQL数据库
4.2.3 实例:处理客户端HTTP GET请求——doGet方法
4.2.4 实例:处理客户端HTTP POST请求——doPost方法
4.2.5 实例:处理客户端各种请求——service方法
4.2.6 实例:初始化(init)和销毁(destroy)Servlet
4.2.7 实例:输出字符流响应消息——PrintWriter类
4.2.8 实例:输出字节流响应消息——ServletOutputStream类
4.2.9 实例:包含Web资源——RequestDispatcher.include方法
4.2.10 实例:转发Web资源——RequestDispatcher.forward方法
4.3 掌握HttpServletResponse类
4.3.1 产生状态响应码
4.3.2 设置响应消息头
4.3.3 实例:验证响应消息头设置情况
4.4 掌握HttpServletRequest类
4.4.1 获取请求行消息
4.4.2 获取网络连接消息
4.4.3 获取请求头消息
4.5 处理Cookie
4.5.1 什么是Cookie
4.5.2 认识操作Cookie的方法
4.5.3 实例:通过Cookie技术读写客户端信息
4.5.4 实例:通过Cookie技术读写复杂数据
4.6 处理Session
4.6.1 什么是Session
4.6.2 认识操作Session的方法
4.6.3 创建Session对象
4.6.4 实例:通过Cookie跟踪Session
4.6.5 实例:通过重写URL跟踪Session
4.7 解决Web开发的乱码问题
4.7.1 认识Java语言编码原理
4.7.2 实例:解决输出乱码问题
4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题
4.7.4 实例:用AJAX技术发送和接收中文信息
4.7.5 实例:实现请求消息头和响应消息头中转输中文
4.8 小结
4.9 实战练习
第5章 JSP技术( 教学视频:62分钟)
5.1 通过MyEclipse工具编写第一个JSP程序
5.1.1 实例:编写显示服务器当前时间的JSP程序
5.1.2 调试JSP程序
5.1.3 改变JSP的访问路径和扩展名
5.1.4 手动发布JSP程序
5.2 了解JSP的运行原理
5.2.1 了解Tomcat处理JSP页过程
5.2.2 分析由JSP生成的Servlet代码
5.3 学习JSP基本语法
5.3.1 学习JSP表达式
5.3.2 实现在JSP中嵌入Java代码
5.3.3 学习JSP声明
5.3.4 学习JSP表达式语言(EL)
5.3.5 实例:利用EL函数替换HTML中的特殊字符
5.3.6 学习JSP页面中的注释
5.4 学习JSP指令
5.4.1 了解JSP指令
5.4.2 JSP指令page
5.4.3 JSP指令include
5.5 学习JSP内置对象
5.5.1 内置对象out
5.5.2 内置对象pageContext
5.5.3 其他内置对象
5.6 学习JSP标签
5.6.1 包含标签
5.6.2 转发标签
5.6.3 传参标签
5.6.4 创建Bean标签
5.6.5 设置属性值标签
5.6.6 获取属性值标签
5.7 学习JSP的标准标签库(JSTL)
5.7.1 了解JSTL
5.7.2 JSTL中的条件标签
5.7.3 JSTL中的循环标签
5.8 小结
5.9 实战练习
第6章 用Servlet和JSP实现注册登录系统( 教学视频:28分钟)
6.1 系统概述
6.1.1 系统功能简介
6.1.2 系统总体结构
6.2 设计数据库
6.3 实现系统的基础类
6.3.1 实现访问数据库的DBServlet类
6.3.2 实现MD5加密
6.3.3 实现图形验证码
6.4 实现注册系统
6.4.1 实现注册Servlet类
6.4.2 实现注册系统的主页面
6.4.3 实现结果JSP页面
6.5 实现登录系统
6.5.1 实现登录Servlet
6.5.2 实现登录系统主页面
6.6 小结
6.7 实战练习
第2篇 Struts 2篇
第7章 编写Struts 2第一个程序( 教学视频:28分钟)
7.1 Struts 2的MVC模式
7.2 Struts 2的体系结构
7.2.1 工作流程
7.2.2 配置文件
7.2.3 控制器
7.3 Struts 2实例:图书查询系统
7.3.1 下载和安装Struts 2
7.3.2 编写数据处理类
7.3.3 编写和配置Action类
7.3.4 编写显示查询结果的JSP页面
7.3.5 编写输入查询信息的JSP页面
7.4 小结
7.5 实战练习
第8章 Struts 2进阶( 教学视频:72分钟)
8.1 认识Struts 2的基本配置
8.1.1 配置web.xml
8.1.2 配置struts.xml
8.1.3 配置struts.properties
8.1.4 学习Struts 2的DTD
8.2 深入认识Struts 2的配置元素
8.2.1 配置Bean
8.2.2 配置常量(constant)
8.2.3 配置包含(include)
8.2.4 配置包(package)
8.2.5 配置命名空间
8.2.6 配置拦截器
8.3 掌握Struts 2注释(Annotation)
8.3.1 设置当前包的父包——ParentPackage注释
8.3.2 指定当前包的命名空间——Namespace注释
8.3.3 指定当前Action结果——Results与Result注释
8.3.4 实例:通过注释配置Action
8.4 掌握Struts 2的Action
8.4.1 了解Action类的getter和setter方法
8.4.2 实现Action接口
8.4.3 继承ActionSupport类
8.4.4 实例:用ActionContext访问Servlet API
8.4.5 实例:通过aware拦截器访问Servlet API
8.4.6 实例:利用动态方法处理多个提交请求
8.4.7 实例:利用method属性处理多个提交请求
8.4.8 使用通配符
8.4.9 设置默认的Action
8.5 配置跳转结果
8.5.1 了解Struts 2的配置结果
8.5.2 Struts 2支持的处理结果类型
8.5.3 配置带有通配符的结果
8.5.4 通过请求参数指定结果
8.6 掌握模型驱动
8.6.1 了解模型驱动——ModelDriven
8.6.2 实例:使用模型驱动改进登录程序
8.7 处理Struts 2中的异常
8.7.1 了解Struts 2处理异常的原理
8.7.2 实例:登录系统的异常处理
8.8 小结
8.9 实战练习
第9章 Struts 2的拦截器( 教学视频:32分钟)
9.1 理解拦截器
9.1.1 掌握拦截器的实现原理
9.1.2 实例:模拟Struts 2实现一个拦截器系统
9.2 配置Struts 2拦截器
9.2.1 配置拦截器
9.2.2 使用拦截器
9.2.3 设置默认拦截器
9.3 实例:自定义拦截器
9.3.1 编写拦截器类
9.3.2 配置自定义拦截器
9.4 理解拦截器的高级技术
9.4.1 过滤指定的方法
9.4.2 拦截器的执行顺序
9.4.3 应用结果监听器
9.5 理解Struts 2内建的拦截器
9.5.1 认识内建拦截器
9.5.2 掌握内建拦截器的配置
9.6 实例:编写权限验证拦截器
9.6.1 编写权限验证拦截器类
9.6.2 配置权限控制拦截器
9.7 小结
9.8 实战练习
第10章 Struts 2的类型转换( 教学视频:48分钟)
10.1 为什么要进行类型转换
10.1.1 了解客户端和服务端之间的数据处理过程
10.1.2 了解传统的类型转换
10.2 使用Struts 2类型转换器
10.2.1 了解Struts 2内建的类型转换器
10.2.2 实例:实现基于OGNL的类型转换器
10.2.3 配置全局类型转换器
10.2.4 实例:实现基于Struts 2的类型转换器
10.2.5 实例:实现数组类型转换器
10.2.6 实例:实现集合类型转换器
10.3 实例:使用OGNL表达式进行类型转换
10.4 Struts 2对Collection和Map的支持
10.4.1 指定集合元素的类型
10.4.2 掌握Set和索引属性
10.5 掌握类型转换的错误处理
10.6 小结
10.7 实战练习
第11章 Struts 2的输入校验( 教学视频:39分钟)
第12章 文件的上传和下载( 教学视频:44分钟)
第13章 程序的国际化( 教学视频:27分钟)
第14章 Struts 2的标签库( 教学视频:67分钟)
第15章 Struts 2对AJAX的支持( 教学视频:56分钟)
第16章 用Struts 2实现注册登录系统( 教学视频:26分钟)
第3篇 Hibernate篇
第17章 Hibernate的Helloworld程序( 教学视频:33分钟)
第18章 实现Hibernate基本配置( 教学视频:32分钟)
第19章 Hibernate的会话与O/R映射( 教学视频:61分钟)
第20章 Hibernate的查询与更新技术( 教学视频:43分钟)
第21章 Hibernate的高级技术( 教学视频:40分钟)
第4篇 Sping篇
第22章 Spring的第一个Helloworld程序( 教学视频:16分钟)
第23章 反向控制(Ioc)与装配JavaBean( 教学视频:30分钟)
第24章 Spring中的数据库技术( 教学视频:25分钟)
第25章 Spring的其他高级技术( 教学视频:39分钟)
第5篇 综合实例篇
第26章 Struts 2与Hibernate、Spring的整合( 教学视频:12分钟)
第27章 网络硬盘( 教学视频:57分钟)
2第28章 论坛系统( 教学视频:50分钟)