出版时间:2009-1 出版社:叶健毅 人民邮电出版社 (2009-01出版) 作者:叶健毅 页数:588
前言
Sun公司将J2EE 1.5版本改名为Java EE 5。之所以改名,是因为J2EE这个称呼容易被误解为一套独立的Java的技术方案,而改名为Java EE的目的是在强调企业应用的同时,更强调Java在语言层面上的运用。本书的第1版《精通J2EE——Eclipse、Struts、Hibernate、Spring整合应用》于2006年8月上市,受到了广大读者的一致好评,截至2008年8月累计销量逾20000册。很多读者给予本书极高的评价,并提出了再版的建议与意见。针对Java EE技术的升级,为了完善第1版的内容,我们经过精心策划与改编后推出了本书的第2版。第2版图书的特点主要表现在以下几个方面。技术升级。全书技术基于JavaEE 5,书名调整为《精通JavaEE-Eclipse、Slruts2、Hibemate、Spring整合应用(第2版)》。框架升级更新。从Slruts 1.x框架升级到Struts 2。Spring和Hibemate版本均有相应升级。案例更新。案例采取最新的框架重构。加强Aiax部分,新增了Ajax聊天室案例。增加工具篇。工具能使开发过程更有效率,增加的工具包括Maven项目管理工具、JUnit单元测试工具和CVS版本控制工具。增加JSF框架。JSF框架目前的流行度越来越广,本书提供了JSF章节,相应地,在案例里也有JSF的实战案例。内容勘误。第2版对第1版的代码进行了优化,并对书中疏漏之处作了全面的修订。
内容概要
《精通Java EE:Eclipse Struts2 Hibernate Spring整合应用案例(第2版)》是关于Struts 2、Hibernate、Spring整合应用开发的入门指导书,也是Java EE开发者必备的工具书。《精通Java EE:Eclipse Struts2 Hibernate Spring整合应用案例(第2版)》分为3篇共19章。第1篇分别详细介绍了Struts 2、JSF、Hibernate、Spring的基础知识与应用示例。第2篇介绍了能提高开发效率的工具,例如版本控制工具CVS、单元测试工具JUnit、项目管理工具Maven。第3篇讲解了6个实用的系统:科研信息发布平台、公告管理系统、学生课程及成绩管理系统、个性化定制系统、网上书店和Ajax网上聊天系统。书中的系统采用了JSP、Servlet、Struts 2、JSF、JSON、Hibernate、Spring及Ajax等技术,每一个系统都按照需求分析、系统设计到系统实现的思路,详细阐述了实现细节。
书籍目录
第1篇 Java EE基础第1章 Java Web应用开发简介1.1 Java Web应用概述1.1.1 Java EE概念1.1.2 Java EE的4层模型1.1.3 Java EE组件介绍1.1.4 Java EE结构1.1.5 Web服务器和应用服务器1.2 MVC模式概述1.2.1 MVC设计模式简介1.2.2 MVC的各层定义1.2.3 MVC处理过程1.2.4 MVC的适用范围1.2.5 JSP Model简介1.3 对象持久化概述1.3.1 对象持久化和对象关系映射ORM技术1.3.2 Hibernate简介1.4 常用框架概述1.4.1 Struts 2框架简介1.4.2 Spring框架简介1.5 本章小结第2章 建立开发平台2.1 搭建开发环境2.1.1 安装JDK2.1.2 安装Tomcat2.1.3 设置环境变量2.1.4 获取Eclipse平台所需组件2.1.5 整合获取到的组件2.1.6 配置Eclipse平台2.2 开发一个简单的Java Web实例2.2.1 创建Web Project2.2.2 运行JavaWebTest工程2.3 本章小结第3章 Hibernate起航3.1 建立Hibernate开发环境3.1.1 下载Hibernate3.1.2 下载MySQL3.1.3 安装MySQL3.1.4 配置MySQL3.1.5 验证MySQL的安装3.1.6 下载MySQL驱动3.1.7 下载和安装SQLyog3.2 准备实现Hibernate实例3.2.1 设置用户库3.2.2 设置构建路径3.2.3 创建项目3.2.4 创建数据库及设计数据表3.3 实现Hibernate实例3.3.1 建立可持久化类3.3.2 创建映射文件3.3.3 创建配置文件3.3.4 创建测试类3.3.5 运行3.4 本章小结第4章 Hibernate高级技术4.1 Hibernate核心接口4.2 Hibernate的配置文件应用4.2.1 配置文件中的映射元素4.2.2 组件应用的方法4.2.3 Hibernate的基本配置4.2.4 对象标识符号4.2.5 Hibernate映射类型4.3 Hibernate数据映射4.3.1 一对一映射4.3.2 多对一映射4.4 Hibernate检索方式4.5 本章小结第5章 Java EE基础知识示例解析5.1 JSP示例5.1.1 JSP示例解析5.1.2 会话状态管理5.1.3 引用JavaBean组件5.2 Servlet示例5.3 JDBC示例5.3.1 建立数据库及表5.3.2 使用JDBC操作数据库5.3.3 运行例程5.4 本章小结第6章 初识Struts 2框架6.1 运行用户注册登录系统6.1.1 从Apache官方网站下载Struts 26.1.2 建立应用Struts 2框架的Web工程6.1.3 建立工程所需用到的数据库6.1.4 部署与运行Web工程6.1.5 编写第1个“Hello您好”页面验证环境6.2 系统功能预览6.3 需求分析6.4 系统设计6.4.1 设计MVC模块6.4.2 设计数据库6.5 创建视图组件6.5.1 创建Struts 2标签视图6.5.2 创建Freemaker模板视图6.6 创建模型组件6.7 创建控制器组件6.7.1 在struts.xml里配置Action映射6.7.2 创建UserAction控制类6.8 添加验证6.9 添加拦截器6.10 本章小结第7章 Struts 2与Ajax7.1 运行用户注册登录系统7.1.1 建立应用Struts 2框架的Web工程7.1.2 建立工程所需用到的数据库7.1.3 运行Web工程7.2 系统重构功能预览7.3 增加注册时验证用户名是否已被注册功能7.4 增加登录时对用户名的自动提示功能7.4.1 使用JSON-plugin工具生成JSON格式7.4.2 使用AutoCompleter标签7.5 本章小结第8章 JSF框架8.1 运行学生管理系统8.1.1 建立应用JSF框架的Web工程8.1.2 运行Web工程8.2 系统功能预览8.3 需求分析8.4 实现各个组件8.4.1 实现视图组件8.4.2 实现模型组件8.4.3 实现导航组件8.4.4 设置配置文件8.4.5 创建视图响应事件8.5 使用MyEclipse提高JSF开发效率8.5.1 为Web工程添加JSF8.5.2 视图配置face-config.xml8.6 本章小结第9章 Spring应用9.1 搭建Spring开发环境9.1.1 下载Spring9.1.2 Eclipse插件Spring IDE的下载与安装9.2 实现Spring实例9.2.1 创建项目9.2.2 创建Spring配置文件9.2.3 创建类9.2.4 添加测试类9.3 实现Spring连接数据库9.3.1 创建数据库9.3.2 创建项目9.3.3 运行测试9.4 本章小结第10章 Spring进阶10.1 Spring IoC和AOP10.1.1 IoC容器10.1.2 AOP(面向方面编程)10.2 Spring对各种服务提供的支持10.3 Spring的视图集成技术10.4 Spring进阶实例10.4.1 创建工程10.4.2 添加验证规则10.4.3 创建数据表10.4.4 创建持久化类10.4.5 配置Spring10.4.6 创建DAO10.4.7 创建Action10.4.8 运行测试10.5 本章小结第2篇 开发工具第11章 版本控制工具CVS的应用11.1 安装及配置CVSNT11.1.1 获取与安装CVSNT11.1.2 配置CVSNT11.2 创建CVS代码仓库(Repository)11.3 配置CVS账号11.4 配置Eclipse自带的CVS客户端11.4.1 CVS客户端配置过程11.4.2 常见问题解决11.5 CVS的基本操作11.5.1 通过CVS共享项目11.5.2 从CVS中检出项目11.5.3 提交更改的项目11.5.4 冲突及其解决11.6 本地历史记录11.7 本章小结第12章 Java EE下的单元测试12.1 创建JUnit单元测试实例12.1.1 创建JUnitTestProject工程12.1.2 创建JUnit单元测试用例12.1.3 运行JUnit单元测试12.1.4 调试JUnit单元测试12.1.5 创建并运行JUnit测试套件12.2 创建EasyMock模拟对象实例12.2.1 Mock对象原理12.2.2 EasyMock对象类库12.2.3 为Struts 2类添加单元测试代码12.3 DBUnit框架12.3.1 DBUnit原理12.3.2 DAO测试中的脏数据12.3.3 为DAO类添加单元测试代码12.4 本章小结第13章 项目管理Maven13.1 Maven对项目管理的帮助13.1.1 Maven生命周期介绍13.1.2 Maven仓库介绍13.1.3 Maven类库管理介绍13.2 安装Maven与Eclipse插件13.2.1 Maven安装简介13.2.2 M2Eclipse插件简介13.2.3 使用M2Eclipse插件13.3 运行Maven的第1个项目13.3.1 Maven下载Tutorial工程13.3.2 Maven创建Eclipse工程文件13.3.3 在项目中运行Maven13.4 提高速度搭建私服13.5 本章小结第3篇 项目案例第14章 科研信息发布平台(JSP+Servlet)14.1 系统概述14.2 需求分析14.3 系统功能预览14.3.1 用户浏览功能14.3.2 管理员登录14.3.3 管理新闻14.3.4 管理在研项目信息14.3.5 管理老师信息14.3.6 管理学生信息14.3.7 管理信息发布平台的管理员信息14.4 系统分析14.4.1 系统功能模块划分14.4.2 系统流程分析14.5 系统设计14.5.1 数据库结构设计与实现14.5.2 目录和包结构14.5.3 定义DataProcess14.6 创建数据层对象14.6.1 创建分页类Pageable14.6.2 创建新闻实体类News14.6.3 创建新闻的数据访问类News_Manager14.6.4 创建项目实体类Project14.6.5 创建项目的数据访问类Project_Manager14.6.6 创建教师实体类Teacher14.6.7 创建教师的数据访问类Teacher_Manager14.6.8 创建学生实体类Student14.6.9 创建Student_Manage类14.6.10 创建管理员实体类Manager14.6.11 创建管理员的数据访问类Admin_Manage14.7 功能实现14.7.1 配置本系统使用到的Servlet14.7.2 管理员登录LoginServlet14.7.3 添加管理员AddManagerServlet14.7.4 修改管理员信息EditManagerServlet14.7.5 添加新闻AddNewServlet14.7.6 编辑新闻EditNewsServlet14.7.7 添加在研项目AddProjectServlet14.7.8 编辑在研项目信息EditProjectServlet14.7.9 添加学生AddStudentServlet14.7.10 编辑学生信息EditStudent14.7.11 添加教师信息AddTeacherServlet14.7.12 编辑教师信息EditTeacherServlet14.8 实现自定义标签14.8.1 配置自定义标签14.8.2 创建标签类NewsTag4guest14.8.3 创建标签类News4news14.8.4 创建标签类NewsTag14.9 前台页面的实现14.9.1 平台首页的实现14.9.2 新闻浏览页的实现14.9.3 在研项目页的实现14.9.4 教师信息浏览页的实现14.9.5 学生信息浏览页的实现14.10 后台管理页面的实现14.10.1 后台登录的实现14.10.2 后台首页的实现14.10.3 查看新闻页面的实现14.10.4 添加新闻页面的实现14.10.5 删除新闻页面的实现14.10.6 编辑新闻页面的实现14.11 运行工程14.11.1 开发平台14.11.2 创建工程14.11.3 运行工程14.12 本章小结第15章 公告管理系统(Struts 2)15.1 系统概述15.2 需求分析15.2.1 数据流图15.2.2 UML用例图15.3 系统功能预览15.3.1 后台功能展示15.3.2 前台功能展示15.4 系统设计15.4.1 系统业务实体设计15.4.2 数据库设计15.5 设计自定义标签15.5.1 定义标签处理方法类PagingTag15.5.2 定义标签库描述(TLD)文件mytag.tld15.5.3 配置web.xml文件15.5.4 分页辅助类文件15.6 系统实现前瞻15.7 管理员登录功能15.7.1 实现管理员登录功能的组件15.7.2 视图组件adminlogin.jsp15.7.3 视图组件中所包含的公有文件15.7.4 模型组件User.java15.7.5 控制器组件AdminLoginAction.java15.7.6 本部分程序中用到的辅助类方法15.8 浏览所有用户功能15.8.1 控制器组件UserManagerAction.java15.8.2 视图组件userlist.jsp15.8.3 本部分程序中用到的辅助类方法15.9 新建用户功能15.9.1 实现新建用户功能的各个组件15.9.2 控制器组件AuthenticationInterceptor.java15.9.3 视图组件newUser.jsp15.9.4 模型组件User.java15.9.5 控制器组件UserManagerAction.java15.9.6 本部分程序中用到的辅助类方法15.10 编辑用户功能15.10.1 实现编辑用户功能的各个组件15.10.2 控制器组件AuthenticationInterceptor.java15.10.3 视图组件useredit.jsp15.10.4 模型组件User.java15.10.5 控制器组件UserEditAction.java15.10.6 本部分程序中用到的辅助类方法15.11 删除用户功能15.11.1 控制器组件AuthenticationInterceptor.java15.11.2 控制器组件UserManagerAction.java15.11.3 本部分程序中用到的辅助类方法15.12 模糊查找用户功能15.12.1 控制器组件UserSearchAction.java15.12.2 本部分程序中用到的辅助类方法15.13 管理员注销登录功能15.14 用户登录功能15.14.1 实现用户登录功能的组件15.14.2 视图组件userlogin.jsp15.14.3 模型组件User.java15.14.4 控制器组件UserLoginAction.java15.14.5 本部分程序中用到的辅助类方法15.15 浏览公告功能15.15.1 控制器组件NoticeManagerAction.java15.15.2 视图组件noticelist.jsp15.15.3 本部分程序中用到的辅助类方法15.16 撰写公告功能15.16.1 实现撰写公告功能的各个组件15.16.2 控制器组件AuthenticationInterceptor.java15.16.3 视图组件newnotice.jsp15.16.4 模型组件Notice.java15.16.5 控制器组件NoticeManagerAction.java15.16.6 本部分程序中用到的辅助类方法15.17 编辑公告功能15.17.1 实现编辑公告功能的各个组件15.17.2 控制器组件NoticeManagerAction.java15.17.3 视图组件noticemodify.jsp15.17.4 模型组件Notice.java15.17.5 本部分程序中用到的辅助类方法15.18 删除公告功能15.18.1 控制器组件NoticeManagerAction.java15.18.2 本部分程序中用到的辅助类方法15.19 用户注销登录功能15.20 运行工程15.20.1 开发平台15.20.2 创建工程15.20.3 运行工程15.21 本章小结第16章 学生课程及成绩管理系统(JSF+Hibernate)16.1 系统概述16.2 需求分析16.3 系统功能预览16.3.1 用户登录功能16.3.2 管理员登录后的选择功能16.3.3 管理员管理学生信息的功能16.3.4 管理员管理教师信息的功能16.3.5 管理员管理课程的功能16.3.6 管理员管理班级的功能16.3.7 学生用户登录后的选择功能16.3.8 学生选修课程的功能16.3.9 学生查看成绩的功能16.3.10 学生更新个人信息的功能16.3.11 教师用户登录后的选择功能16.3.12 教师选择学生功能16.3.13 教师录入学生成绩的功能16.4 系统分析16.4.1 系统功能模块划分16.4.2 系统流程分析16.5 系统设计16.5.1 数据库逻辑结构设计16.5.2 创建数据库16.5.3 创建表的脚本文件16.5.4 目录和包结构16.5.5 定义HibernateUtil16.5.6 定义SetCharacterEncoding-Filter16.5.7 数据层设计16.6 页面设计及实现16.6.1 登录页面16.6.2 管理员管理首页16.6.3 管理员管理学生页面16.6.4 管理员管理教师页面16.6.5 管理员管理课程页面16.6.6 管理员管理班级页面16.6.7 学生选课页面16.6.8 学生查看成绩页面16.6.9 教师选择学生页面16.6.10 教师公布成绩页面16.7 数据层代码实现16.7.1 创建对象/关系映射文件16.7.2 创建持久化类16.7.3 创建实现DAO模式的公用部分16.8 功能代码实现概述16.9 登录功能16.9.1 登录功能的逻辑设计16.9.2 配置JSF16.9.3 登录功能16.10 管理员管理学生功能16.10.1 登录功能的逻辑设计16.10.2 配置JSF16.10.3 创建模型StudentBean16.10.4 创建学生的数据访问对象StudentDAOImp16.10.5 查看学生列表功能16.10.6 添加学生功能16.10.7 删除学生功能16.10.8 编辑学生信息功能16.11 管理员管理教师功能16.11.1 登录功能的逻辑设计16.11.2 配置JSF16.11.3 创建模型TeacherBean16.11.4 创建教师的数据访问对象TeacherDAOImp16.11.5 查看教师列表功能16.11.6 添加教师功能16.11.7 删除教师功能16.11.8 编辑教师信息功能16.12 管理员管理课程16.12.1 登录功能的逻辑设计16.12.2 配置JSF16.12.3 创建模型CourseBean16.12.4 创建课程的数据访问对象CourseDAOImp16.12.5 查看课程列表功能16.12.6 添加课程功能16.12.7 删除课程功能16.12.8 编辑课程信息功能16.13 管理员管理班级16.13.1 登录功能的逻辑设计16.13.2 配置JSF16.13.3 创建模型ClassesBean16.13.4 创建班级的数据访问对象ClassesDAOImp16.13.5 查看班级列表功能16.13.6 添加班级功能16.13.7 删除班级功能16.13.8 编辑班级信息功能16.14 运行工程16.14.1 开发平台16.14.2 创建工程16.14.3 运行工程16.15 本章小结第17章 个性化定制系统(Ajax+Spring+Hibernate)17.1 Ajax技术简介17.1.1 什么是Ajax17.1.2 为什么使用Ajax17.1.3 如何使用Ajax17.2 系统概述17.3 需求分析17.4 系统功能预览17.4.1 隐藏或显示页面左侧列表17.4.2 定制列表内容17.4.3 动态的下拉列表17.4.4 向页面右侧添加“小窗口”17.4.5 删除页面右侧的“小窗口”17.4.6 编辑“小窗口”17.4.7 页面右侧“小窗口”的拖动效果17.5 系统设计17.5.1 数据库结构设计与实现17.5.2 目录和包结构17.5.3 数据层设计17.5.4 创建AppContext类17.6 创建持久化类和映射文件17.6.1 Subject的持久化类及映射文件17.6.2 UserOrderInfo的持久化类及映射文件17.6.3 TbUserInfo的持久化类及映射文件17.7 创建数据访问对象DAO类17.7.1 创建分类科目的数据访问对象SubjectDAO17.7.2 创建用户信息的数据访问对象TbUserInfoDAO17.7.3 创建用户定制信息的数据访问对象UserOrderInfoDAO17.8 创建Service类17.8.1 创建SubjectService17.8.2 创建UserOrderInfoService17.8.3 创建TbUserInfoService17.9 实现定制功能17.9.1 创建定制页面order.jsp17.9.2 显示可定制的科目列表17.9.3 创建SaveOrderedSubject17.9.4 在web.xml中进行配置17.10 为实现浏览页面的功能做准备17.10.1 “小窗口”的结构17.10.2 定义样式表17.10.3 页面的结构17.11 Ajax实现动态功能17.11.1 Ajax引擎的实现17.11.2 与Ajax引擎交互的服务器端程序GetSubjectServlet17.11.3 分析服务器端返回的信息17.11.4 显示页面右侧的“小窗口”17.11.5 页面左侧的下拉列表17.11.6 修改“小窗口”的显示数量17.11.7 删除“小窗口”17.12 拖动“小窗口”17.13 运行工程17.13.1 开发平台17.13.2 创建工程17.13.3 运行工程17.14 本章小结第18章 网上书店(Struts 2+Hibernate)18.1 系统概述18.2 需求分析18.2.1 需求概述18.2.2 用例图18.2.3 数据流图18.3 系统功能预览18.4 系统设计18.4.1 系统架构设计18.4.2 业务实体设计18.4.3 设计域模型18.4.4 设计数据模型18.4.5 创建对象/关系映射文件18.5 系统首页设计18.5.1 公有文件18.5.2 取出首页用到的数据18.5.3 用到的JavaScript方法18.5.4 用户信息版块18.5.5 订购信息版块18.5.6 新书推荐版块18.5.7 页面效果18.6 管理员管理图书设计18.6.1 管理员菜单权限控制18.6.2 新增图书18.6.3 修改图书18.6.4 删除图书18.6.5 浏览所有图书18.6.6 页面效果18.7 购物车设计18.7.1 图书放进购物车18.7.2 显示购物车18.7.3 付款并生成订单18.7.4 显示订单18.7.5 页面效果18.8 运行工程18.8.1 开发平台18.8.2 创建工程18.8.3 运行工程18.9 本章小结第19章 Ajax网上聊天系统(Struts 2+Spring+Hibernate)19.1 系统概述19.2 需求分析19.2.1 需求概述19.2.2 用例图19.3 系统功能预览19.3.1 用户功能预览19.3.2 管理员功能预览19.4 系统设计19.4.1 系统架构设计19.4.2 业务实体设计19.4.3 设计域模型19.4.4 设计数据模型19.4.5 创建对象/关系映射文件19.4.6 创建Spring配置文件19.5 网上聊天模块19.5.1 网上聊天模块总览19.5.2 聊天室视图chatroom.jsp19.5.3 Ajax组件19.5.4 保存消息控制器MessageAction.java19.5.5 显示消息列表控制器ChatViewAction.java19.5.6 服务层ImessageService接口19.5.7 数据持久层MessageDaoImpl类19.6 用户模块19.6.1 用户模块总览19.6.2 视图组件registration.jsp19.6.3 控制器组件UserManageAction.java19.6.4 服务层IUserService接口19.6.5 数据持久层UserDaoImpl类19.7 房间模块19.7.1 房间模块总览19.7.2 新增临时房间视图mbroomadd.jsp19.7.3 新建临时房间控制器RoomEnterAction.java19.7.4 服务层IRoomService接口19.7.5 数据持久层RoomDaoImpl类19.8 运行工程19.8.1 开发平台19.8.2 创建工程19.8.3 运行工程19.9 本章小结
章节摘录
插图:第1章 Java Web应用开发简介本章首先讲述Java Web开发涉及的各种技术,包括组件、MVC模式、对象持久化技术以及常用框架等内容。为了避免开篇就面对技术细节,本章没有对这些技术进行深入的探讨,在后面的章节中将逐步深入介绍。1.1 Java Web应用概述学习Java Web开发,首先要对Java Web应用有基本的了解,知道什么是Java Web应用,怎么进行Java Web开发。本节将介绍Java EE的概念、模型结构以及常用的Web服务器等内容。1.1.1 Java EE概念Java EE是J2EE的新名称,J2EE是一套面向企业应用的体系结构,可以将J2EE理解为J2SE(Java2平台的标准版)的扩展和延伸。J2EE不仅拥有J2SE中的许多优点,同时还提供了对企业级Java Bean(EJB,Enterprise Java Bean)、Java Servlet API、JSP(Java Server Pages)以及XML等技术的支持。Java EE通过提供中间层集成框架来满足高可用性、高可靠性、高可扩展性以及低成本等需求。通过提供统一的开发平台,降低了开发多层系统的复杂性,并且对现有应用程序提供了强有力的支持。这些支持具体表现在:对Enterprise Java Bean的完全支持、对打包和部署应用的良好支持、对添加目录的支持以及对安全机制的支持等。1.1.2 Java EE的4层模型Java EE使用多层分布式的应用模型,它的应用逻辑按功能划分为组件。各个应用组件可以部署在同一台机器上,但在更多的情况下,各个应用组件根据所在的不同层,分布在不同的机器上。Java EE实际上是为了解决两层模型(Client/Server模型)的弊端而出现的。在传统C/S模型中,客户端承担了过多的角色,而显得过于臃肿。这种模型部署时比较容易,但很难进行升级或改进,其可扩充性和可伸展性都不理想。而Java EE模型将传统的两层模型划分成许多层,每种不同的服务提供一个独立的层。
编辑推荐
《精通Java EE:Eclipse Struts2 Hibernate Spring整合应用案例(第2版)》结构脉络清晰,内容深入浅出。《精通Java EE:Eclipse Struts2 Hibernate Spring整合应用案例(第2版)》适合对Java有一定了解的Java EE初学者阅读。
图书封面
评论、评分、阅读与下载