《Java Web开发详解 XML+DTD+XML Schema+XSLT+Servlet 3.0+JSP 2.2深入剖析与实例应用》PDF下载

  • 购买积分:23 如何计算积分?
  • 作  者:孙鑫编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121167683
  • 页数:889 页
图书介绍:本书共分4篇,从XML、XML Schema、XSLT、Servlet、JSP和应用的角度向读者展示了Java Web开发中各种技术的应用,循序渐进地引导读者快速掌握Java Web开发。本书内容全面,涵盖了从事Java Web开发所应掌握的所有知识,同时还讲解了最新的Servlet 3.0和JSP 2.2规范新增的特性。在知识的讲解上,本书采用理论与实践相结合的方式,从程序运行的内部机制进行分析讲解,并通过大量的实例和实验来验证并运用本书的知识。

第Ⅰ篇XML篇 2

第1章XML 2

1.1 XML的起源 2

1.2 W3C介绍 2

1.3关于XML的两个问题 3

1.4 XML与HTML的比较 5

1.4.1 XML将数据与显示分开 5

1.4.2 XML对文档的格式要求更加严格 6

1.4.3 XML有且只能有一个根元素 6

1.5.XML的编辑工具 7

1.6 XML文档 10

1.6.1 XML文档的结构 10

1.6.2在XMLSpy中创建XML文档 12

1.6.3 XML声明 12

1.6.4文档类型声明 13

1.6.5元素 14

1.6.6注释 17

1.6.7处理指令 18

1.6.8空白处理 19

1.6.9行尾处理 19

1.6.10语言标识 19

1.7格式良好的XML 20

1.8小结 21

第2章DTD 22

2.1在XML文档中引入DTD 22

2.2 DTD的结构 24

2.2.1元素类型声明 25

2.2.2实体声明 28

2.2.3属性表声明 31

2.2.4记号声明 38

2.3在XMLSpy中创建DTD文档 38

2.4有效的XML 39

2.5 XML处理器/解析器 39

2.6小结 40

第3章XML名称空间 41

3.1声明名称空间 41

3.2名称空间在元素和属性中的运用 42

3.2.1名称空间在元素中的运用 42

3.2.2默认名称空间 44

3.2.3名称空间在属性中的运用 45

3.3名称空间和DTD 46

3.4小结 47

第4章XML Schema 49

4.1 XML Schema推荐标准 49

4.2 XML Schema文档一瞥 50

4.3 XML Schema与DTD的比较 50

4.4术语明晰 52

4.5 XML Schema概述 53

4.5.1元素和属性的声明 53

4.5.2元素和属性的类型 53

4.5.3简单类型 54

4.5.4复杂类型 55

4.5.5全局声明和局部声明 56

4.5.6模式与名称空间 57

4.5.7在实例中引用模式文档 62

4.5.8注解 63

4.6在XMLSpy中创建模式文档 64

4.7模式文档的验证 65

4.8小结 66

第5章 使用DOM、 SAX和JAXP解析XML文档 67

5.1 DOM、 SAX和JAXP概述 67

5.2使用DOM解析XML文档 68

5.2.1 DOM结构模型 69

5.2.2 DOM树中的节点类型 71

5.2.3 DOM解析器工厂和 DOM解析器 75

5.2.4 JAXP的错误类和异常类 77

5.2.5使用DOM解析XML文档的实例 78

5.3使用SAX解析XML文档 89

5.3.1 SAX的处理机制 90

5.3.2配置SAX解析器 93

5.3.3 SAX解析器工厂 94

5.3.4 SAX的异常类 95

5.3.5 ErrorHandler接口 97

5.3.6使用SAX解析XML文档的实例 98

5.4使用XML Schema来验证XML文档 107

5.4.1模式工厂和验证 107

5.4.2与解析API的集成 112

5.4.3获取类型信息 112

5.5小结 115

第6章 使用JDOM解析XML文档 116

6.1下载并配置JDOM 116

6.2 JDOM API介绍 116

6.3使用JDOM访问XML文档的实例 120

6.4小结 122

第7章 使用dom4j解析XML文档 123

7.1下载并配置dom4j 123

7.2 dom4j API介绍 123

