标题：Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet 3.0+JSP 2.2深入剖析与实例应用
出版信息
《Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet 3.0+JSP 2.2深入剖析与实例应用》
孙鑫 编著  Java Web开发详解
ISBN 978-7-121-16768-3
2012年5月出版
定价：119.00元 （含光盘1张）
16开
904页
畅销书全新改版
JAVA培训专家倾心之作
全面阐述Web开发
内容简介
本书共分4篇，从XML、XML Schema、XSLT、Servlet、JSP和应用的角度向读者展示了Java Web开发中各种技术的应用，循序渐进地引导读者快速掌握Java Web开发。本书内容全面，涵盖了从事Java Web开发所应掌握的所有知识，同时还讲解了最新的Servlet 3.0和JSP 2.2规范新增的特性。在知识的讲解上，本书采用理论与实践相结合的方式，从程序运行的内部机制进行分析讲解，并通过大量的实例和实验来验证并运用本书的知识。
本书语言生动、通俗易懂、讲解细致，大部分章节都提供了多个例子，而且很多例子都是目前Web开发中经常使用的功能，具有相当高的实用价值。本书不仅可以作为Java Web开发的学习用书，还可以作为从事Java Web开发的程序员的参考用书和必备手册。
此外，本书的配套光盘还免费提供了价值人民币330元的Java教学视频，对Java语言进行了全面讲解，帮助一些不会Java语言的读者快速地从Java基础知识的学习中过渡到Java Web的学习与开发上。
前  言
随着Java语言的流行，Java在网站和企业级应用的开发上应用得越来越普遍，Java Web开发已经成为Java企业级解决方案中不可或缺的重要组成部分。
本书遵照最新的Servlet 3.0和JSP 2.2规范，系统、完整地介绍了Java Web开发中的各种技术，从知识的讲解 → 知识的运用 → 实际问题的解决 → Web开发框架 → 程序架构的设计，一步一步地引导读者掌握Java Web开发的知识体系结构。
本书面向的读者
本书面向的读者群包括：
毫无Web经验的初学者。
具有一定的Web经验，但没有从事过Web开发的读者。
具有其他脚本语言Web开发经验，想要快速转向Java Web开发的程序员。
正在从事Java Web开发的初中级程序员。
此外，为了照顾到连Java语言都没有掌握的读者，在本书的配套光盘中，提供了一套完整的Java教学视频（价值人民币330元），以帮助读者快速地从Java语言的学习中过渡到Java Web的开发上。也就是说，本书也适合于正准备学习Java语言的读者，通过本书，这些读者可以从学习Java语言开始，一直提升到掌握Java Web开发的企业级应用。
本书的内容组织
全书共分4篇，包括了XML篇、Servlet篇、JSP篇和应用篇。前3篇相对独立，但在内容上又有层进的关系。最后一部分综合应用了前3篇的知识，讲解了一些高级应用，并结合实际开发中要解决的问题，给出了很多具有实用价值的实例程序。
此外，4个附录（见本书配套光盘）作为本书不可或缺的部分，先对HTML和HTTP协议进行了介绍，缺少Web经验的读者可以从前两个附录中学到Web开发的必备知识。另外，后两个附录还提供了server.xml和web.xml文件的介绍，可以作为读者从事Java Web开发的参考。
本书在内容的编排上独具匠心，将知识的连贯性和学习规律有机地组织在一起。本书首先介绍了目前Web开发中很热的XML技术，通过和附录A的HTML知识进行对比学习，读者可以很快地掌握XML。在第1篇中，介绍了下面的内容：
XML名称空间
XML Schema
解析XML文档
XSL转换
解析名称空间
XSLT 1.0 和XSLT 2.0
本书第2篇是Servlet篇，围绕Servlet讲解了Servlet技术和Servlet的应用。在这部分内容中，还包括下面几个主题：
Web应用程序的部署
Servlet访问数据库
会话跟踪
Servlet的异常处理机制
Servlet的线程安全
读者如果掌握了这部分的内容，就可以开始Web应用程序的开发了。Servlet容器和Servlet部署使用的配置文件都是XML格式，作者经常看到学员由于不了解XML语法而导致配置出错，从而影响程序的运行。也正是因为这种情况的普遍性，因此本书在第1篇就详细讲解了XML，这样读者在配置Web容器和部署Servlet时，就不会因为语法问题而导致运行出错了。同时读者预先掌握了XML语法，对理解配置文件也有好处。
本书第3篇是JSP篇，包括了与JSP相关的各种技术，主要内容有JSP技术、JSP与JavaBean、JSP开发的两种架构模型、自定义标签库、表达式语言、JSTL、标签文件。JSP是建立在Servlet规范提供的功能之上的动态网页技术，读者看完第2篇介绍的Servlet，自然也就能理解JSP了。第3篇的内容非常详尽，不但可以作为学习指南使用，而且可以作为以后工作中的参考手册。
本书第4篇是应用篇，结合前3篇介绍的知识，讲解了一些高级应用，给出了很多具有实用价值的实例程序。主要内容有：
Servlet监听器
过滤器在Web开发中的应用
中文乱码问题与国际化
开发安全的Web应用程序
使用Eclipse开发文件上传和下载
给图片添加水印和文字、图像缩放、动态验证码、避免表单重复提交等实例
使用Log4j进行日志操作
使用Ant辅助Web应用程序开发
Servlet 3.0新特性详解
XML与XSLT在Web开发中的应用
这部分内容从应用开发的角度帮助读者提升Java Web开发技能，建立Web开发框架设计的思想。
本书的实例程序
作者在编写本书时，使用的操作系统是Windows XP SP3，Web服务器是Tomcat 7.0.23，JDK版本是1.7.0_01，浏览器是IE 8.0。本书所有的实例程序都在上述环境中运行正常。
本书绝大部分的例子程序，都没有放在Tomcat安装目录的webapps目录下，而是单独放在自定义的一个目录中。读者要运行这些程序，有两种方式：一种方式是直接将光盘中的例子程序目录复制到Tomcat的webapps目录下运行；另一种方式是配置Web应用程序的运行目录，在%CATALINA_HOME%\ conf\Catalina\localhost目录下（%CATALINA_HOME%表示Tomcat的安装目录），建立chXX.xml（XX表示每章的序号，例如第5章是ch05.xml，第13章是ch13.xml）文件，编辑这个文件，输入下面的内容：
<Context docBase="F:\JSPLesson\ch07" reloadable="true"/>
将F:\JSPLesson\ch07替换为读者机器上对应章节的Web应用程序所在的目录。
此外，每章例子程序的开发步骤中也给出了详细的配置过程，读者按照步骤操作，会发现配置非常容易。
学习建议
作者针对三种不同类型的读者，提出下面的学习建议。
（1）对HTML和HTTP协议不是很了解的读者：建议从附录A、附录B开始学习，然后从第1章开始学习。在第1章的学习中，要结合附录A，彼此对照，看看XML和HTML之间的异同，加强学习的效果。在学习第2篇的Servlet时，要结合附录B，随时参照，以加深对HTTP Servlet的理解。
（2）对HTML和HTTP协议比较清楚的读者，可以直接从第1章开始学习，按照章节的顺序一步一步进行下去。
（3）有Java Web开发经验的读者，可以选择性地学习本书的内容，并在开发过程中，以本书作为参考用书。
由于第1篇的第9章（XSLT 1.0）和第10章（XSLT 2.0）内容较多，而且有一定的难度，所以在这里建议读者在学习第34章（即最后一章）之前，再回过头学习这两章。当然，对于能够理解这一章内容的读者，学习的次序也就不重要了。
本书的配套光盘说明
本书的配套光盘提供了三部分的内容：本书所有实例的代码、价值人民币330元的Java教学视频（Flash格式）、附录。
1．实例代码
配套光盘中的实例代码是按照章节的顺序提供的，例如，第7章的例子程序位于光盘的Code\ch07目录下。某些章节的例子程序运行需要配置依赖的软件或开发包，请参见各章的内容。对于书中用到的软件和开发包，可通过百度或者程序员之家查找并下载。
2．Java教学视频
本套教学视频由作者本人录制，市场定价为人民币330元。为了帮助广大Java爱好者能够快速地步入Java企业级的开发，作者花费了大量的时间和精力将AVI格式的视频转换为Flash格式，免费提供给读者使用，希望读者能够从中受益。
这套视频的内容简介如下。
Lesson1Java的一些基本概念，Java的起源、我们为什么要学习Java语言，Java跨平台原理剖析；Java环境变量的配置，初学者常犯的错误，Java语言的基本数据类型和Java的语句
Lesson2Java面向对象编程，面向对象编程和面向过程编程的区别，我们如何才能掌握面向对象的编程，类和对象的关系；讲解了Java中的构造、重载、this和super变量、静态变量、Java中的常量、继承、多态
Lesson3上Java中包的概念，类的说明符、方法的说明符、对象的销毁（JVM垃圾回收器的演示），Java中接口理解与掌握
Lesson3下Java中内部类的理解、运用与掌握，Java中的异常处理
Lesson4上Java的常用包，"=="和"equals"的用法，基本数据类型与引用类型，对象的克隆
Lesson4下数组的复制与排序，Runtime类与Process类，Class类与反射API，Runtime类与单例设计模式
Lesson5Java的多线程，程序、进程和线程的概念，实现多线程的两种方式，线程同步的原理，线程的死锁，运用wait和notify来实现producer - consumer关系，线程终止的两种情况
Lesson6Java中的集合类的讲解，栈、队列、链表等数据结构的讲解 
Lesson7Java I/O操作，字节流InputStream和OutputStream，字符流Reader和Writer，Java I/O库的设计原则，字符集的编码，RandomAccessFile类，管道流，对象的序列化
Lesson8Java图形界面编程，AWT、布局管理器、事件模型，JFC、Swing编程。应用JBuilder快速开发图形界面程序
Lesson9Applet编程，详细讲解Applet的生命周期，子体的设置，applet从网页中获取信息，applet和浏览器的通信，更新显示的原理，用Applet来制作动画程序，以及动画程序的优化
Lesson10Java网络编程，基于TCP的套接字编程，基于UDP的套接字编程，URL和URI，一个实用的下载程序
3．附录
由于图书容量的问题，为了降低本书的购买费用，附录4个章节以PDF文件的格式放到了光盘上。
进一步学习的建议
读者在掌握本书的内容后，可以再花一到两个月的时间学习某种Web开发框架，如Struts 2（可参看本书作者编著的《Struts 2深入详解》，电子工业出版社出版），以及某种对象-关系映射工具，如Hibernate，轻量级的Java EE框架：Spring。在掌握这些内容后，读者就可以去公司从事Java企业级的开发了。
关于漫画头像
封面的漫画头像由王裕民绘制，在此表示感谢。
本书在编著过程中，赵岚岚、高莹、张素芳、瞿瑞强、张欣、张玲、窦建涛、涂君君、邵佳赜、马文勇参与编著，这里一并感谢。
最后，衷心地祝愿读者能够从此书获益，从而实现自己的开发梦想。由于本书的内容较多、牵涉的技术较广，错误和疏漏之处在所难免，欢迎广大技术专家和读者指正。作者的联系方式是，读者也可以登录程序员之家网站发表意见。
目  录
第I篇  XML篇
第1章  XML2
第2章  DTD22
第3章  XML名称空间41
第4章  XML Schema49
第5章  使用DOM、SAX和JAXP解析XML文档67
第6章  使用JDOM解析XML文档116
第7章  使用dom4j解析XML文档123
第8章  解析名称空间134
第9章  XSLT 1.0146
第10章  XSLT 2.0223
第II篇  Servlet篇 
第11章  Servlet与Tomcat247
第12章  Servlet技术263
第13章  Web应用程序的部署307
第14章  数据库访问320
第15章  会话跟踪371
第16章  Servlet的异常处理机制405
第17章  开发线程安全的Servlet418
第III篇  JSP篇 
第18章  JSP技术432
第19章  JSP与JavaBean475
第20章  JSP开发的两种模型506
第21章  标签库（Tag Library）516
第22章  表达式语言（EL）551
第23章  JSP标准标签库（JSTL）557
第24章  标签文件（Tag Files）614
第IV篇  应用篇 
第25章  Servlet监听器626
第26章  Filter在Web开发中的应用637
第27章  中文乱码问题与国际化665
第28章  开发安全的Web应用程序685
第29章  使用Eclipse开发Web应用705
第30章  Web应用程序开发实例736
第31章  使用Log4j进行日志操作753
第32章  使用Ant辅助Web应用程序开发776
第33章  Servlet 3.0新特性详解802
第34章  XML和XSLT在Web开发中的应用827
附录A  快速掌握HTML890
附录B  解析HTTP915
附录C  server.xml文件928
附录D  web.xml文件935