图书目录

第1章Spring基础 1

1.1Spring概述2

1.1.1Spring的由来2

1.1.2Spring的体系结构2

1.2Spring开发环境的构建4

1.2.1使用Eclipse开发Java Web应用4

1.2.2使用STS(Spring Tool Suite)开发Java Web应用8

1.2.3Spring的下载及目录结构9

1.2.4第一个Spring入门程序10

1.2.5实践环节12

1.3Maven管理Spring应用12

1.3.1Maven简介12

1.3.2Maven的pom.xml13

1.3.3在STS中创建Maven Web项目14

1.3.4使用Maven管理第一个Spring入门程序19

1.3.5实践环节21

1.4Spring IoC21

1.4.1基本概念21

1.4.2Spring的常用注解22

1.4.3基于注解的依赖注入23

1.4.4Java配置26

1.4.5实践环节29

1.5Spring AOP29

1.5.1Spring AOP的基本概念29

1.5.2基于注解开发AspectJ31

1.6Spring Bean38

1.6.1Bean的实例化381.6.2Bean的作用域40

1.6.3Bean的初始化和销毁43

1.7Spring的数据库编程45

1.7.1Spring JDBC的XML配置45

1.7.2Spring JDBC的Java配置46

1.7.3Spring JdbcTemplate的常用方法47

1.7.4基于@Transactional注解的声明式事务管理54

1.7.5在事务处理中捕获异常58

1.7.6实践环节59

1.8本章小结59

习题159第2章Spring MVC入门60

2.1MVC模式与Spring MVC工作原理61

2.1.1MVC模式61

2.1.2Spring MVC工作原理61

2.1.3Spring MVC接口62

2.2第一个Spring MVC应用63

2.2.1创建Maven项目并添加依赖的JAR包63

2.2.2在web.xml文件中部署DispatcherServlet64

2.2.3创建Web应用首页65

2.2.4创建Controller类65

2.2.5创建Spring MVC配置文件66

2.2.6应用的其他页面67

2.2.7发布并运行Spring MVC应用67

2.3基于Java配置的Spring MVC应用68

2.4实践环节70

2.5本章小结70

习题270第3章Spring MVC的Controller 71

3.1基于注解的控制器72

3.1.1@Controller注解类型72

3.1.2@RequestMapping注解类型72

3.1.3编写请求处理方法73

3.2Controller接收请求参数的常见方式75

3.2.1通过实体Bean接收请求参数75

3.2.2通过处理方法的形参接收请求参数82

3.2.3通过HttpServletRequest接收请求参数83

3.2.4通过@PathVariable接收URL中的请求参数83

3.2.5通过@RequestParam接收请求参数84

3.2.6通过@ModelAttribute接收请求参数85

3.3重定向与转发85

3.4应用@Autowired进行依赖注入87

3.5@ModelAttribute89

3.6实践环节91

3.7本章小结91

习题391第4章类型转换和格式化92

4.1类型转换的意义93

4.2Converter94

4.2.1内置的类型转换器95

4.2.2自定义类型转换器96

4.2.3实践环节102

4.3Formatter102

4.3.1内置的格式化转换器102

4.3.2自定义格式化转换器102

4.3.3实践环节108

4.4本章小结108

习题4108第5章数据绑定和表单标签库109

5.1数据绑定110

5.2Spring的表单标签库110

5.2.1表单标签110

5.2.2input标签111

5.2.3password标签111

5.2.4hidden标签111

5.2.5textarea标签112

5.2.6checkbox标签112

5.2.7checkboxes标签112

5.2.8radiobutton标签113

5.2.9radiobuttons标签113

5.2.10select标签113

5.2.11options标签113

5.2.12errors标签113

5.3数据绑定应用114

5.3.1创建Maven项目并添加相关依赖114

5.3.2Spring MVC及Web相关配置115

5.3.3领域模型116

5.3.4Service层117

5.3.5Controller层117

5.3.6View层119

5.3.7测试应用122

5.4实践环节123

5.5JSON数据交互123

5.5.1JSON概述123

5.5.2JSON数据转换125

5.6本章小结132

习题5132第6章拦截器133

6.1拦截器概述134

6.1.1拦截器的定义134

6.1.2拦截器的配置135

6.2拦截器的执行流程136

6.2.1单个拦截器的执行流程136

6.2.2多个拦截器的执行流程140

6.3应用案例——用户登录权限验证144

6.4本章小结151

习题6151第7章数据验证152

7.1数据验证概述153

7.1.1客户端验证153

7.1.2服务器端验证153

7.2Spring验证器153

7.2.1Validator接口153

7.2.2ValidationUtils类154

7.2.3验证示例154

7.2.4实践环节165

7.3JSR 303验证166

