文章目录
- 前言
 - 
- 本书的编写思路
 
 - 目录
 - 第一部分 Java Web 开发基础
 - 第 1 章 搭建 Java Web 开发环境
 - 第 2 章Servlet 编程
 - 第 3 章 JSP语言基础
 - 
- 3.1 JSP基本语法
 - 
- 3.1.1 JSP 简介
 - 3.1.2 JSP运行机制
 - 3.1.3 第一个JSP程序
 - 3.1.4 JSP 指令
 - 3.1.5 JSP脚本
 - 3.1.6 JSP 注释
 
 - 3.2 JSP 动作元素
 - 3.3 JSP内置对象
 - 3.4 JSP综合示例
 
 - 第 4 章 会话管理
 - 
- 4.1 Cookies
 - 
- 4.1.1 Cookie 剖析
 - 4.1.2 在Servlet中操作 Cookie
 - 4.1.3 Cookie API
 - 4.1.4 使用Cookie示例
 
 - 4.2 HttpSession 对象
 - 
- 4.2.3 使 用HttpSession示例
 
 - 4.3 URL 重写
 - 
- 4.3.1 为什么 需要URL重写
 - 4.3.2 encodeURL() 和 encodeRedirectURL()
 - 4.3.3 使用URL 重写示例
 
 - 4.4 隐藏表单域
 
 - 第 5 章 EL和JSTL
 - 
- 5.1 JSP表达式语言
 - 
- 5.1.1 EL 简介
 - 5.1.2 EL 的运算符和优先级
 - 5.1.3 EL 隐式对象
 - 5.1.4 定义和使用EL函数
 
 - 5.2 JSP 标准标签库
 - 
- 5.2.1 JSTL 简介
 - 5.2.2 JSTL 安装与配置
 - 5.2.3核 心标签库
 
 
 - 第 6 章 过滤器与监听器
 - 
- 6.1 Servlet 过滤器
 - 
- 6.1.1 Filter 工作原理
 - 6.1.2 Filter 核心接口
 - 6.1.3 Filter 生命周期
 - 6.1.4 Filter配置
 - 6.1.5 Filter 应用
 
 - 6.2 Servlet 监听器
 - 
- 6.2.1 Servlet 监听器概述
 - 6.2.2 Servlet. 上下文监听
 - 6.2.3 HTTP 会话监听
 - 6.2.4 Servlet 请求监听
 
 
 - 第 7 章 AJAX技术
 - 
- 7.1 实现AJAX应用的一般步骤
 - 7.2 使用 XMLHtpRequest对象
 - 
- 7.2.1创建 XMLHttpRequest对象
 - 7.2.2 XMLHttpRequest 对象的常属性与事件
 - 7.2.3 XMLHttpRequest 对象的常用方法
 
 - 7.3 AJAX 示例
 - 
- 7.3.1 更改文本内容
 - 7.3.2 查询项目信息
 - 7.3.3验证注册邮箱格式和唯一性
 - 7.4 本章小结
 
 
 - 第 8 章 Maven
 - 
- 8.1 初识Maven
 - 8.2 Maven 的安装和配置
 - 8.3 Maven 使用
 - 8.4坐标和依赖
 
 - 第 9 章 jQuery EasyUI
 - 
- 9.1 jQuery 基础
 - 
- 9.1.1初识 jQuery
 - 9.1.2 jQuery 选择器
 - 9.1.3 jQuery 事件
 - 9.1.4 jQuery AJAX
 
 - 9.2 jQuery EasyUI
 - 9.3 jQuery EasyUI布局
 - 
- 9.3.1 创建边框布局
 - 9.3.2 在面板中创建复杂布局
 - 9.3.3 创建折叠面板
 - 9.3.4 创建标签页
 - 9.3.5 动态添加标签页
 
 - 9.4 jQuery EasyUI数据网格
 - 
