文章目录
- 前言
-
- 本书的编写思路
- 目录
- 第一部分 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