7.3使用dom4j访问XML文档的实例 127

7.3.1使用XML Schema 来验证XML文档 127

7.3.2使用访问者模式遍历XML文档 128

7.3.3使用dom4j的事件模型来访问XML文档 130

7.4小结 133

第8章 解析名称空间 134

8.1 DOM和名称空间 134

8.2 SAX和名称空间 137

8.3 JDOM和名称空间 140

8.4 dom4j和名称空间 143

8.5小结 145

第9章XSLT1.0 146

9.1 XSLT概述 146

9.2 Xalan处理器 150

9.3模板规则 151

9.4 〈xsl:apply-templates〉元素 152

9.5 〈xsl:alue-of〉元素 152

9.6 〈xsl:for-each〉元素 155

9.7匹配节点的模式 156

9.8 mode属性 157

9.9内置的模板规则 158

9.10对空白的处理 160

9.11 XPath语言 160

9.11.1 XPath上下文 160

9.11.2位置路径 161

9.11.3表达式 165

9.11.4核心函数库 167

9.12创建结果树 170

9.12.1创建元素和属性 170

9.12.2创建文本 175

9.12.3创建处理指令 176

9.12.4创建注释 176

9.12.5复制节点 177

9.12.6输出格式化的数字 178

9.13条件处理 187

9.13.1 〈xsl:if〉 187

9.13.2 〈xsl:choose〉 188

9.14排序 189

9.15 变量和参数 192

9.15.1变量 192

9.15.2参数 195

9.16命名模板 195

9.17合并样式表 197

9.17.1导入样式表 197

9.17.2包含样式表 198

9.18模板规则冲突的解决 198

9.19 〈xsl:output〉元素 200

9.19.1指定输出文档的格式 200

9.19.2输出XML声明 201

9.19.3输出文档类型定义 201

9.19.4输出CDATA段 202

9.19.5指定文档缩进 203

9.19.6指定媒体类型 204

9.20 XSLT中的函数 204

9.21数字格式化 204

9.22查询和分组 206

9.23处理多个输入文档 214

9.24 JAXP中的XSLT API 217

9.24.1转换器工厂 217

9.24.2 Transformer和Templates 217

9.24.3一个实例 219

9.25在XMLSpy中创建样式表文档 221

9.26小结 222

第10章XSLT2.0 223

10.1 Saxon处理器 224

10.2 XPath 2.0 224

10.2.1一切都是序列 224

10.2.2 for表达式 225

10.2.3条件表达式 226

10.2.4限定性表达式 228

10.2.5类型 229

10.2.6日期和时间 230

10.2.7函数 231

10.3 XSLT 2.0的新特性 234

10.3.1分组 234

10.3.2隐含文档节点(临时树) 239

10.3.3使用〈xsl:result-document〉元素输出多个文件 240

10.3.4 〈xsl:value-of〉元素的改进 242

10.3.5字符映射 243

10.3.6自定义样式表函数 244

10.4小结 245

第Ⅱ篇Servlet篇 247

第11章Servlet与Tomcat 247

11.1 Web技术的发展 247

11.2 Servlet与Servlet容器 248

11.3 Servlet容器的分类 249

11.4 Tomcat简介 250

11.5 Tomcat的安装与配置 250

11.5.1 Tomcat的目录结构 252

11.5.2运行Tomcat 253

11.5.3 Tomcat启动分析 256

11.6 Tomcat的体系结构 258

11.7 Tomcat的管理程序 260

11.8小结 262

第12章Servlet技术 263

12.1 Servlet API 263

12.1.1 Servlet接口 264

12.1.2 ServletRequest和ServletResponse 265

12.1.3 ServletConfig 267

12.1.4一个简单的Servlet 268

12.1.5 GenericServlet 275

12.1.6 HttpServlet 275

12.1.7 HttpServletRequest和 HttpServletResponse 277

12.2几个实例 279

12.2.1实例一:WelcomeServlet 279

12.2.2实例二:OutputInfoServlet 285

12.2.3实例三:LoginServlet 289

12.3 Servlet异常 292

12.3.1 ServletException类 292

12.3.2 UnavailableException类 293

12.4 Servlet生命周期 293