- 9.4.1 转换 HTML表格为数据网格
 - 9.4.2 取得选中行数据
 - 9.4.3 创建复杂工具栏
 - 9.3.5 动态添加标签页
 
 
 - 第二部分MyBatis
 - 第 10 章 MyBatis入门
 - 
- 10.1 从JDBC到MyBatis
 - 10.2 第一个MyBatis示例
 - 
- 10.2.1 创建 Maven项目
 - 10.2.2 准备数据
 - 10.2.3 MyBatis 配置
 - 10.2.4 创建实体类
 - 10.2.5 创建映射接口和 SQL映射文件
 - 10.2.6 配置Log4j
 - 10.2.7 测试
 
 - 10.3 MyBatis 框架原理
 - 
- 10.3.1 MyBatis 整体架构
 - 10.3.2 MyBatis 运行原理
 
 - 10.4 MyBatis 核心组件的生命周期
 - 
- 10.4.1 SqlSessionFactoryBuilder
 - 10.4.2 SqlSessionFactory
 - 10.4.3 SqlSession
 - 10.4.4 Mapper Instances
 
 
 - 第11章配置和映射
 - 
- 11.1 示例:实现表数据的增、删、改、查
 - 11.2 MyBatis主配置文件
 - 11.3 XML映射文件
 - 11.4 高级结果映射
 - 
- 11.4.1 示例说明
 - 11.4.2 一对一映射
 - 11.4.3 一对多映射
 - 11.4.4 多对多关联
 
 
 - 第 12 章动态 SQL
 - 
- 12.1 示例: 使用动态 SQL
 - 12.2 if
 - 12.3 choose、when、otherwise
 - 12.4 where、 set、 trim
 - 12.5 foreach
 - 12.6 bind
 
 - 第 13 章 MyBatis 其他
 - 
- 13.1 MyBatis 注解方式
 - 
- 13.1.1使用注解方 式实现表数据的增、删、改、查
 - 13.1.2 使用注解的动态 SQL
 
 - 13.2 MyBatis 缓存配置
 - 
- 13.2.1 一级缓存( SqlSession层面)
 - 13.2.2 二级缓存 (SqlSessionFactory层面)
 
 
 - 第 14 章 MyBatis 应用
 - 
- 14.1 示例总体介绍
 - 
- 14.1.1 任务说明和准备数据
 - 14.1.2 总体框架
 - 14.1.3 程序主要流程
 
 - 14.2典型代码及技术要点
 - 
- 14.2.1 通用功能包的类实现
 - 14.2.2 控制层
 - 14.2.3 业务层及使用 FastJson
 - 14.2.4 数据层及 JNDI 数据源
 - 14.2.5 部署发布
 - 14.2.6 使用 Jackson 和手工平凑 JSON
 
 
 - 第三部分
 - 第 15 章 Spring 基础
 - 
- 15.1 Spring 入门
 - 
- 15.1.1 Spring 概述
 - 15.1.2 使用 Spring 容器
 
 - 15.2 依赖注入
 - 15.3 Spring 容器中的 Bean
 - 15.4 容器中 Bean 的生命周期
 - 15.5 两种后处理器
 - 
- 15.5.1 Bean 后处理器
 - 15.5.2 容器后处理器
 
 - 15.6 装配Spring Bean
 - 
- 15.6.1 通过 XML 配置装配 Bean
 - 15.6.2 通过注解装配 Bean
 - 15.6.3 自动装配和精确装配
 
 - 15.7 Spring 的 AOP
 - 
- 第 16 章 Spring MVC入门
 
 - 16.1 Spring MVC概述
 - 16.2 Spring MVC入门示例1: Hello,Spring MVC!
 - 
