新書推薦:
《
爱琴海的光芒 : 千年古希腊文明
》
售價:HK$
199.4
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:HK$
66.1
《
SDGSAT-1卫星热红外影像图集
》
售價:HK$
445.8
《
股市趋势技术分析(原书第11版)
》
售價:HK$
221.8
《
汉匈战争全史
》
售價:HK$
99.7
《
恶的哲学研究(社会思想丛书)
》
售價:HK$
109.8
《
不止江湖
》
售價:HK$
98.6
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:HK$
154.6
|
編輯推薦: |
Spring Spring MVC MyBatis(SSM)已经成为Java互联网时代的主流框架,Maven也成为更为流行的Java Web项目构建工具。掌握这些技术(技能)将为Java开发者带来更多的就业机会和更强的竞争力。
本书由理论到实践、由浅入深地对基于Spring MVC MyBatis Maven的Java Web开发技术进行了系统讲解,重点突出,强调实用性和动手操作能力,以达到快速提升读者编程水平和实际项目开发能力的目的。
本书也是目前国内较少的系统讲解Spring MVC MyBatis Maven这一组合的教材。全书分为Java Web开发基础、MyBatis和Spring MVC三部分,共20章。
配套资源:
所有章节程序源代码、配套PPT、习题解答和拓展学习资源(包括HTML、CSS、JavaScript基础内容等)。读者可在华信教育资源网(www.hxedu.com.cn)下载。
|
內容簡介: |
本书是目前国内较少的系统讲解Spring MVC MyBatis Maven这一组合的教材。全书分为Java Web开发基础、MyBatis和Spring MVC三部分,共20章。Java Web开发基础(1~9章),主要包括搭建Java Web开发环境、Servlet编程、JSP语言基础、会话管理、EL和JSTL、过滤器与监听器、AJAX技术、Maven、jQuery基础和jQuery EasyUI等内容。MyBatis(10~14章),主要包括MyBatis入门、配置和映射、动态SQL、MyBatis注解方式、MyBatis缓存配置和MyBatis应用等内容。Spring MVC(15~20章),主要包括Spring基础、Spring MVC入门、基于注解的控制器、拦截器、数据转换和格式化、Spring MVC的表单标签库、Spring MVC的文件上传和下载、Spring MVC的国际化和Spring MVC MyBatis应用等内容。本书内容丰富、翔实,实用性强,适用面广,既可作为高等学校计算机相关专业学生学习Java Web应用开发的教材,又可作为软件培训机构和编程人员的参考用书。
|
關於作者: |
2011至今,苏州大学计算机学院。(苏大-瑞翼移动互联网应用研发中心技术负责人)(2012-2013,中科大软件学院青年骨干教师访问学者。)2009-2011,南京铁道职业技术学院(苏州校区)电子信息系移动开发及嵌入式软件专业负责人。(现已并入苏大)2007-2009,安徽电子信息职业技术学院软件学院(国家级示范)。2004-2007,在同济大学软件学院攻读软件硕士。并于2007年5月获得硕士学位,2007年9月评为副教授。
|
目錄:
|
目录
第一部分Java Web开发基础
第1章搭建Java Web开发环境2
1.1基于BS结构的Web应用2
1.2JDK安装与配置2
1.3服务器Tomcat下载与安装3
1.4Eclipse安装与使用3
1.4.1Eclipse下载及创建Dynamic Web Project3
1.4.2Eclipse中的编码问题4
1.4.3将Tomcat和Eclipse相关联6
1.4.4Eclipse自动部署项目到
Tomcat的Webapps目录7
1.5MySQL安装配置与使用9
1.6PostgreSQL安装与使用13
1.6.1PostgreSQL下载与安装13
1.6.2使用pgAdmin III连接
PostgreSQL13
1.6.3使用pgAdmin III创建
数据库14
1.7Navicat Premium安装与使用14
1.8本章小结16
习题 117
第2章Servlet编程18
2.1Servlet简介18
2.2Servlet基础19
2.2.1用记事本写一个Servlet19
2.2.2Servlet 体系结构20
2.2.3Servlet 接口20
2.2.4Servlet 生命周期21
2.2.5Servlet 生命周期示例22
2.3Servlet API编程常用接口和类25
2.3.1GenericServlet类25
2.3.2HttpServlet类26
2.3.3ServletConfig接口27
2.3.4HttpServletRequest
接口29
2.3.5HttpServletResponse
接口31
2.3.6ServletContext接口32
2.4Servlet处理表单数据35
2.5Servlet重定向和请求转发36
2.5.1重定向36
2.5.2请求转发37
2.5.3Servlet中请求转发时
forword和include的
区别38
2.6Servlet数据库访问40
2.6.1JDBC基础40
2.6.2创建测试数据40
2.6.3访问数据库40
2.7Servlet异常处理41
2.8异步Servlet45
2.9本章小结46
习题 247
第3章JSP语言基础48
3.1JSP基本语法48
3.1.1JSP简介48
3.1.2JSP运行机制48
3.1.3第一个JSP程序49
3.1.4JSP指令49
3.1.5JSP脚本51
3.1.6JSP注释52
3.2JSP动作元素52
3.3JSP内置对象53
3.4JSP综合示例57
3.5本章小结57
习题 358
第4章会话管理59
4.1Cookies59
4.1.1Cookie剖析59
4.1.2在Servlet中操作
Cookie59
4.1.3Cookie API60
4.1.4使用Cookie示例60
4.2HttpSession对象62
4.2.1Session简介62
4.2.2HttpSession API62
4.2.3使用HttpSession示例63
4.3URL重写65
4.3.1为什么需要URL重写65
4.3.2encodeURL和
encodeRedirectURL65
4.3.3使用URL重写示例66
4.4隐藏表单域66
4.5本章小结66
习题 467
第5章EL和JSTL68
5.1JSP表达式语言68
5.1.1EL简介68
5.1.2EL的运算符和优先级69
5.1.3EL隐式对象70
5.1.4定义和使用EL函数74
5.2JSP标准标签库75
5.2.1JSTL简介75
5.2.2JSTL安装与配置76
5.2.3核心标签库76
5.3本章小结79
习题 580
第6章过滤器与监听器81
6.1Servlet过滤器81
6.1.1Filter工作原理81
6.1.2Filter核心接口81
6.1.3Filter生命周期82
6.1.4Filter配置82
6.1.5Filter应用83
6.2Servlet监听器86
6.2.1Servlet监听器概述86
6.2.2Servlet上下文监听86
6.2.3HTTP会话监听89
6.2.4Servlet请求监听92
6.3本章小结94
习题 694
第7章AJAX技术95
7.1实现AJAX应用的一般步骤95
7.2使用XMLHttpRequest对象96
7.2.1创建XMLHttpRequest
对象96
7.2.2XMLHttpRequest对象的
常用属性和事件96
7.2.3XMLHttpRequest对象的
常用方法97
7.3AJAX示例98
7.3.1更改文本内容98
7.3.2查询项目信息100
7.3.3验证注册邮箱格式和
唯一性101
7.4本章小结104
习题 7104
第8章Maven105
8.1初识Maven105
8.2Maven的安装和配置107
8.3Maven使用110
8.4坐标和依赖111
8.5本章小结112
习题 8113
第9章jQuery EasyUI114
9.1jQuery基础114
9.1.1初识jQuery114
9.1.2jQuery选择器116
9.1.3jQuery事件116
9.1.4jQuery AJAX117
9.2jQuery EasyUI120
9.3jQuery EasyUI布局121
9.3.1创建边框布局121
9.3.2在面板中创建复杂
布局122
9.3.3创建折叠面板123
9.3.4创建标签页124
9.3.5动态添加标签页124
9.4jQuery EasyUI数据网格125
9.4.1转换HTML表格为
数据网格125
9.4.2取得选中行数据126
9.4.3创建复杂工具栏127
9.4.4自定义分页129
9.5本章小结130
习题 9130
第二部分MyBatis
第10章MyBatis入门132
10.1从JDBC到MyBatis132
10.2第一个MyBatis示例134
10.2.1创建Maven项目134
10.2.2准备数据136
10.2.3MyBatis配置136
10.2.4创建实体类137
10.2.5创建映射接口和SQL
映射文件138
10.2.6配置Log4j138
10.2.7测试138
10.3MyBatis框架原理139
10.3.1MyBatis整体架构140
10.3.2MyBatis运行原理140
10.4MyBatis核心组件的
生命周期142
10.4.1SqlSessionFactory
Builder142
10.4.2SqlSessionFactory142
10.4.3SqlSession142
10.4.4Mapper Instances142
10.5本章小结143
习题 10143
第11章配置和映射144
11.1示例:实现表数据的增、删、
改、查144
11.2MyBatis主配置文件149
11.3XML映射文件153
11.4高级结果映射160
11.4.1示例说明160
11.4.2一对一映射164
11.4.3一对多映射167
11.4.4多对多关联171
11.5本章小结175
习题 11175
第12章动态SQL176
12.1示例:使用动态SQL176
12.2if178
12.3choose、when、otherwise181
12.4where、set、trim182
12.5foreach187
12.6bind188
12.7本章小结189
习题 12189
第13章MyBatis其他190
13.1MyBatis注解方式190
13.1.1使用注解方式实现表
数据的增删改查190
13.1.2使用注解的动态
SQL194
13.2MyBatis缓存配置200
13.2.1一级缓存(SqlSession
层面)200
13.2.2二级缓存(SqlSession
Factory层面)203
13.3本章小结206
习题 13207
第14章MyBatis应用208
14.1示例总体介绍208
14.1.1任务说明和准备数据208
14.1.2总体框架209
14.1.3程序主要流程209
14.2典型代码及技术要点210
14.2.1通用功能包的类实现210
14.2.2控制层210
14.2.3业务层及使用
FastJson211
14.2.4数据层及JNDI
数据源213
14.2.5部署发布215
14.2.6使用Jackson和手工
拼凑JSON215
14.3本章小结215
习题 14216
第三部分Spring MVC
第15章Spring基础218
15.1Spring入门218
15.1.1Spring概述218
15.1.2使用Spring容器221
15.2依赖注入223
15.3Spring容器中的Bean227
15.4容器中Bean的生命周期230
15.5两种后处理器231
15.5.1Bean后处理器231
15.5.2容器后处理器232
15.6装配Spring Bean232
15.6.1通过XML配置装配
Bean233
15.6.2通过注解装配Bean233
15.6.3自动装配和精确装配235
15.7Spring的AOP236
15.8本章小结237
习题 15237
第16章Spring MVC入门238
16.1Spring MVC概述238
16.2Spring MVC入门示例1:Hello,
Spring MVC!238
16.2.1创建Maven项目238
16.2.2pom.xml239
16.2.3Web应用部署描述文件
Web.xml241
16.2.4Spring MVC
配置文件242
16.2.5基于Controller接口的
控制器242
16.2.6视图243
16.2.7部署发布项目243
16.3Spring MVC入门示例2:
表单提交243
16.3.1创建Maven项目243
16.3.2编码过滤器244
16.3.3表单提交及相应配置245
16.3.4测试应用246
16.4Spring MVC入门示例3:
基于注解247
16.4.1创建Maven项目247
16.4.2创建控制器并添加
注解247
16.4.3视图解析器248
16.4.4测试应用248
16.5Spring MVC的工作流程249
16.6本章小结250
习题 16250
第17章基于注解的控制器251
17.1Spring MVC常用注解251
17.1.1@Controller和
@RequestMapping251
17.1.2@Autowired和
@Service253
17.1.3@RequestParam和
@PathVariable253
17.1.4@CookieValue和
@RequestHeader254
17.2在Spring MVC中处理模型
数据255
17.2.1数据模型255
17.2.2ModelAndView256
17.2.3Map及Model257
17.2.4@SessionAttributes258
17.2.5@ModelAttribute259
17.3基于注解的控制器示例1263
17.3.1创建AnnotationDemo1
工程263
17.3.2创建控制器并添加
注解263
17.3.3测试应用264
17.4基于注解的控制器示例2264
17.4.1创建AnnotationDemo2
工程264
17.4.2应用@Autowired和
@Service进行依赖
注入265
17.4.3重定向267
17.4.4测试应用267
17.5本章小结268
习题 17268
第18章拦截器、数据转换和格式化269
18.1Spring MVC的拦截器269
18.1.1拦截器的定义和注册269
18.1.2拦截器1
|
內容試閱:
|
前 言
蒹葭苍苍,白露为霜。所谓伊人,在水一方,新技术、新知识宛若一位美貌典雅的妙龄女子,让人怦然心动。这位妙龄女子就是Spring MVC MyBatis Maven。
Spring MVC是一个基于动作的MVC框架。该框架突出了HTTP中的请求响应特性,在该框架中,用户的每一个请求都声明了一个需要执行的动作。而这主要是通过将每个请求URI映射到一个可执行的方法来实现的。同时,其也将请求参数映射到对应方法的参数上。
Spring MVC与Spring框架集成在一起(如IoC容器、AOP等),具有非常灵活的数据校验、数据转换和格式化,以及数据绑定机制,支持RESTful,提供强大的约定优于配置的契约式编程支持,能够让开发者进行更简洁的Web层的开发。
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数及获取结果集。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJO映射成数据库中的记录。
MyBatis框架的优点在于:①与JDBC相比,减少了50%以上的代码量;②MyBatis是最简单的持久化框架,小巧且简单易学;③MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低了耦合度,便于统一管理和优化,并可重用;④提供了XML标签,支持编写动态SQL语句;⑤提供了映射标签,支持对象与数据库的ORM映射。
为什么有Maven?构建是程序员每天要做的工作,而且相当长的时间花在了这方面,而Maven可使这一系列的工作完全自动化。人们一直在寻找避免重复的方法,这里的重复有:设计的重复、文档的重复、编码的重复、构建的重复等。而Maven是跨平台的,使用它最大限度地消除了构建的重复。
Maven不仅是构建工具,还是依赖管理工具和项目管理工具,Maven提供了中央仓库,能够帮用户自动下载构件。使用Maven可以进行项目高度自动化构建、依赖管理和仓库管理等。而使用Maven最大的好处就是可以实现依赖管理。
在移动互联网兴起的时代,特别是针对后台开发,越来越多的企业喜欢使用Spring MVC MyBatis Maven的组合,Maven也替代Ant成为构建Java Web项目的流行工具。
一般来说,对于性能要求较高的互联网项目,通常会选用SSM框架。
本书的编写思路
本书基于以下教学理念编写而成。
1.注重基础
要把Spring MVC MyBatis Maven学好,必须要有扎实的基本功,这也就是本书第一部分的内容Java Web开发基础,主要包括Servlet编程、JSP基础、会话管理、EL和JSTL、过滤器与监听器、AJAX技术等内容。同样,要想把Java Web开发基础学好,就要有扎实的Java基础。在学习的旅途中,我们要循序渐进。
2.注重知识(或者技术)格局(框架)
注重技术细节是个好事,但学以致用。这样才会更有学习的动力。无论是Spring MVC 、MyBatis 、Maven,或者Java Web开发基础,其中的哪一部分拿出来都可以是一本书的内容,或者是一学期的课程。但一旦我们的技术格局有了,骨架有了,血肉是可以逐渐丰满起来的。学生一旦产生兴趣,技术(或者知识)细节方面的,他自己会努力学会并加以运用的。这样(同时)还会培养他自己的自学能力。这也是本书集Java Web开发基础 MyBatis Spring MVC Maven于一体,作为《Web应用开发》课程主要教学内容的原因。
3.注重编程实践
本书的编程实例很多,限于篇幅,书中的一些示例代码往往只是核心代码,并不是全部的源程序。读者需要到源码包里仔细地阅读代码,以掌握相应的知识(或技能)。要成为优秀的程序员,编写相当数量的代码还是必要的。设计模式是在代码重构的过程中凸现出来的。所以,编写大量代码、注重编程实践,也为以后成为优秀的架构师打下了基础。
4.注重学习者自身的努力和悟性
师傅领进门,修行在个人,要成为优秀的软件工程师以致架构师,尤其需要个人的勤奋努力及悟性。如果在学习的过程中,学习者态度消极、被动、有惰性,那么谁也帮不上忙。
5.注重能力培养
授人以鱼不如授人以渔,但就编者的教学体会而言,实际上大多数学生喜欢的是鱼,而不是渔。所以,在教学实践中,恰如其分的引导是非常必要的。学生的娇气对学生以后的发展并没有多大好处。
Rome was not build in a day!,能力的培养需要一个过程,虽然未必是宝剑锋从磨砺出,梅花香自苦寒来,但还是需要大量的编程实践、代码重构和反思(悟),经过长时间的潜移默化来逐渐习得。
在教学过程中,更多的需要是随风潜入夜,润物细无声。
要说明的是,本书的定位是卓越工程师培养创新教材,不仅面向在校学生,还面向广大Java程序员、技术人员和培训机构等。
给授课教师的教学建议(参考纸质图书所示)。
致谢
本书由韩冬(苏州大学)负责编制提纲及主要撰写工作,参与本书编写工作的还有张建、曹国平、肖广娣、李炜、李家伟、胡楠等,在此一并表示感谢。
在编写本书过程中,编者参考、借鉴了很多IT技术专家、学者的相关著作,对于引用的段落或文字尽可能一一列出,谨向各位IT技术专家、学者一并表示感谢!
本书的配套资源中,提供了所有章节程序的源代码、配套PPT、习题解答和拓展学习资源(包括HTML、CSS、JavaScript基础内容等),读者可登录华信教育资源网(http:www.hxedu.com.cn)进行下载使用。
鉴于编者水平有限,书中难免存在不足和错误之处,敬请专家和读者提出宝贵意见和建议,以便再版时改进。
韩 冬
|
|