12.5 Servlet上下文 294

12.5.1 ServletContext接口 295

12.5.2页面访问量统计实例 297

12.6请求转发 299

12.6.1 RequestDispatcher接口 300

12.6.2得到RequestDispatcher对象 300

12.6.3请求转发的实例 301

12.6.4 sendRedirect()和forward()方法的区别 305

12.7小结 306

第13章Web应用程序的部署 307

13.1配置任意目录下的Web应用程序 307

13.2 WAR文件 310

13.3与Servlet配置相关的元素 311

13.3.1 〈servlet〉元素及其子元素 311

13.3.2 〈servlet-mapping〉元素及其子元素 313

13.4一个实例 315

13.5小结 319

第14章 数据库访问 320

14.1 JDBC驱动程序的类型 320

14.1.1 JDBC-ODBC桥 321

14.1.2部分本地API部分Java驱动程序 321

14.1.3 JDBC网络纯Java驱动程序 321

14.1.4本地协议的纯Java驱动程序 322

14.2安装数据库 322

14.3下载MySQL JDBC驱动 325

14.4 JDBC API 326

14.4.1加载并注册数据库驱动 326

14.4.2建立到数据库的连接 329

14.4.3访问数据库 330

14.4.4事务处理 354

14.4.5可滚动和可更新的结果集 361

14.5 JDBC数据源和连接池 364

14.6 MySQL对中文的处理 369

14.7小结 370

第15章 会话跟踪 371

15.1用于会话跟踪的技术 371

15.1.1 SSL会话 372

15.1.2 Cookies 372

15.1.3 URL重写 373

15.2 Java Servlet API的会话跟踪 373

15.2.1 HttpSession接口 374

15.2.2 Session的生命周期 375

15.2.3 Cookie的应用 387

15.2.4 Session和Cookie的深入研究 396

15.3 Session的持久化 399

15.3.1标准的Session管理器实现 399

15.3.2持久的Session管理器实现 400

15.4小结 403

第16章Servlet的异常处理机制 405

16.1声明式异常处理 405

16.1.1 HTTP错误代码的处理 406

16.1.2 Java异常的处理 409

16.2程序式异常处理 412

16.2.1在try-catch语句中处理异常 412

16.2.2使用RequestDispatcher来处理异常 415

16.3小结 417

第17章 开发线程安全的Servlet 418

17.1多线程的Servlet模型 418

17.2线程安全的Servlet 418

17.2.1变量的线程安全 419

17.2.2属性的线程安全 427

17.3 SingleThreadModel接口 429

17.4小结 430

第Ⅲ篇JSP篇 432

第18章JSP技术 432

18.1 JSP简介 432

18.2 JSP的运行机制 432

18.3 JSP的语法 437

18.3.1指令元素 (directive element) 437

18.3.2脚本元素 (scripting element) 441

18.3.3动作元素(action element) 443

18.3.4注释 450

18.4 JSP的隐含对象 451

18.4.1 pageContext 451

18.4.2 out 452

18.4.3 page 453

18.4.4 exception 453

18.5对象和范围 454

18.6留言板程序 456

18.7留言板管理程序 464

18.8 JSP文档 469

18.8.1 JSP文档的标识 470

18.8.2 JSP文档中的元素语法 470

18.9小结 474

第19章JSP与JavaBean 475

19.1 JavaBean简介 475

19.1.1属性的命名 476

19.1.2属性的类型 477

19.2在JSP中使用JavaBean 478

19.2.1 〈jsp:useBean〉 478

19.2.2 〈jsp:setProperty〉 479

19.2.3 〈jsp:getProperty〉 480

19.2.4示例 480

19.3网上书店程序 484

19.4小结 505

第20章JSP开发的两种模型 506

20.1模型1 506

20.2模型2 510

20.3 MVC模式的实现总结 515

20.4小结 515

第21章 标签库(Tag Library) 516

21.1标签库API 516

21.1.1标签的形式 516

21.1.2 Tag接口 517

21.1.3 IterationTag接口 519

21.1.4 BodyTag接口 520

21.2标签库描述符 521

21.2.1 〈taglib〉元素 522

21.2.2 〈validator〉元素 523

