内容简介
本书以零基础讲解为宗旨,用实例引导读者深入学习,采取【基础入门→核心技术→框架应用→项目实训】的讲解模式,深入浅出地讲解Java的各项技术及实战技能。
本书第1篇【基础入门】主要内容包括熟悉Java Web开发、Java Web开发环境搭建、快速认识JSP、JSP语言基础、JSP内置对象等;第2篇【核心技术】主要内容包括Servlet技术、JavaBean技术、过滤器技术、监听器技术、JDBC与MySQL、表达式语言EL、XML技术、JSTL技术、Ajax技术等;第3篇【框架应用】主要内容包括Struts 2基础知识、Struts 2高级技术、Hibernate 4技术、Spring 4技术、Struts 2+Spring 4+Hibernate 4等;第4篇【项目实训】主要内容包括开发在线购物商城、开发在线考试系统、开发火车订票系统。
本书适合任何想学习Java Web编程语言的人员,无论您是否从事计算机相关行业,无论您是否接触过Java Web,通过学习均可快速掌握Java Web在项目开发中的知识和技巧。
前 言
“网站开发案例课堂”系列图书是专门为软件开发和数据库初学者量身定制的一套学习用书,整套书涵盖软件开发、数据库设计等方面。整套书具有以下几个特点。
前沿科技
无论是软件开发还是数据库设计,我们都精选较为前沿或者用户群最大的领域推进,帮助大家认识和了解最新动态。
权威的作者团队
组织国家重点实验室和资深应用专家联手编著该套图书,融合丰富的教学经验与优秀的管理理念。
学习型案例设计
以技术的实际应用过程为主线,全程采用图解和同步多媒体结合的教学方式,生动、直观、全面地剖析使用过程中的各种应用技能,降低难度,提升学习效率。
为什么要写这样一本书
Java是Sun公司推出的能够跨越多平台的、可移植性最高的一种面向对象的编程语言,也是目前最先进、特征最丰富、功能最强大的计算机语言。利用Java可以编写桌面应用程序、Web应用程序、分布式系统应用程序、嵌入式系统应用程序等,从而使其成为应用范围最广泛的开发语言,特别是在Web程序开发方面。目前学习和关注Java Web的人越来越多,而很多Java Web的初学者都苦于找不到一本通俗易懂、容易入门和案例实用的参考书。通过本书的案例实训,读者可以很快地上手流行的工具,提高职业化能力,从而帮助解决公司与求职者的双重需求问题。
本书特色
零基础、入门级的讲解
无论您是否从事计算机相关行业,无论您是否接触过Java Web程序开发,都能从本书中找到最佳起点。
超多、实用、专业的范例和项目
本书在编排上紧密结合深入学习Java Web程序开发技术的先后过程,从配置Java Web开发环境开始,逐步带领大家深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
随时检测自己的学习成果
每章首页中,均提供了“本章要点”,以指导读者重点学习及学后检查。
大部分章节最后的“跟我学上机”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。
细致入微、贴心提示
本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
专业创作团队和技术支持
本书由千谷高新教育中心编著和提供技术支持。
您在学习过程中遇到任何问题,可加入QQ群(案例课堂VIP)451102631进行提问,专家人员会在线答疑。
超值赠送资源
全程同步教学录像
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点。比看书更轻松地掌握书中所有的Java Web程序开发知识,而且扩展的讲解部分使您得到比书中更多的收获。
超多容量王牌资源大放送
本书赠送了十大超值的王牌资源。包括本书实例源文件、精美教学幻灯片、精选本书教学视频、MyEclipse常用快捷键、MyEclipse提示与技巧、Java SE类库查询手册、Java程序员面试技巧、Java 常见面试题、Java常见错误及解决方案、Java开发经验及技巧大汇总等。读者可以通过QQ群(案例课堂VIP)451102631获取赠送资源,也可以扫描二维码,下载本书资源,还可以进入http://www.apecoding.com/下载赠送资源。
读者对象
没有任何Java Web开发技术的初学者。
有一定的Java Web开发基础,想精通Java Web开发的人员。
有一定的Java Web开发基础,没有项目经验的人员。
正在进行毕业设计的学生。
大专院校及培训学校的老师和学生。
创作团队
本书由刘玉红和侯永岗编著,参加编写的人员还有蒲娟、刘玉萍、裴雨龙、李琪、周佳、付红、李园、郭广新、王攀登、刘海松、孙若淞、王月娇、包慧利、陈伟光、胡同夫、王伟、梁云梁和周浩浩。在编写过程中,我们竭尽所能地将最好的讲解呈现给读者,但也难免有疏漏和不妥之处,敬请不吝指正。若您在学习中遇到困难或疑问,或有何建议,可写信至信箱357975357@qq.com。
编 者
目 录
第1篇 基 础 入 门
第1章 揭开Java Web的神秘面纱——
熟悉Java Web开发 3
1.1 Web开发基础知识 4
1.1.1 Web概述 4
1.1.2 Web服务器 4
1.1.3 Web页面 6
1.1.4 网站 6
1.2 Web开发体系结构 6
1.2.1 C/S体系结构 6
1.2.2 B/S体系结构 7
1.2.3 C/S与B/S的区别 8
1.3 Web应用程序的工作原理 9
1.3.1 静态网站 9
1.3.2 动态网站 10
1.4 Web应用技术 11
1.4.1 客户端应用的技术 11
1.4.2 服务器端应用的技术 12
1.5 大神解惑 13
1.6 跟我学上机 13
第2章 开发前必备工作——Java Web
开发环境搭建 15
2.1 搭建Java环境 16
2.1.1 JDK下载 16
2.1.2 JDK安装 17
2.1.3 JDK配置 18
2.1.4 测试JDK 20
2.2 Tomcat服务器 21
2.2.1 Tomcat的下载 21
2.2.2 Tomcat的安装 22
2.2.3 Tomcat的启动与关闭 24
2.2.4 修改Tomcat端口 24
2.2.5 测试Tomcat 25
2.3 MyEclipse的下载与安装 26
2.3.1 MyEclipse的下载 26
2.3.2 MyEclipse的安装 27
2.4 部署Web项目 28
2.4.1 在MyEclipse中配置Tomcat 28
2.4.2 创建第一个Web项目 30
2.4.3 将项目部署到Tomcat 31
2.5 大神解惑 33
2.6 跟我学上机 34
第3章 零基础开始学习——快速认识
JSP 35
3.1 JSP概述 36
3.2 JSP形成历史 36
3.3 JSP的优势 37
3.4 JSP运行机制 39
3.5 JSP开发的两种模式 40
3.5.1 JSP+JavaBean模式 40
3.5.2 JSP+JavaBean+Servlet模式 40
3.6 第一个JSP页面 41
3.7 大神解惑 43
3.8 跟我学上机 44
第4章 灵活使用JSP——JSP语言
基础 45
4.1 JSP注释 46
4.2 JSP声明 47
4.3 JSP代码段 47
4.4 JSP表达式 49
4.5 JSP指令 50
4.5.1 page指令 50
4.5.2 include指令 52
4.5.3 taglib指令 54
4.6 JSP动作 56
4.6.1 include动作 56
4.6.2 forward动作 57
4.6.3 param动作 58
4.6.4 plugin动作 60
4.7 JSP异常 60
4.8 大神解惑 60
4.9 跟我学上机 62
第5章 掌握JSP核心技术——
JSP内置对象 63
5.1 内置对象的作用范围 64
5.1.1 Application作用范围 64
5.1.2 Session作用范围 64
5.1.3 Request作用范围 64
5.1.4 Page作用范围 66
5.2 out对象 67
5.3 request对象 69
5.3.1 获取客户端信息 69
5.3.2 获取请求参数 71
5.3.3 JSP中文乱码 73
5.4 response对象 75
5.4.1 response概述 75
5.4.2 response重定向 76
5.5 session对象 78
5.5.1 session概述 78
5.5.2 存储客户端信息 79
5.5.3 销毁session 82
5.6 session跟踪 82
5.6.1 URL重写 82
5.6.2 表单隐藏字段 83
5.6.3 Cookie 84
5.6.4 HttpSession对象 87
5.7 application对象 90
5.8 page对象 92
5.9 pageContext对象 92
5.10 config对象 95
5.11 exception对象 95
5.12 大神解惑 97
5.13 跟我学上机 98
第2篇 核 心 技 术
第6章 服务器端程序的开发——
Servlet技术 101
6.1 Servlet简介 102
6.1.1 工作原理 102
6.1.2 生命周期 102
6.1.3 实现MVC开发模式 103
6.2 Servlet常用的接口和类 104
6.2.1 Servlet()方法 105
6.2.2 HttpServlet类 105
6.2.3 HttpSession接口 106
6.2.4 ServletConfig接口 107
6.2.5 ServletContext接口 107
6.3 创建和配置Servlet 108
6.4 用Servlet获取信息 111
6.4.1 获取HTTP头部信息 111
6.4.2 获取请求对象信息 112
6.4.3 获取参数信息 113
6.5 在JSP页面中调用Servlet的方法 115
6.5.1 表单提交调用Servlet 116
6.5.2 超链接调用Servlet 119
6.6 Servlet的应用 121
6.6.1 下载上传组件 121
6.6.2 使用Servlet上传文件 125
6.6.3 使用Servlet下载文件 128
6.6.4 Cookies操作 130
6.6.5 Session操作 132
6.7 大神解惑 133
6.8 跟我学上机 134
第7章 Java的可重用组件——
JavaBean技术 135
7.1 JavaBean简介 136
7.1.1 JavaBean概述 136
7.1.2 JavaBean的种类 136
7.2 非可视化JavaBean 136
7.2.1 JavaBean的编码规则 136
7.2.2 JavaBean属性 137
7.3 使用JavaBean的原因 138
7.4 在JSP中使用JavaBean 142
7.4.1 <jsp:useBean>动作 142
7.4.2 <jsp:setProperty>动作 143
7.4.3 <jsp:getProperty>动作 143
7.5 JavaBean的范围 144
7.5.1 page范围 144
7.5.2 request范围 146
7.5.3 session范围 148
7.5.4 application范围 149
7.6 大神解惑 151
7.7 跟我学上机 151
第8章 过滤浏览器的请求——
过滤器技术 153
8.1 过滤器简介 154
8.2 过滤器接口 154
8.2.1 Filter接口 154
8.2.2 FilterConfig接口 155
8.2.3 FilterChain接口 155
8.3 创建和配置过滤器 155
8.4 转换字符编码过滤器 157
8.5 大神解惑 160
8.6 跟我学上机 160
第9章 监听Web应用程序——
监听器技术 161
9.1 监听器简介 162
9.1.1 监听器概述 162
9.1.2 监听器接口 162
9.2 监听器接口 163
9.2.1 监听对象的创建与销毁 163
9.2.2 监听对象的属性 164
9.2.3 监听Session中的对象 166
9.3 创建和配置监听器 166
9.4 统计在线人数 168
9.5 Servlet3.0的新特性 173
9.5.1 注解 173
9.5.2 异步处理 179
9.5.3 上传组件 181
9.6 大神解惑 184
9.7 跟我学上机 184
第10章 Java Web的数据库编程——
JDBC与MySQL 185
10.1 JDBC概述 186
10.1.1 JDBC原理 186
10.1.2 JDBC驱动 186
10.2 连接数据库 187
10.2.1 安装MySQL数据库 188
10.2.2 安装Navicat 191
10.2.3 连接数据库的步骤 192
10.2.4 JDBC入门案例 193
10.3 驱动管理器类 195
10.3.1 加载JDBC驱动 195
10.3.2 DriverManager类 196
10.4 数据库连接接口 197
10.4.1 常用方法 197
10.4.2 处理元数据 198
10.5 数据库常用接口 199
10.5.1 Statement接口 199
10.5.2 PreparedStatement接口 200
10.5.3 ResultSet接口 200
10.6 综合演练——学生信息管理系统 201
10.6.1 创建表student 201
10.6.2 创建学生类 201
10.6.3 连接数据库 203
10.6.4 管理员登录页面 203
10.6.5 登录处理页面 205
10.6.6 显示学生信息 206
10.6.7 添加学生信息 207
10.6.8 修改学生信息 210
10.6.9 删除学生信息 214
10.6.10 错误页面 216
10.6.11 配置文件 216
10.6.12 运行项目 217
10.7 大神解惑 219
10.8 跟我学上机 220
第11章 简化JSP的代码——表达式
语言EL 221
11.1 EL简介 222
11.1.1 EL概述 222
11.1.2 EL基本语法 222
11.1.3 EL变量 222
11.1.4 EL的特点 224
11.2 EL运算符 224
11.2.1 判断是否为空 224
11.2.2 访问数据 225
11.2.3 算术运算符 226
11.2.4 关系运算符 227
11.2.5 逻辑运算符 228
11.2.6 条件运算符 229
11.3 EL隐含对象 230
11.3.1 EL隐含对象概述 230
11.3.2 pageContext隐含对象 230
11.3.3 与范围有关的隐含对象 232
11.3.4 param和paramValues对象 233
11.3.5 header和headerValues对象 235
11.3.6 cookie对象 236
11.3.7 initParam对象 237
11.4 与低版本环境兼容——禁用EL 238
11.4.1 反斜杠“\” 238
11.4.2 page指令 239
11.4.3 配置文件 240
11.5 大神解惑 242
11.6 跟我学上机 243
第12章 网络数据传输的格式——
XML技术 245
12.1 XML概述 246
12.1.1 XML概念 246
12.1.2 XML与HTML的区别 246
12.2 XML基本语法 246
12.2.1 文档声明 246
12.2.2 标签(元素) 247
12.2.3 标签嵌套 247
12.2.4 属性与注释 247
12.2.5 实体引用 248
12.3 XML树结构 249
12.4 XML解析器 249
12.4.1 解析XML文档 250
12.4.2 解析XML字符串 250
12.5 XML 文档对象 251
12.6 大神解惑 254
12.7 跟我学上机 254
第13章 JSP的标签库——
JSTL技术 255
13.1 JSTL简介 256
13.1.1 JSTL概述 256
13.1.2 导入标签库 256
13.1.3 JSTL分类 256
13.2 JSTL环境配置 259
13.3 表达式控制标签 260
13.3.1 <c:out>标签 260
13.3.2 <c:set>标签 261
13.3.3 <c:remove>标签 264
13.3.4 <c:catch>标签 265
13.4 流程控制标签 266
13.4.1 <c:if>标签 266
13.4.2 <c:choose>标签 268
13.4.3 <c:when>标签 268
13.4.4 <c:otherwise>标签 268
13.5 循环标签 269
13.5.1 <c:forEach>标签 269
13.5.2 <c:forTokens>标签 272
13.6 URL操作标签 274
13.6.1 <c:import>标签 274
13.6.2 <c:param>标签 275
13.6.3 <c:url>标签 276
13.6.4 <c:redirect>标签 277
13.7 自定义标签 278
13.7.1 创建功能类 279
13.7.2 描述文件 279
13.7.3 调用标签 280
13.8 大神解惑 281
13.9 跟我学上机 281
第14章 异步交互式动态网页——
Ajax技术 283
14.1 Ajax概述 284
14.1.1 Ajax简介 284
14.1.2 Ajax工作原理 284
14.1.3 Ajax组成元素 284
14.2 XMLHttpRequest对象 285
14.2.1 XHR对象简介 285
14.2.2 XHR常用方法和属性 285
14.2.3 创建XHR对象 288
14.3 XHR请求 289
14.3.1 GET请求 289
14.3.2 POST请求 290
14.4 XHR响应 293
14.4.1 responseText属性 293
14.4.2 responseXML属性 293
14.5 大神解惑 295
14.6 跟我学上机 296
第3篇 框 架 应 用
第15章 经典MVC框架技术——
Struts 2基础知识 299
15.1 Struts 2概述 300
15.1.1 Struts MVC模式 300
15.1.2 Struts工作流程 301
15.1.3 Struts基本配置 301
15.2 第一个Struts 2程序 303
15.2.1 创建JSP页面 303
15.2.2 创建Action 304
15.2.3 struts.xml文件 305
15.2.4 web.xml文件 307
15.2.5 显示信息 307
15.2.6 运行项目 308
15.3 控制器Action 308
15.3.1 Action接口 309
15.3.2 属性注入值 309
15.4 动态方法调用 311
15.4.1 感叹号方式 311
15.4.2 method属性 313
15.4.3 通配符方式 315
15.5 Map类型变量 317
15.6 大神解惑 319
15.7 跟我学上机 320
第16章 技术更上一层楼——Struts 2
高级技术 321
16.1 Struts拦截器 322
16.1.1 拦截器概述