- 16.2.1 创建 Maven 项目
 - 16.2.2 pom.xml
 - 16.2.3 Web 应用部署描述文件 Web.xml
 - 16.2.4 Spring MVC 配置文件
 - 16.2.5 基于 Controller接口的控制器
 - 16.2.6 视图
 - 16.2.7 部署发布项目
 - 16.3 Spring MVC入门示例2: 表单提交
 - 16.3.1创建 Maven 项目
 - 16.3.2 编码过滤器
 - 16.3.3 表单提交及相应配置
 - 16.3.4 测试应用
 
 - 16.4 Spring MVC入门示例3: 基于注解
 - 
- 16.4.1创建 Maven 项目
 - 16.4.2 创建控制器并添加注解
 - 16.4.3 视图解析器
 - 16.4.4 测试应用
 
 - 16.5 Spring MVC的工作流程
 
 - 第 17 章基于注解的控制器
 - 
- 17.1 Spring MVC 常用注解
 - 
- 17.1.1 @Controller 和 @Request Mapping
 - 17.1.2 @Autowired 和 @Service
 - 17.1.3 @RequestParam 和 @Path Variable
 - 17.1.4 @CookieValue 和 @RequestHeader
 - 17.2.5 @ModelAttribute
 - 17.3 基于注解的控制器示例1
 - 17.3.1 创建 AnnotationDemo1 工程
 - 17.3.2 创建控制器 并添加注解
 - 17.3.3 测试应用
 
 - 17.4 基于注解的控制器示例2
 - 
- 17.4.1创建 AnnotationDemo2 工程
 - 17.4.2 应用@Autowired 和 @Service 进行依赖注入
 
 - 17.4.3 重定向
 - 
- 17.4.4 测试应用
 
 
 - 第 18 章拦截器、数据转换和格式化
 - 
- 18.1 Spring MVC的拦截器
 - 
- 18.1.1 拦截 器的定义和注册
 - 18.1.2 拦截器的执行流程
 - 18.1.3 多个拦截器执行的顺序
 - 18.1.4 拦截器应用
 
 - 18.2 Spring MVC的数据转换和格式化
 - 
- 18.2.1 Spring MVC消息转换流程
 - 18.2.2 Spring MVC的数据绑定
 - 18.2.2 Spring MVC的数据转换
 - 18.2.2 Spring MVC的数据格式化
 - 18.2.5 JSON 格式的数据转换
 
 
 - 第 19 章 Spring MVC 其他
 - 
- 19.1 Spring MVC 的表单标签库
 - 19.2 表单验证
 - 
- 19.2.1 Spring 验证
 - 19.2.2 JSR 303验证
 - 19.3 Spring MVC的文件上传和下载
 - 19.3.1 文件上传
 - 19.3.2 文件下载
 
 - 19.4 Spring MVC 的国际化
 
 - 第 20 章 Spring MVC + MyBatis 应用
 - 
- 20.1 项目总体介绍
 - 
- 20.1.1 项目简介及任务说明
 - 20.1.2 一准备数据
 - 20.1.3 总体框架
 
 - 20.2 典型代码及技术要点
 - 
- 20.2.1 登录模块及 Kaptcha 验证码组件
 - 20.2.2 系统管理界面
 - 20.2.3 系统用户管理
 
 
 
前言
Web 应用开发——基于 Spring MVC + MyBits + 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最大的好处就是可以实现依赖管理。
 一般来说,对于性能要求较高的互联网项目,通常会选用SSM框架。
本书的编写思路
 本书基于以下教学理念编写而成。
- 注重基础
 
 要把Spring MVC + MyBatis + Maven学好,必须要有扎实的基本功,这也就是本书第一部分的内容一Java Web开发基础,主要包括Servlet编程、JSP基础、会话管理、EL和JSTL、过滤器与监听器、AJAX 技术等内容。同样,要想把“Java Web开发基础”学好,就要有扎实的Java基础。在学习的旅途中,我们要循序渐进。