21.2.3 〈listener〉元素 523

21.2.4 〈tag〉元素 524

21.2.5 〈tag-file〉元素 526

21.2.6 〈function〉元素 527

21.3传统标签的开发 528

21.3.1实例一:〈hello〉标签 528

21.3.2实例二:〈max〉标签 531

21.3.3实例三:〈greet〉标签 533

21.3.4实例四:〈switch〉标签 535

21.3.5实例五:〈iterate〉标签 539

21.4简单标签的开发 545

21.4.1 SimpleTag接口 545

21.4.2实例一:〈welcome〉标签 546

21.4.3实例二:〈max ex〉标签 548

21.5自定义标签开发总结 550

21.6小结 550

第22章 表达式语言(EL) 551

22.1语法 551

22.1.1.“[]”和“.”操作符 551

22.1.2算术操作符 552

22.1.3关系操作符 552

22.1.4逻辑操作符 553

22.1.5 Empty操作符 553

22.1.6条件操作符 553

22.1.7圆括号 553

22.1.8操作符的优先级 553

22.2隐含对象 553

22.3命名变量 555

22.4保留的关键字 555

22.5函数 555

22.6小结 556

第23章JSP标准标签库(JSTL) 557

23.1 JSTL简介 557

23.2配置JSTL 558

23.3 Core标签库 558

23.3.1一般用途的标签 559

23.3.2条件标签 563

23.3.3迭代标签 565

23.3.4 URL相关的标签 568

23.4 118N标签库 572

23.4.1国际化标签 572

23.4.2格式化标签 577

23.5 SQL标签库 585

23.5.1 〈sql:setDataSource〉 585

23.5.2 〈sql:query〉 586

23.5.3 〈sql:param〉 589

23.5.4 〈sql:dateParam〉 590

23.5.5 〈sql:update〉 591

23.5.6 〈sql:transaction〉 592

23.6 XML标签库 593

23.6.1核心操作 594

23.6.2流程控制 597

23.6.3转换操作 600

23.7 Functions标签库 602

23.7.1 fn:contains 602

23.7.2 fn:containsIgnoreCase 603

23.7.3 fn:startsWith 604

23.7.4 fn:endsWith 604

23.7.5 fn:indexOf 605

23.7.6 fn:replace 606

23.7.7 fn:substring 606

23.7.8 fn:substringBefore 607

23.7.9 fn:substringAfter 608

23.7.10 fn:split 608

23.7.11 fn:join 609

23.7.12 fn:toLowerCase 610

23.7.13 fn:toUpperCase 610

23.7.14 fn:trim 611

23.7.15 fn:escapeXml 611

23.7.16 fn:length 612

23.8小结 612

第24章 标签文件(Tag Files) 614

24.1标签文件的语法 614

24.2一个简单的标签文件 614

24.3标签文件的隐含对象 617

24.4标签文件的指令 618

24.4.1 tag指令 618

24.4.2 attribute指令 619

24.4.3 variable指令 620

24.5标签文件实例讲解 621

24.5.1实例一:〈welcome〉标签 621

24.5.2实例二:〈toHtml〉标签 622

24.6 〈jsp:invoke〉动作元素 624

24.7 〈jsp:doBody〉动作元素 624

24.8小结 624

第Ⅳ篇 应用篇 626

第25章Servlet监听器 626

25.1监听器接口 626

25.2 ServletContextListener接口 627

25.3 HttpSessionBindingListener接口 628

25.4在线人数统计程序 629

25.5小结 636

第26章Filter在Web开发中的应用 637

26.1过滤器概述 637

26.2 FilterAPI 638

26.2.1 Filter接口 638

26.2.2 FilterConfig接口 639

26.2.3 FilterChain接口 639

26.3过滤器的部署 639

26.4过滤器的开发 641

26.5对用户进行统一验证的过滤器 643

26.6对请求和响应数据进行替换的过滤器 649

26.7对响应内容进行压缩的过滤器 657

26.8小结 664

第27章 中文乱码问题与国际化 665

27.1中文乱码问题产生的由来 665

27.1.1常用字符集 665

27.1.2对乱码产生过程的分析 667

27.2中文乱码问题的解决方案 669