7.3.1JSR 303验证配置166

7.3.2标注类型166

7.3.3验证示例168

7.3.4实践环节172

7.4本章小结172

习题7172第8章国际化173

8.1程序国际化概述174

8.1.1Java国际化的思想174

8.1.2Java支持的语言和国家174

8.1.3Java程序国际化175

8.1.4带占位符的国际化信息176

8.1.5实践环节177

8.2Spring MVC的国际化177

8.2.1Spring MVC加载资源属性文件178

8.2.2语言区域的选择178

8.2.3使用message标签显示国际化信息179

8.3用户自定义切换语言示例180

8.4本章小结187

习题8187第9章统一异常处理188

9.1示例介绍189

9.2SimpleMappingExceptionResolver类196

9.3HandlerExceptionResolver接口197

9.4@ExceptionHandler注解199

9.5@ControllerAdvice注解200

9.6本章小结201

习题9201第10章文件的上传和下载202

10.1文件上传203

10.1.1commonsfileupload组件203

10.1.2基于表单的文件上传203

10.1.3MultipartFile接口204

10.1.4单文件上传204

10.1.5多文件上传211

10.1.6实践环节216

10.2文件下载217

10.2.1文件下载的实现方法217

10.2.2文件下载217

10.3本章小结222

习题10222第11章EL与JSTL223

11.1表达式语言EL224

11.1.1基本语法224

11.1.2EL隐含对象226

11.1.3实践环节231

11.2JSP标准标签库JSTL232

11.2.1配置JSTL232

11.2.2核心标签库之通用标签233

11.2.3核心标签库之流程控制标签234

11.2.4核心标签库之迭代标签236

11.2.5函数标签库239

11.2.6实践环节242

11.3本章小结243

习题11243第12章MyBatis入门245

12.1MyBatis简介246

12.2MyBatis的环境构建246

12.2.1非Maven构建246

12.2.2Maven构建246

12.3MyBatis的工作原理247

12.4使用STS开发MyBatis入门程序248

12.4.1创建Maven项目并添加相关依赖248

12.4.2创建Log4j的日志配置文件249

12.4.3创建持久化类250

12.4.4创建SQL映射文件250

12.4.5创建MyBatis的核心配置文件251

12.4.6创建测试类252

12.5MyBatis与Spring MVC的整合开发254

12.5.1相关依赖254

12.5.2在Sping MVC的配置类中配置数据源及MyBatis工厂256

12.5.3整合示例258

12.5.4实践环节263

12.6使用MyBatis Generator插件自动生成映射文件264

12.7小结266

习题12 266第13章MyBatis的映射器267

13.1MyBatis的核心配置268

13.2映射器概述268

13.3<select>元素269

13.3.1使用Map接口传递参数270

13.3.2使用Java Bean传递参数279

13.3.3使用@Param注解传递参数281

13.3.4<resultMap>元素282

13.3.5使用POJO存储结果集282

13.3.6使用Map存储结果集285

13.3.7实践环节287

13.4<insert>元素287

13.4.1主键(自动递增)回填287

13.4.2自定义主键290

13.5<update>与<delete>元素290

13.6<sql>元素290

13.7级联查询291

13.7.1一对一级联查询291

13.7.2一对多级联查询298

13.7.3多对多级联查询304

13.8动态SQL307

13.8.1<if>元素307

13.8.2<choose><when><otherwise>元素308

13.8.3<trim>元素310

13.8.4<where>元素311

13.8.5<set>元素312

13.8.6<foreach>元素314

13.8.7<bind>元素315

13.9本章小结316

习题13316第14章名片管理系统的设计与实现317

14.1系统设计318

14.1.1系统功能需求318

14.1.2系统模块划分318

14.2数据库设计318

14.2.1数据库概念结构设计318

14.2.2数据库逻辑结构设计319

14.3系统管理320

14.3.1Maven项目依赖管理320

14.3.2JSP页面管理321

14.3.3包管理323

14.3.4配置类管理324

14.3.5配置文件管理329

14.4组件设计330

14.4.1工具类330

14.4.2统一异常处理331

14.4.3验证码332

14.5名片管理335

14.5.1领域模型与持久化类335

14.5.2Controller实现336

14.5.3Service实现338

14.5.4Dao实现342

14.5.5SQL映射文件342

14.5.6添加名片344

14.5.7查询名片346

14.5.8修改名片353

14.5.9删除名片357

14.6用户相关357

14.6.1领域模型与持久化类357

14.6.2Controller实现358

14.6.3Service实现359

14.6.4Dao实现361

14.6.5SQL映射文件361

14.6.6注册362

14.6.7登录364

14.6.8修改密码367

14.6.9安全退出368

14.7小结369

习题14369参考文献370