- 注重知识(或者技术)格局(框架)
 
 注重技术细节是个好事,但学以致用。这样才会更有学习的动力。无论是Spring MVC、MyBatis、Maven,或者Java Web开发基础,其中的哪一部分拿 出来都可以是一本书的内容,或者是一学期的课程。但一旦我们的技术格局有了,骨架有了,血肉是可以逐渐丰满起来的。学生一旦产生兴趣,技术(或者知识)细节方面的,他自己会努力学会并加以运用的。这样(同时)还会培养他自己的自学能力。这也是本书集“Java Web开发基础+ MyBatis + SpringMVC + Maven"于一体,作为《Web 应用开发》课程主要教学内容的原因。
- 注重编程实践
 
 本书的编程实例很多,限于篇幅,书中的一些示例代码往往只是核心代码,并不是全部的源程序。读者需要到源码包里仔细地阅读代码,以掌握相应的知识(或技能)。要成为优秀的程序员,编写相当数量的代码还是必要的。设计模式是在代码重构的过程中凸现出来的。所以,编写大量代码、注重编程实践,也为以后成为优秀的架构师打下了基础。
- 注重学习者的自身努力和悟性
 
 “师傅领进门,修行在个人”,要成为优秀的软件工程师以致架构师,尤其需要个人的勤奋努力及悟性。如果在学习的过程中,学习者态度消极、被动、有惰性,那么谁也帮不上忙。
- 注重能力培养
 
 “授人以鱼不如授人以渔”,但就编者的教学体会而言, 实际上大多数学生喜欢的是“鱼”,而不是“渔”。所以,在教学实践中,恰如其分的引导是非常必要的。学生的“娇气”对学生以后的发展并没有多大好处。
 “Rome was not build in a day!",能力的培养需要-个过程,虽然未必是“宝剑锋从磨砺出,梅花香自苦来”,但还是需要大量的编程实践、代码重构和反思(“悟”),经过长时间的潜移默化来逐渐习得。
 在教学过程中,更多的需要是“随风潜入夜,润物细无声”。
目录
第一部分 Java Web 开发基础
第 1 章 搭建 Java Web 开发环境
- 1.1 基于B/S 结构的 Web 应用
 - 1.2 JDK安装与配置]
 - 1.3 服务器Tomcat下载与安装
 - 1.4 Eclipse安装与使用
- 1.4.1 1.4.1 Eclipse 下载及创建Dynamic Web Project
 - 1.4.2 Eclipse 中的编码问题
 - 1.4.3 将Tomcat和Eclipse相关联
 - 1.4.4 Eclipse 自动部署项目到 Tomcat 的 webapps 目录
 - 1.5 MySQL 安装配置与使用
 
 - 1.6 PostgreSQL安装与使用
- 1.6.1 PostgreSQL 下载与安装
 - 1.6.2 使用 pgAdmin III连接 PostgreSQL
 - 1.6.3 使用pgAdmin III创建数据库
 
 - 1.7 Navicat Premium安装与使用
 
第 2 章Servlet 编程
- 2.1 Servlet 简介
 - 2.2 Servlet 基础
- 2.2.1用 记事本写一个 Servlet
 - 2.2.2 Servlet 体系结构
 - 2.2.3 Servlet 接口
 - 2.2.4 Servlet 生命周期
 - 2.2.5 Servlet 生命周期示例
 
 - 2.3 Servlet API编程常用接口和类
- 2.3.1 GenericServlet 类
 - 2.3.2 HttpServlet类
 - 2.3.4 HttpServletRequest 接口
 - 2.3.5 HttpServletResponse接口
 - 2.3.6 ServletContext 接口
 
 - 2.4 Servlet 处理表单数据
 - 2.5 Servlet 重定向和请求转发
- 2.5.1 重定向
 - 2.5.2 请求转发
 - 2.5.3 Servlet 中请求转发时 forwordO 和 include() 的区别
 
 - 2.6 Servlet 数据库访问
- 2.6.1 JDBC 基础
 - 2.6.2 创建测试数据
 - 2.6.3 访问数据库
 
 - 2.7 Servlet异常处理
 - 2.8 异步 Servlet