27.3使用过滤器解决中文问题 671

27.4让Tomcat支持中文文件名 675

27.5国际化与本地化 675

27.5.1 Locale 676

27.5.2资源包 678

27.5.3消息格式化 680

27.5.4编写国际化的Web应用程序 681

27.6小结 684

第28章 开发安全的Web应用程序 685

28.1概述 685

28.2理解验证机制 686

28.2.1 HTTPBasic Authentication 686

28.2.2 HTTPDigest Authentication 687

28.2.3 HTTPS Client Authentication 687

28.2.4 Form Based Authentication 687

28.3声明式安全 688

28.3.1 〈security-constraint〉元素 688

28.3.2多个安全约束的联合 690

28.3.3 〈login-config〉元素 692

28.3.4基本验证的实现 692

28.3.5基于表单验证的实现 694

28.3.6使用数据库保存用户名和密码 696

28.4程序式安全 700

28.5 SQL注入攻击的防范 702

28.6小结 704

第29章 使用Eclipse开发Web应用 705

29.1 Eclipse介绍 705

29.1.1下载并安装Eclipse 705

29.1.2 Eclipse开发环境介绍 706

29.1.3配置Eclipse 707

29.2文件的上传 710

29.2.1基于表单的文件上传 710

29.2.2文件上传格式分析 711

29.2.3 commons-fileupload组件 712

29.2.4文件上传实例 713

29.3文件的下载 724

29.4给图片添加水印和文字 731

29.5小结 734

附:在Eclipse中导入本章的项目 734

第30章Web应用程序开发实例 736

30.1图像的缩放 736

30.2如何动态生成验证码 739

30.3如何避免表单的重复提交 743

30.3.1在客户端避免表单的重复提交 743

30.3.2在服务器端避免表单的重复提交 746

30.4小结 752

第31章 使用Log4j进行日志操作 753

31.1 Log4j介绍 753

31.1.1 Logger组件 753

31.1.2 Appender组件 754

31.1.3 Layout组件 755

31.2使用Log4j 757

31.3 Log4j使用实例 760

31.4 NDC和MDC 773

31.5小结 775

第32章 使用Ant辅助Web应用程序开发 776

32.1 Ant介绍 776

32.2安装并配置Ant 777

32.2.1下载并安装Ant 777

32.2.2设置Ant的运行环境 777

32.3编写Ant的构建文件 777

32.3.1准备工作 778

32.3.2工程(〈project〉) 781

32.3.3目标(〈target〉) 781

32.3.4任务 783

32.3.5类似路径结构(Path-like Structure) 796

32.3.6引用(Reference) 797

32.4部署到Tomcat 798

32.5运行Ant 801

32.6小结 801

第33章Servlet 3.0新特性详解 802

33.1新增的注解 802

33.1.1@WebServle t注解 803

33.1.2@WebFilter注解 804

33.1.3@WebInitParam注解 806

33.1.4@WebListener注解 806

33.1.5@MultipartConfig注解 806

33.2异步处理 807

33.2.1实例:计算斐波那契数列 809

33.2.2 AsyncListener 812

33.3动态添加和配置Web组件 814

33.3.1实例一:实现ServletContextListener接口来添加Servlet 815

33.3.2实例二:实现ServletContainerInitializer接口来添加组件 816

33.4 Web片段和可插性支持 819

33.4.1 Web模块开发 819

33.4.2解决Web模块加载顺序的问题 821

33.5 HttpServletRequest对文件上传的支持 823

33.6小结 826

第34章XML和XSLT在Web开发中的应用 827

34.1功能概述 827

34.2程序设计 827

34.2.1软件架构 827

34.2.2页面设计 828

34.2.3数据库设计 840

34.3程序实现 842

34.3.1 org.sunxin.guestbook 842

34.3.2 org.sunxin.guestbook.beans 843

34.3.3 org.sunxin.guestbook.util 851

34.3.4 org.sunxin.guestbook.parser 854

34.3.5 org.sunxin.guestbook.controller 857

34.3.6 org.sunxin.guestbook.view 878

34.3.7 page.xsl 882

34.3.8 web.xml 888

34.3.9 context.xml 889

34.4小结 889