本书从初学者的角度出发,详细介绍了Java Web开发需要掌握的相关技术。全书分4个部分,共17章,由浅入深地介绍了HTTP、Tomcat、Servlet、Maven、数据库基础知识、JDBC、MyBatis、JSP、框架原理、如何设计自己的框架,以及在线购书商城、个人云文件系统、论坛、个人博客项目开发的完整过程。
本书理论联系实际,不但能让读者全面掌握Java Web开发基本技术,而且能让读者开发出自己的Java Web框架。
本书为有一定Java基础但无Java Web开发其他课程基础的学习者提供了一个完整的学习路线与知识体系。
本书从零基础出发,提供了一个完整的学习路线与知识体系,也为有一定基础的读者利用学习本书的数个完整项目提升开发技能提供很大帮助,可以达到培训机构和自学者的使用要求。
华南农业大学数学与信息学院,计算机系计算机网络教研室高级工程师。主讲《Java程序设计》《信息安全数学基础》等本科及研究生课程。主持、参与十余项国家、省部级项目。
第 一部分 Web是怎么工作的 1
第 1章 Web开发基础知识 2
1.1 Web基本概念 3
1.2 通信协议 3
1.2.1 TCP/IP 4
1.2.2 DNS服务 7
1.2.3 URI和URL的区别 9
1.3 HTTP 9
1.3.1 HTTP的主要特点 9
1.3.2 HTTP常用请求方式 9
1.3.3 HTTP的状态 10
1.3.4 HTTP工作原理 12
1.3.5 HTTP报文 12
1.3.6 HTTP状态码 14
1.4 浏览器与 Web服务器交互 15
1.5 本章小结 17
第 2章 使用Java进行Web开发 18
2.1 常用Web服务器 19
2.2 Tomcat服务器 19
2.2.1 Tomcat的下载安装 20
2.2.2 Tomcat服务器中项目的部署 21
2.2.3 Tomcat虚拟目录映射 22
2.2.4 web.xml文件简介 22
2.3 初识Servlet 24
2.3.1 Servlet简介 24
2.3.2 第 一个Servlet程序 24
2.3.3 Servlet执行过程 26
2.3.4 HttpServlet类 27
2.3.5 Servlet的URL路径映射 28
2.4 Servlet的生命周期 29
2.4.1 Servlet的初始化 29
2.4.2 Servlet的销毁 30
2.4.3 Servlet生命周期案例 30
2.5 Servlet响应方法及对象详解 32
2.5.1 常用的处理请求方法 32
2.5.2 HttpServletRequest对象 33
2.5.3 HttpServletResponse对象 42
2.5.4 请求转发与重定向 45
2.5.5 Cookie对象 49
2.5.6 Session对象 54
2.5.7 ServletContext对象 63
2.5.8 ServletConfig对象 63
2.6 本章小结 64
第3章 Java Web开发工具 65
3.1 常用Java Web开发工具 66
3.2 Maven简介 66
3.3 Maven的安装与配置 67
3.4 在IDEA中配置Maven属性 69
3.5 搭建Java Web项目框架 70
3.6 完善Java Web项目 74
3.6.1 编写Servlet类 74
3.6.2 编写JSP页面 75
3.7 部署运行Web应用 75
3.8 本章小结 77
第4章 使用数据库 78
4.1 数据库简介 79
4.1.1 基本概念 79
4.1.2 SQL语言概述 79
4.2 设计数据库 82
4.3 JDBC简介 83
4.4 使用JDBC操作数据库 84
4.5 使用MyBatis操作数据库 94
4.5.1 MyBatis 简介 94
4.5.2 使用MyBatis 95
4.6 本章小结 101
第二部分 你应该知道的语法 102
第5章 HTML基础知识 103
5.1 HTML简介 104
5.2 HTML标签、元素、属性 104
5.2.1 标签的概念 104
5.2.2 元素的概念 104
5.2.3 属性的概念 104
5.3 常用的标签 104
5.3.1 基础标签 104
5.3.2 格式标签 105
5.3.3 图像标签 106
5.3.4 链接标签 107
5.3.5 表单标签 108
5.3.6 框架标签 109
5.4 本章小结 110
第6章 JavaScript基础 111
6.1 JavaScript简介 112
6.2 在HTML中嵌入JavaScript 113
6.3 面向对象的程序设计 115
6.3.1 原型模式 115
6.3.2 继承 117
6.4 JSON 118
6.4.1 语法 119
6.4.2 解析与序列化 119
6.5 Ajax 119
6.5.1 XMLHttpRequest对象 120
6.5.2 使用jQuery实现Ajax 121
6.6 本章小结 126
第7章 JSP技术 127
7.1 JSP简介 128
7.2 第 一个JSP页面 128
7.3 JSP语法 128
7.3.1 基本语法 128
7.3.2 声明变量 129
7.3.3 表达式 129
7.3.4 JSP注释 130
7.3.5 JSP指令 130
7.3.6 JSP标签 130
7.4 流程控制语句 131
7.4.1 判断语句 131
7.4.2 循环语句 133
7.5 表单处理 133
7.5.1 GET方式 133
7.5.2 POST方式 133
7.5.3 JSP读取表单数据 133
7.5.4 使用URL的GET方式实例 134
7.5.5 使用表单的GET方式实例 135
7.5.6 使用表单的POST方式实例 136
7.5.7 传递Checkbox数据到JSP程序 136
7.5.8 读取所有表单参数 138
7.6 JSP隐式对象 139
7.7 EL表达式 140
7.7.1获取数据 140
7.7.2进行运算 142
7.8 JSTL标签 144
7.8.1 通用标签 144
7.8.2 条件标签 145
7.8.3 迭代标签 147
7.9 分页查询 148
7.10 过滤器 154
7.11文件上传与下载 163
7.11.1 文件上传 163
7.11.2 文件下载 164
7.11.3 实践案例 164
7.12 本章小结 168
第8章 Java注解的使用 169
8.1 注解的概念 170
8.2 注解的属性、定义和使用 170
8.2.1 属性 170
8.2.2 定义 170
8.2.3 使用 170
8.3 元注解 170
8.4 Java预置注解 172
8.5 注解与反射 172
8.6 注解的使用场景 172
8.7 本章小结 173
第三部分 设计我们的框架 174
第9章 EFM框架 175
9.1 IOC容器 176
9.1.1 IOC简介 176
9.1.2 实现IOC的核心类 176
9.2 AOP增强 177
9.2.1 JDK动态代理 177
9.2.2 CGLib动态代理 179
9.2.3 实现AOP的核心类 180
9.3 Dispatcher转发器 180
9.4 本章小结 180
第 10章 IOC特性的实现 181
10.1 优化目标 182
10.2使用IOC的原因 182
10.3 动态加载 182
10.3.1 动态加载的含义 182
10.3.2 动态加载存在的不足 183
10.4 实现IOC特性 183
10.4.1 pom.xml配置 183
10.4.2 创建读取配置文件的类ConfigUtil 185
10.4.3 创建获取包下所有的类的类GetclassUtil 187
10.4.4 创建自定义注解 189
10.4.5 创建获取类的帮助类ClassHelper 190
10.4.6 创建Class类与实例的映射关系 191
10.4.7 创建实现IOC的类IOCHelper 193
10.5 本章小结 194
第 11章 服务端开发优化 195
11.1 优化目标 196
11.2 Servlet的优缺点 196
11.3 MVC简介 197
11.4 开发自己的MVC 197
11.4.1 创建返回类型ModelAndView 197
11.4.2 创建注解 198
11.4.3 创建注入参数类ParamUtil 200
11.5 测试MVC 203
11.6 本章小结 205
第 12章 类动态增强 206
12.1 AOP简介 207
12.1.1 AOP的含义 207
12.1.2 AOP的主要功能 207
12.1.3 AOP的主要意图 207
12.1.4 AOP和OOP的区别 207
12.1.5 AOP的具体应用 208
12.1.6 AOP的事务代理的实例 208
12.2 实现AOP特性 210
12.2.1 创建注解 210
12.2.2 创建增强抽象类AbstractProxy 210
12.2.3 创建实现代理的类ProxyUtil 210
12.2.4 动态代理实现 212
12.3 本章小结 213
第四部分 使用我们的框架 214
第 13章 框架的调用方法 215
13.1 把框架导入本地仓库 216
13.2 创建新工程并调用 216
13.3 本章小结 220
第 14章 在线购书商城 221
14.1 需求分析 222
14.1.1 背景 222
14.1.2 系统功能 222
14.1.3 基本要求 222
14.2 详细设计 222
14.2.1 总述 223
14.2.2 功能模块 223
14.2.3 模块关系 224
14.2.4 主要功能的实现 224
14.2.5 项目的配置 224
14.3 功能实现 227
14.3.1 登录功能 228
14.3.2 搜索功能 232
14.3.3 付款功能 237
14.4 本章小结 242
第 15章 个人云文件系统 243
15.1 需求分析 244
15.2 详细设计 244
15.3 功能实现 245
15.3.1 Util类 245
15.3.2 DAO层 245
15.3.3 Service层 245
15.3.4 Controller层 246
15.4 测试图片 249
15.5 本章小结 251
第 16章 论坛 252
16.1 需求分析 253
16.2 详细设计 253
16.3 功能实现 255
16.3.1 项目的配置 255
16.3.2 功能实现 255
16.3.3 用户管理 256
16.3.4 板块管理 257
16.3.5 主题与回复管理 258
16.5 本章小结 259
第 17章 个人博客 260
17.1 需求分析 261
17.2 详细设计 261
17.3 功能实现 262
17.4 界面与测试 276
17.5 本章小结 279