新書推薦:
《
《往事和近事(增订本)》(著名学者葛剑雄教授代表作,新增修订、全新推出。跨越三十多年的写作,多角度讲述中华文明)
》
售價:NT$
349.0
《
往事和近事:历史地理学泰斗、百家讲坛主讲葛剑雄经典文集
》
售價:NT$
349.0
《
父母的关键认知
》
售價:NT$
225.0
《
第三帝国:一部新的历史(纳粹主义具有何种魔力?纳粹运动会卷土重来吗?一部全面揭示希特勒及其罪恶帝国黑暗的历史)
》
售價:NT$
490.0
《
强迫症的历史:德国人的犹太恐惧症与大屠杀(德国历史上的反犹文化源自哪里?如何演化为战争对犹太人灭绝性的种族杀戮?德国历史研究专家克劳斯·费舍尔叙述德国反犹史及其极端形态的典范之作)
》
售價:NT$
440.0
《
粤港澳大湾区舆论引导与舆情应对精品案例:基于媒介化治理的思考
》
售價:NT$
445.0
《
大地的勇士
》
售價:NT$
340.0
《
中华老学·第十一辑
》
售價:NT$
380.0
|
編輯推薦: |
本书面向的读者群包括:
毫无Web经验的初学者。
有一定的Web经验,但没有从事过Web开发的读者。 具有其他脚本语言Web开发经验,想要快速转向Java Web开发的程序员。
正在从事Java Web开发的初、中级程序员。
|
內容簡介: |
本书在内容的编排上独具匠心,将知识的连贯性和学习规律有机地组织在一起。本书首先介绍了Servlet技术及其应用,并介绍了Tomcat服务器的体系结构和相关配置。本书遵照Servlet和JSP 规范,系统、完整地介绍了Java Web开发中的各种技术,从知识的讲解知识的运用实际问题的解决,一步一步地引导读者掌握Java Web开发的知识体系结构。
|
關於作者: |
孙鑫,国内著名的IT技术和教育专家,2009中国教育杰出人物。具有20多年的软件开发和教育培训经验,精通多种程序语言和技术架构,曾主讲过的课程包括CC++、VC++、COMDCOMCOM+、SQL Server、Oracle、Java、J2EE、StrutsStruts 2、Hibernate、iBatis、Spring、数据库建模等。从2006年开始,相继出版了畅销技术专著:《Java Web开发详解》、《VC++深入详解》、《Struts 2深入详解》、《ServletJSP深入详解》、《XML、XML Schema、XSLT 2.0和XQuery开发详解》、《HTML5、CSS和JavaScript开发》。
|
目錄:
|
目录
Servlet篇
第1章Servlet与Tomcat1
1.1 Web技术的发展1
1.2 Servlet与Servlet容器3
1.3 Servlet容器的分类4
1.4 Tomcat简介5
1.5 Tomcat的安装与配置6
1.5.1Tomcat的目录结构8
1.5.2运行Tomcat9
1.5.3Tomcat启动分析13
1.6 Tomcat的体系结构15
1.7 Tomcat的管理程序17
1.8 小结19
第2章Servlet技术20
2.1 Servlet API20
2.1.1Servlet接口21
2.1.2ServletRequest和ServletResponse22
2.1.3ServletConfig25
2.1.4一个简单的Servlet25
2.1.5GenericServlet33
2.1.6HttpServlet34
2.1.7HttpServletRequest和HttpServletResponse35
2.2 几个实例38
2.2.1实例一:WelcomeServlet38
2.2.2实例二:OutputInfoServlet44
2.2.3实例三:LoginServlet48
2.3 Servlet异常53
2.3.1ServletException类53
2.3.2UnavailableException类53
2.4 Servlet生命周期54
2.5 Servlet上下文56
2.5.1ServletContext接口56
2.5.2页面访问量统计实例58
2.6 请求转发62
2.6.1RequestDispatcher接口62
2.6.2得到RequestDispatcher对象63
2.6.3请求转发的实例63
2.6.4sendRedirect和forward方法的区别70
2.7 小结71
第3章Web应用程序的部署72
3.1 配置任意目录下的Web应用程序72
3.2 WAR文件75
3.3 与Servlet配置相关的元素78
3.3.1元素及其子元素78
3.3.2元素及其子元素80
3.4 一个实例82
3.5 小结86
第4章数据库访问87
4.1 JDBC驱动程序的类型88
4.1.1JDBC-ODBC桥88
4.1.2部分本地API、部分Java驱动程序89
4.1.3JDBC网络纯Java驱动程序89
4.1.4本地协议的纯Java驱动程序89
4.2 安装数据库90
4.3 下载MySQL JDBC驱动94
4.4 JDBC API95
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.1SSL会话147
5.1.2Cookies148
5.1.3URL重写149
5.2 Java Servlet API的会话跟踪149
5.2.1HttpSession接口150
5.2.2Session的生命周期151
5.2.3Cookie的应用165
5.2.4Session和Cookie的深入研究173
5.3 Session的持久化175
5.4 小结176
第6章Servlet的异常处理机制177
6.1 声明式异常处理178
6.1.1HTTP错误代码的处理178
6.1.2Java异常的处理182
6.2 程序式异常处理185
6.2.1在try-catch语句中处理异常185
6.2.2使用RequestDispatcher来处理异常188
6.3 小结191
第7章开发线程安全的Servlet192
7.1 多线程的Servlet模型192
7.2 线程安全的Servlet193
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.1pageContext229
8.4.2out230
8.4.3page231
8.4.4exception231
8.5 对象和范围232
8.6 留言板程序235
8.7 留言板管理程序244
8.8 JSP文档250
8.8.1JSP文档的标识251
8.8.2JSP文档中的元素语法251
8.9 小结255
第9章JSP与JavaBean256
9.1 JavaBean简介256
9.1.1属性的命名257
9.1.2属性的类型259
9.2 在JSP中使用JavaBean259
9.2.1260
9.2.2261
9.2.3262
9.2.4示例262
9.3 网上书店程序267
9.4 小结291
第10章JSP开发的两种模型292
10.1 模型1292
10.2 模型2296
10.3 MVC模式的实现总结303
10.4 小结303
第11章标签库(Tag Library)304
11.1 标签库API304
11.1.1标签的形式304
11.1.2Tag接口306
11.1.3IterationTag接口307
11.1.4BodyTag接口309
11.2 标签库描述符310
11.2.1元素311
11.2.2元素312
11.2.3元素313
11.2.4元素313
11.2.5元素316
11.2.6元素316
11.3 传统标签的开发318
11.3.1实例一:标签318
11.3.2实例二:标签321
11.3.3实例三:标签323
11.3.4实例四:标签326
11.3.5实例五:标签331
11.4 简单标签的开发337
11.4.1SimpleTag接口337
11.4.2实例一:标签339
11.4.3实例二:标签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.5Empty操作符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 配置JSTL353
13.3 Core标签库354
13.3.1一般用途的标签354
13.3.2条件标签358
13.3.3迭代标签361
13.3.4URL相关的标签364
13.4 I18N标签库369
13.4.1国际化标签369
13.4.2格式化标签375
13.5 SQL标签库384
13.5.1384
13.5.2385
13.5.3389
13.5.4390
13.5.5390
13.5.6392
13.6 XML标签库393
13.6.1核心操作394
13.6.2流程控制397
13.6.3转换操作401
13.7 Functions标签库404
13.7.1fn:contains404
13.7.2fn:containsIgnoreCase405
13.7.3fn:startsWith405
13.7.4fn:endsWith406
13.7.5fn:indexOf407
13.7.6fn:replace407
13.7.7fn:substring408
13.7.8fn:substringBefore409
13.7.9fn:substringAfter410
13.7.10fn:split410
13.7.11fn:join411
13.7.12fn:toLowerCase412
13.7.13fn:toUpperCase413
13.7.14fn:trim413
13.7.15fn:escapeXml414
13.7.16fn:length414
13.8 小结415
第14章标签文件(Tag Files)416
14.1 标签文件的语法416
14.2 一个简单的标签文件416
14.3 标签文件的隐含对象420
14.4 标签文件的指令421
14.4.1tag指令421
14.4.2attribute指令423
14.4.3variable指令423
14.5 标签文件实例讲解425
14.5.1实例一:标签425
14.5.2实例二:标签426
14.6 动作元素428
14.7 动作元素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 API443
16.2.1Filter接口444
16.2.2FilterConfig接口444
16.2.3FilterChain接口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.1Locale488
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.1HTTP Basic Authentication501
18.2.2HTTP Digest Authentication502
18.2.3HTTPS Client Authentication502
18.2.4Form Based Authentication502
18.3 声明式安全503
18.3.1元素503
18.3.2多个安全约束的联合506
18.3.3元素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 在客户端避免表单的重复提交523
19.2 在服务器端避免表单的重复提交526
19.3 小结534
第20章使用Eclipse开发Web应用535
20.1 Eclipse介绍535
20.1.1下载并安装Eclipse535
20.1.2Eclipse开发环境介绍536
20.1.3配置Eclipse540
20.2 文件的上传544
20.2.1基于表单的文件上传544
20.2.2文件上传格式分析545
20.2.3commons-fileupload组件546
20.2.4文件上传实例548
20.3 文件的下载561
20.4 给图片添加水印和文字570
20.5 小结574
第21章Servlet 3.0新特性详解576
21.1 新增的注解577
21.1.1@WebServlet注解577
21.1.2@WebFilter注解579
21.1.3@WebInitParam注解580
21.1.4@WebListener注解581
21.1.5@MultipartConfig注解582
21.2异步处理582
21.2.1实例:计算斐波那契数列585
21.2.2AsyncListener588
21.3 动态添加和配置Web组件590
21.3.1实例一:实现ServletContextListener接口来添加Servlet592
21.3.2实例二:实现ServletContainerInitializer接口来添加组件593
21.4 Web片段和可插性支持596
21.4.1Web模块开发597
21.4.2解决Web模块加载顺序的问题599
21.5 HttpServletRequest 对文件上传的支持601
21.6 总结605
附录A快速掌握HTML606
A.1 WWW简介606
A.2 快速掌握HTML608
A.2.1HTML(Hypertext Markup Language)608
A.2.2HTML元素的四种形式608
A.2.3第一个页面608
A.2.4第二个页面609
A.2.5与段落控制相关的标签610
A.2.6控制文本的显示611
A.2.7如何输入特殊的字符613
A.2.8注释615
A.2.9列表615
A.2.10表格619
A.2.11HTML交互式表单622
A.2.12其他常用标签629
A.2.13框架633
A.3 小结634
附录B解析HTTP635
B.1 概述635
B.2 HTTP URL636
B.3 HTTP请求637
B.3.1请求行637
B.3.2消息报头638
B.3.3请求正文638
B.4 HTTP响应639
B.4.1状态行639
B.4.2消息报头641
B.4.3响应正文641
B.5 HTTP消息642
B.6 实验647
B.7 小结649
附录Cserver.xml文件650
C.1 顶层元素651
C.1.1Server元素651
C.1.2Service元素651
C.2 连接器652
C.2.1HTTP连接器652
C.2.2AJP连接器654
C.3 容器654
C.3.1Engine元素654
C.3.2Host元素655
C.3.3Context元素656
C.4 小结657
附录Dweb.xml文件658
D.1 元素659
D.2 元素659
D.3 元素660
D.4 元素660
D.5 元素660
D.6 元素660
D.7 元素661
D.8 元素662
D.9 元素662
D.10元素664
D.11元素664
D.12元素664
D.13元素665
D.14元素665
D.15元素665
D.16元素667
D.17元素668
D.18元素669
D.19元素669
D.20元素670
D.21元素670
D.22元素671
D.23元素671
D.24元素671
D.25小结672
|
內容試閱:
|
随着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%\conf\Catalina\localhost目录下(%CATALINA_ HOME%表示Tomcat的安装目录),建立chXX.xml(XX表示每章的序号,例如第5章是ch05.xml,第13章是ch13.xml)文件。例如,要配置第5章的例子程序,可以在%CATALINA_HOME%\conf\Catalina\localhost目录下创建ch05.xml文件,编辑这个文件,输入下面的内容:
将F:\JSPLesson\ch05替换为读者机器上对应章节的Web应用程序所在的目录。
此外,在每章例子程序的开发步骤中也给出了详细的配置过程,读者按照步骤操作,会发现配置非常容易。
当采用数据源的方式来访问数据库时,你需要将MySQL的JDBC驱动复制到Tomcat安装目录的lib子目录中。
学习建议
作者针对三种不同类型的读者,提出下面的学习建议。
(1)对HTML和HTTP协议不是很了解的读者,建议从附录A、附录B开始学习,然后再从第1章开始学习。在学习第1篇的Servlet时,要结合附录B,随时参照,以加深对HTTP Servlet的理解。
(2)对HTML和HTTP协议比较清楚的读者,可以直接从第1章开始学习,按照章节的顺序一步一步进行下去。
(3)有Java Web开发经验的读者,可以有选择性地学习本书的内容,并在开发过程中,以本书作为参考用书。
最后,衷心地祝愿读者能够从此书获益,从而实现自己的开发梦想。由于本书的内容较多、牵涉的技术较广,错误和疏漏之处在所难免,欢迎广大技术专家和读者指正。作者的联系方式是csunxin@sina.com。
|
|