描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121361500丛书名: 孙鑫精品图书系列
毫无Web经验的初学者。
有一定的Web经验,但没有从事过Web开发的读者。
具有其他脚本语言Web开发经验,想要快速转向Java Web开发的程序员。
正在从事Java Web开发的初、中级程序员。
Servlet篇
第1章 Servlet与Tomcat 1
1.1 Web技术的发展 1
1.2 Servlet与Servlet容器 3
1.3 Servlet容器的分类 4
1.4 Tomcat简介 5
1.5 Tomcat的安装与配置 6
1.5.1 Tomcat的目录结构 8
1.5.2 运行Tomcat 9
1.5.3 Tomcat启动分析 13
1.6 Tomcat的体系结构 15
1.7 Tomcat的管理程序 17
1.8 小结 19
第2章 Servlet技术 20
2.1 Servlet API 20
2.1.1 Servlet接口 21
2.1.2 ServletRequest和ServletResponse 22
2.1.3 ServletConfig 25
2.1.4 一个简单的Servlet 25
2.1.5 GenericServlet 33
2.1.6 HttpServlet 34
2.1.7 HttpServletRequest和HttpServletResponse 35
2.2 几个实例 38
2.2.1 实例一:WelcomeServlet 38
2.2.2 实例二:OutputInfoServlet 44
2.2.3 实例三:LoginServlet 48
2.3 Servlet异常 53
2.3.1 ServletException类 53
2.3.2 UnavailableException类 53
2.4 Servlet生命周期 54
2.5 Servlet上下文 56
2.5.1 ServletContext接口 56
2.5.2 页面访问量统计实例 58
2.6 请求转发 62
2.6.1 RequestDispatcher接口 62
2.6.2 得到RequestDispatcher对象 63
2.6.3 请求转发的实例 63
2.6.4 sendRedirect()和forward()方法的区别 70
2.7 小结 71
第3章 Web应用程序的部署 72
3.1 配置任意目录下的Web应用程序 72
3.2 WAR文件 75
3.3 与Servlet配置相关的元素 78
3.3.1 <servlet>元素及其子元素 78
3.3.2 <servlet-mapping>元素及其子元素 80
3.4 一个实例 82
3.5 小结 86
第4章 数据库访问 87
4.1 JDBC驱动程序的类型 88
4.1.1 JDBC-ODBC桥 88
4.1.2 部分本地API、部分Java驱动程序 89
4.1.3 JDBC网络纯Java驱动程序 89
4.1.4 本地协议的纯Java驱动程序 89
4.2 安装数据库 90
4.3 下载MySQL JDBC驱动 94
4.4 JDBC API 95
4.4.1 加载并注册数据库驱动 96
4.4.2 建立到数据库的连接 99
4.4.3 访问数据库 100
4.4.4 事务处理 129
4.4.5 可滚动和可更新的结果集 138
4.5 JDBC数据源和连接池 140
4.6 小结 145
第5章 会话跟踪 146
5.1 用于会话跟踪的技术 147
5.1.1 SSL会话 147
5.1.2 Cookies 148
5.1.3 URL重写 149
5.2 Java Servlet API的会话跟踪 149
5.2.1 HttpSession接口 150
5.2.2 Session的生命周期 151
5.2.3 Cookie的应用 165
5.2.4 Session和Cookie的深入研究 173
5.3 Session的持久化 175
5.4 小结 176
第6章 Servlet的异常处理机制 177
6.1 声明式异常处理 178
6.1.1 HTTP错误代码的处理 178
6.1.2 Java异常的处理 182
6.2 程序式异常处理 185
6.2.1 在try-catch语句中处理异常 185
6.2.2 使用RequestDispatcher来处理异常 188
6.3 小结 191
第7章 开发线程安全的Servlet 192
7.1 多线程的Servlet模型 192
7.2 线程安全的Servlet 193
7.2.1 变量的线程安全 193
7.2.2 属性的线程安全 202
7.3 SingleThreadModel接口 206
7.4 小结 206
JSP篇
第8章 JSP技术 207
8.1 JSP简介 207
8.2 JSP的运行机制 208
8.3 JSP的语法 213
8.3.1 指令元素(directive element) 213
8.3.2 脚本元素(scripting element) 218
8.3.3 动作元素(action element) 220
8.3.4 注释 228
8.4 JSP的隐含对象 229
8.4.1 pageContext 229
8.4.2 out 230
8.4.3 page 231
8.4.4 exception 231
8.5 对象和范围 232
8.6 留言板程序 235
8.7 留言板管理程序 244
8.8 JSP文档 250
8.8.1 JSP文档的标识 251
8.8.2 JSP文档中的元素语法 251
8.9 小结 255
第9章 JSP与JavaBean 256
9.1 JavaBean简介 256
9.1.1 属性的命名 257
9.1.2 属性的类型 259
9.2 在JSP中使用JavaBean 259
9.2.1 <jsp:useBean> 260
9.2.2 <jsp:setProperty> 261
9.2.3 <jsp:getProperty> 262
9.2.4 示例 262
9.3 网上书店程序 267
9.4 小结 291
第10章 JSP开发的两种模型 292
10.1 模型1 292
10.2 模型2 296
10.3 MVC模式的实现总结 303
10.4 小结 303
第11章 标签库(Tag Library) 304
11.1 标签库API 304
11.1.1 标签的形式 304
11.1.2 Tag接口 306
11.1.3 IterationTag接口 307
11.1.4 BodyTag接口 309
11.2 标签库描述符 310
11.2.1 <taglib>元素 311
11.2.2 <validator>元素 312
11.2.3 <listener>元素 313
11.2.4 <tag>元素 313
11.2.5 <tag-file>元素 316
11.2.6 <function>元素 316
11.3 传统标签的开发 318
11.3.1 实例一:<hello>标签 318
11.3.2 实例二:<max>标签 321
11.3.3 实例三:<greet>标签 323
11.3.4 实例四:<switch>标签 326
11.3.5 实例五:<iterate>标签 331
11.4 简单标签的开发 337
11.4.1 SimpleTag接口 337
11.4.2 实例一:<welcome>标签 339
11.4.3 实例二:<max_ex>标签 341
11.5 自定义标签开发总结 343
11.6 小结 343
第12章 表达式语言(EL) 344
12.1 语法 344
12.1.1 “[ ]”和“.”操作符 344
12.1.2 算术操作符 345
12.1.3 关系操作符 346
12.1.4 逻辑操作符 346
12.1.5 Empty操作符 346
12.1.6 条件操作符 346
12.1.7 圆括号 346
12.1.8 操作符的优先级 346
12.2 隐含对象 347
12.3 命名变量 348
12.4 保留的关键字 349
12.5 函数 349
12.6 小结 351
第13章 JSP标准标签库(JSTL) 352
13.1 JSTL简介 352
13.2 配置JSTL 353
13.3 Core标签库 354
13.3.1 一般用途的标签 354
13.3.2 条件标签 358
13.3.3 迭代标签 361
13.3.4 URL相关的标签 364
13.4 I18N标签库 369
13.4.1 国际化标签 369
13.4.2 格式化标签 375
13.5 SQL标签库 384
13.5.1 <sql:setDataSource> 384
13.5.2 <sql:query> 385
13.5.3 <sql:param> 389
13.5.4 <sql:dateParam> 390
13.5.5 <sql:update> 390
13.5.6 <sql:transaction> 392
13.6 XML标签库 393
13.6.1 核心操作 394
13.6.2 流程控制 397
13.6.3 转换操作 401
13.7 Functions标签库 404
13.7.1 fn:contains 404
13.7.2 fn:containsIgnoreCase 405
13.7.3 fn:startsWith 405
13.7.4 fn:endsWith 406
13.7.5 fn:indexOf 407
13.7.6 fn:replace 407
13.7.7 fn:substring 408
13.7.8 fn:substringBefore 409
13.7.9 fn:substringAfter 410
13.7.10 fn:split 410
13.7.11 fn:join 411
13.7.12 fn:toLowerCase 412
13.7.13 fn:toUpperCase 413
13.7.14 fn:trim 413
13.7.15 fn:escapeXml 414
13.7.16 fn:length 414
13.8 小结 415
第14章 标签文件(Tag Files) 416
14.1 标签文件的语法 416
14.2 一个简单的标签文件 416
14.3 标签文件的隐含对象 420
14.4 标签文件的指令 421
14.4.1 tag指令 421
14.4.2 attribute指令 423
14.4.3 variable指令 423
14.5 标签文件实例讲解 425
14.5.1 实例一:<welcome>标签 425
14.5.2 实例二:<toHtml>标签 426
14.6 <jsp:invoke>动作元素 428
14.7 <jsp:doBody>动作元素 428
14.8 小结 429
应用篇
第15章 Servlet监听器 430
15.1 监听器接口 430
15.2 ServletContextListener接口 431
15.3 HttpSessionBindingListener接口 433
15.4 在线人数统计程序 434
15.5 小结 441
第16章 Filter在Web开发中的应用 442
16.1 过滤器概述 442
16.2 Filter API 443
16.2.1 Filter接口 444
16.2.2 FilterConfig接口 444
16.2.3 FilterChain接口 445
16.3 过滤器的部署 445
16.4 过滤器的开发 448
16.5 对用户进行统一验证的过滤器 450
16.6 对请求和响应数据进行替换的过滤器 456
16.7 对响应内容进行压缩的过滤器 467
16.8 小结 474
第17章 中文乱码问题与国际化 475
17.1 中文乱码问题产生的由来 475
17.1.1 常用字符集 475
17.1.2 对乱码产生过程的分析 478
17.2 中文乱码问题的解决方案 480
17.3 使用过滤器解决中文问题 482
17.4 让Tomcat支持中文文件名 487
17.5 国际化与本地化 488
17.5.1 Locale 488
17.5.2 资源包 490
17.5.3 消息格式化 492
17.5.4 编写国际化的Web应用程序 493
17.6 小结 498
第18章 开发安全的Web应用程序 499
18.1 概述 499
18.2 理解验证机制 501
18.2.1 HTTP Basic Authentication 501
18.2.2 HTTP Digest Authentication 502
18.2.3 HTTPS Client Authentication 502
18.2.4 Form Based Authentication 502
18.3 声明式安全 503
18.3.1 <security-constraint>元素 503
18.3.2 多个安全约束的联合 506
18.3.3 <login-config>元素 507
18.3.4 基本验证的实现 508
18.3.5 基于表单验证的实现 510
18.3.6 使用数据库保存用户名和密码 513
18.4 程序式安全 517
18.5 SQL注入攻击的防范 520
18.6 小结 522
第19章 避免表单的重复提交 523
19.1 在客户端避免表单的重复提1
随着Java语言的流行,Java在网站和企业级应用的开发上应用得越来越普遍,Java Web开发已经成为Java企业级解决方案中不可或缺的组成部分。
本书遵照Servlet和JSP 规范,系统、完整地介绍了Java Web开发中的各种技术,从知识的讲解→知识的运用→实际问题的解决,一步一步地引导读者掌握Java Web开发的知识体系结构。
本书面向的读者
本书面向的读者群包括:
? 毫无Web经验的初学者。
? 有一定的Web经验,但没有从事过Web开发的读者。
? 具有其他脚本语言Web开发经验,想要快速转向Java Web开发的程序员。
? 正在从事Java Web开发的初、中级程序员。
本书的内容组织
全书共分3篇,包括Servlet篇、JSP篇和应用篇。前两篇相对独立,但在内容上又有递进的关系。最后一个部分综合应用前两个部分的知识,讲解了一些高级应用,并结合实际开发中要解决的问题,给出了很多具有实用价值的实例程序。
附录作为本书不可或缺的部分,对HTML和HTTP协议进行了介绍,缺少Web经验的读者可以从这部分内容中学到Web开发的必备知识。此外,附录还提供了server.xml和web.xml文件的介绍,可以作为读者从事Java Web开发的参考。
本书在内容的编排上独具匠心,将知识的连贯性和学习规律有机地组织在一起。本书首先介绍了Servlet技术及其应用,并介绍了Tomcat服务器的体系结构和相关配置。在第一篇中,包括了下面的主题:
? Servlet与Tomcat
? Servlet技术
? Web应用程序的部署
? 数据库访问
? 会话跟踪
? Servlet的异常处理机制
? 开发线程安全的Servlet
读者如果掌握了这部分的内容,就可以开始Web应用程序的开发了。
本书第二篇是JSP篇,包括了与JSP相关的各种技术。主要内容有JSP技术、JSP与JavaBean、JSP开发的两种架构模型、自定义标签库、表达式语言、JSTL、标签文件。JSP是建立在Servlet规范提供的功能之上的动态网页技术,读者看完第1篇介绍的Servlet,自然也就能理解JSP了。第二篇的内容细致全面,不但可以作为学习资料使用,而且可以作为以后工作中的参考手册。
本书第三篇是应用篇,结合前2篇介绍的知识,讲解了一些高级应用,给出了很多具有实用价值的实例程序。主要内容有:
? Servlet监听器
? 过滤器在Web开发中的应用
? 中文乱码问题与国际化
? Web应用程序安全
? 避免表单重复提交等实例
? 使用Eclipse开发Web应用程序
? Servlet 3.0新特性详解
这部分内容从应用开发的角度帮助读者提升Java Web开发技能。
本书的实例程序
笔者在编写本书时,使用的操作系统是Windows 8.1专业版,JDK版本是1.8.0_192,Web容器是Tomcat 9.0.14,开发工具是Eclipse IDE for Enterprise Java Developers(版本2018-12),数据库是MySQL 8.0.13。本书所有的实例程序都在上述环境中运行正常。
本书绝大部分的例子程序,都没有放在Tomcat安装目录的webapps目录下,而是单独放在自定义的一个目录中。读者要运行这些程序,有两种方式:一种方式是直接将网站上下载的例子程序目录复制到Tomcat的webapps目录下运行;另一种方式是配置Web应用程序的运行目录,在%CATALINA_HOME%confCatalinalocalhost目录下(%CATALINA_ HOME%表示Tomcat的安装目录),建立chXX.xml(XX表示每章的序号,例如第5章是ch05.xml,第13章是ch13.xml)文件。例如,要配置第5章的例子程序,可以在%CATALINA_HOME%confCatalinalocalhost目录下创建ch05.xml文件,编辑这个文件,输入下面的内容:
<Context docBase=”F:JSPLessonch05″ reloadable=”true”/>
将“F:JSPLessonch05”替换为读者机器上对应章节的Web应用程序所在的目录。
此外,在每章例子程序的开发步骤中也给出了详细的配置过程,读者按照步骤操作,会发现配置非常容易。
当采用数据源的方式来访问数据库时,你需要将MySQL的JDBC驱动复制到Tomcat安装目录的lib子目录中。
学习建议
作者针对三种不同类型的读者,提出下面的学习建议。
(1)对HTML和HTTP协议不是很了解的读者,建议从附录A、附录B开始学习,然后再从第1章开始学习。在学习第1篇的Servlet时,要结合附录B,随时参照,以加深对HTTP Servlet的理解。
(2)对HTML和HTTP协议比较清楚的读者,可以直接从第1章开始学习,按照章节的顺序一步一步进行下去。
(3)有Java Web开发经验的读者,可以有选择性地学习本书的内容,并在开发过程中,以本书作为参考用书。
最后,衷心地祝愿读者能够从此书获益,从而实现自己的开发梦想。由于本书的内容较多、牵涉的技术较广,错误和疏漏之处在所难免,欢迎广大技术专家和读者指正。作者的联系方式是[email protected]。
评论
还没有评论。