Tomcat与Java Web开发技术详解(第2版)(含光盘1张)
分類: 图书,计算机/网络,程序设计,Java Java Script J2EE,
作者: 孙卫琴 编著
出 版 社: 电子工业出版社
出版时间: 2009-1-1字数: 1216000版次: 1页数: 734印刷时间: 2009/01/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121072970包装: 平装编辑推荐
蕴含Java Web开发的核心思想,阐释Java Web开发的前沿技术和实用技巧,详述Tomcat高级配置方法,面向对象的编程思想贯穿全书,穿插UML经典设计模式,精心设计的习题巩固所学知识。
凝聚Java魅力,成就开发专家。看清Java万花筒的本质,从复杂的表象中寻找普遍的规律,深刻理解Java的核心思想。
介绍Java Web开发的基础知识。包括Web运作原理,Java Web应用的结构,Servlet的基本用法,JSP的基本用法,访问数据库,使用HTTP会话,访问JavaBean,EL语言。
介绍Java Web开发的高级技术。包括Servlet的高级用法,各种监听器的用法,开发JavaMail Web应用,创建自定义JSP标签,JSTL标签库的用法,创建国际化的Web应用,简单标签和标签文件的用法,过滤器的用法,创建和访问EJB组件,创建、发布和访问Web服务,运用MVC设计模式。
介绍Tomcat的基础知识。包括Tomcat服务器的作用、结构和安装步骤,配置虚拟主机。
介绍Tomcat的高级功能。包括持久性会话管理,控制和管理平台,安全域,与其他HTTP服务器集成,集群,配置SSI,Tomcat阀,配置SSL,创建嵌入式Tomcat。
介绍第三方提供的相关实用软件的用法,如Struts、AXIS、Log4J、Velocity和ANT。
通过3个典型的Web应用范例贯穿全书。这些范例综合运用了Java Web开发的各种技术,有助于提高读者的实践能力。
读者对象:本书适合广大Java Web开发人员参考学习,同时也可作为高等院校相关专业师生的教学参考书或教材。
内容简介
本书结合最新的Tomcat 6版本,详细介绍了开发Java Web应用的各种技术。主要内容包括:Tomcat和Java Web开发的基础知识、Java Web开发的高级技术、在Java Web应用中运用第三方提供的实用软件(如Struts、Velocity和Log4J)的方法,以及Tomcat的各种高级功能。
书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用实例,并提供了详细的开发和部署步骤。由于Java Web技术是SUN公司在Java Servlet规范中提出的通用技术,因此本书讲解的Java Web应用例子可以运行在任何一个实现了SUN的Servlet规范的Java Web服务器上。随书附赠光盘的内容为本书范例的源程序,以及本书涉及的部分软件的安装程序。
本书语言深入浅出、通俗易懂,无论对于Java Web开发的新手还是行家来说,本书都是精通Tomcat和开发Java Web应用的必备的实用手册。本书还可作为高校相关专业学生学习Java Web开发的参考书,以及企业Java Web培训教材,也可作为SUN公司的SCWCD(SUN Certified Web Component Developer)认证的辅导教材。
作者简介
孙卫琴,1975年出生,籍贯江苏常州,1997年毕业于上海交通大学,随后主要从事基于Java的软件开发工作,在此其间还从事过Java方面的培训和咨询工作。2002年开始Java技术领域的创作。
代表著作有:《Tomcat与Java Web开发技术详解(第2版)》2008,《Java网络编程精解》2007,《Java面向对象编程》2006,《精通Hibernate:Java对象持久化技术详解》2005,《精通Struts:基于MVC的Java Web设计与开发》2004,《Tomcat与Java Web开发技术详解》2004,《Java 2认证考试指南与试题解析》2002。
目录
第1篇 Java Web开发技术详解
第1章 Web运作原理探析
1.1 Web的概念
1.2 HTML简介
1.3 URL简介
1.4 HTTP协议简介
1.4.1 HTTP请求格式
1.4.2 HTTP响应格式
1.4.3 正文部分的MIME类型
1.5 用Java套接字创建HTTP客户与服务器程序
1.5.1 演示异构系统之间用HTTP协议通信
1.5.2 演示对网页中的超级链接的处理过程
1.5.3 演示对网页中的图片的处理过程
1.6 Web发展历程
1.6.1 发布静态HTML文档
1.6.2 发布静态多媒体信息
1.6.3 提供浏览器端与用户的动态交互功能
1.6.4 提供服务器端与用户的动态交互功能
1.6.5 发布Web应用
1.6.6 发布Web服务
1.6.7 Web 2.0:全民共建的Web
1.7 处理HTTP请求参数及HTML表单
1.8 客户端向服务器端上传文件
1.9 小结
1.10 思考题
第2章 Tomcat简介
2.1 Tomcat概述
2.2 Tomcat作为Servlet容器的基本功能
2.3 Tomcat的组成结构
2.4 Tomcat的工作模式
2.5 Tomcat的版本
2.6 安装和配置Tomcat所需的资源
2.7 安装Tomcat
2.8 启动Tomcat并测试Tomcat的安装
2.9 Tomcat的运行脚本
2.10 小结
2.11 思考题
第3章 第一个JavaWeb应用
3.1 JavaWeb应用简介
3.2 创建JavaWeb应用
3.2.1 JavaWeb应用的目录结构
3.2.2 创建HTML文件
3.2.3 创建Servlet类
3.2.4 创建JSP文件
3.2.5 创建web.xml文件
3.3 在Tomcat中发布JavaWeb应用
3.3.1 Tomcat的目录结构
3.3.2 按照默认方式发布JavaWeb应用
3.3.3 Web组件的URL
3.3.4 配置Tomcat的元素
3.3.5 配置Tomcat的虚拟主机
3.4 创建、配置和使用自定义JSP标签
3.5 用批处理文件或ANT编译范例
3.6 小结
3.7 思考题
第4章 Servlet技术(上)
4.1 Servlet API
4.1.1 Servlet接口
4.1.2 GenericServlet抽象类
4.1.3 HttpServlet抽象类
4.1.4 ServletRequest接口
4.1.5 HttpServletRequest接口
4.1.6 ServletResponse接口
4.1.7 HttpServletResponse接口
4.1.8 ServletConfig接口
4.1.9 ServletContext接口
4.2 JavaWeb应用的生命周期
4.2.1 启动阶段
4.2.2 运行时阶段
4.2.3 终止阶段
4.2.4 用Tomcat的管理平台管理Web应用的生命周期
4.3 Servlet的生命周期
4.3.1 初始化阶段
4.3.2 运行时阶段
4.3.3 销毁阶段
4.3.4 演示Servlet的生命周期的范例
4.4 ServletContext与Web应用范围
4.4.1 在Web应用范围内存放共享数据的范例
4.4.2 使用ServletContextListener监听器
4.5 Servlet的服务方法抛出异常
4.6 防止页面被客户端缓存
4.7 小结
4.8 思考题
第5章 Servlet技术(下)
5.1 下载文件
5.2 上传文件
5.3 动态生成图像
5.4 读写Cookie
5.5 访问Web应用的工作目录
5.6 转发和包含
5.6.1 请求转发
5.6.2 包含
5.6.3 请求范围
5.7 重定向
5.8 访问Servlet容器内的其他Web应用
5.9 避免并发问题
5.9.1 合理决定在Servlet中定义的变量的作用域类型
5.9.2 使用Java同步机制对多线程同步
5.9.3 被废弃的SingleThreadModel接口
5.10 小结
5.11 思考题
第6章 JSP技术
6.1 比较HTML、Servlet和JSP
6.1.1 静态HTML文件
6.1.2 用Servlet动态生成HTML页面
6.1.3 用JSP动态生成HTML页面
6.2 JSP语法
6.2.1 JSP指令(Directive)
6.2.2 JSP声明
6.2.3 Java程序片段(Scriptlet)
6.2.4 Java表达式
6.2.5 隐含对象
6.3 JSP的生命周期
6.4 请求转发
6.5 包含
6.5.1 静态包含
6.5.2 动态包含
6.5.3 混合使用静态包含和动态包含
6.6 JSP异常处理
6.7 再谈发布JSP
6.8 预编译JSP
6.9 PageContext抽象类
6.10 JSP技术的发展趋势
6.11 小结
6.12 思考题
第7章 bookstore应用简介
7.1 bookstore应用的软件结构
7.1.1 Web服务器层
7.1.2 数据库层
7.2 浏览bookstore应用的JSP网页
7.3 JavaBean和实用类
7.3.1 实体类
7.3.2 购物车的实现
7.4 发布bookstore应用
7.5 小结
第8章 访问数据库
8.1 安装和配置MySQL数据库
8.2 JDBC简介
8.2.1 java.sql包中的接口和类
8.2.2 编写访问数据库程序的步骤
8.2.3 事务处理
8.3 通过JDBC API访问数据库的JSP范例程序
8.4 bookstore应用通过JDBC API访问数据库
8.5 数据源(DataSource)简介
8.6 配置数据源
8.6.1 在context.xml中加入元素
8.6.2 在web.xml中加入元素
8.7 程序中访问数据源
8.7.1 通过数据源连接数据库的JSP范例程序
8.7.2 bookstore应用通过数据源连接数据库
8.8 处理中文编码
8.9 分页显示批量数据
8.10 小结
8.11 思考题
第9章 HTTP会话的使用与管理
9.1 会话简介
9.2 HttpSession的生命周期及会话范围
9.3 使用会话的JSP范例程序
9.4 使用会话的Servlet范例程序
9.5 通过重写URL来跟踪会话
9.6 会话的持久化
9.6.1 标准会话管理器StandardManager
9.6.2 持久化会话管理器PersistentManager
9.7 会话的监听
9.7.1 用HttpSessionListener统计在线用户人数
9.7.2 用HttpSessionBindingListener统计在线用户人数
9.8 小结
9.9 思考题
第10章 JSP访问JavaBean
10.1 JavaBean简介
10.2 JSP访问JavaBean的语法
10.3 JavaBean的范围
10.3.1 JavaBean在页面(page)范围内
10.3.2 JavaBean在请求(request)范围内
10.3.3 JavaBean在会话(session)范围内
10.3.4 JavaBean在Web应用(application)范围内
10.4 在bookstore应用中访问JavaBean
10.4.1 访问BookDB类
10.4.2 访问ShoppingCart类
10.5 小结
10.6 思考题
第11章 开发JavaMail Web应用
11.1 E-mail协议简介
11.1.1 SMTP简单邮件传输协议
11.1.2 POP3邮局协议
11.1.3 接收邮件的新协议IMAP
11.2 JavaMail API简介
11.3 建立JavaMail应用程序的开发环境
11.3.1 获得JavaMail API的类库
11.3.2 安装和配置邮件服务器
11.4 创建JavaMail应用程序
11.5 JavaMail Web应用简介
11.6 JavaMail Web应用的程序结构
11.6.1 重新封装Message数据
11.6.2 用于保存邮件账号信息的JavaBean
11.6.3 定义所有JSP文件的相同内容
11.6.4 登录IMAP服务器上的邮件账号
11.6.5 管理邮件夹
11.6.6 查看邮件夹中的邮件信息
11.6.7 查看邮件内容
11.6.8 创建和发送邮件
11.6.9 退出邮件系统
11.7 在Tomcat中配置邮件会话(Mail Session)
11.7.1 在context.xml中配置Mail Session资源
11.7.2 在web.xml中加入对JNDI Mail Session资源的引用
11.7.3 在javamail应用中获取JNDI Mail Session资源
11.8 发布和运行javamail应用
11.9 小结
11.10 思考题
第12章 EL表达式语言
12.1 基本语法
12.1.1 访问对象的属性及数组的元素
12.1.2 EL运算符
12.1.3 隐含对象
12.1.4 命名变量
12.2 使用EL表达式的JSP范例
12.2.1 关于基本语法的例子
12.2.2 读取HTML表单数据的例子
12.2.3 访问命名变量的例子
12.3 定义和使用EL函数
12.4 小结
12.5 思考题
第13章 自定义JSP标签
13.1 自定义JSP标签简介
13.2 JSP Tag API
13.2.1 JspTag接口
13.2.2 Tag接口
13.2.3 IterationTag接口
13.2.4 BodyTag接口
13.2.5 TagSupport类和BodyTagSupport类
13.3 创建和使用message标签(访问标签属性)
13.3.1 创建message标签的处理类MessageTag
13.3.2 创建标签库描述文件
13.3.3 在Web应用中使用标签
13.3.4 发布支持中、英文版本的helloapp应用
13.4 创建和使用iterate标签(重复执行标签主体)
13.5 创建和使用greet标签(访问标签主体内容)
13.6 小结
13.7 思考题
第14章 采用模板设计网上书店应用
14.1 如何设计网站的模板
14.2 创建负责流程控制的Servlet
14.3 创建模板标签和模板JSP文件
14.3.1标签和其处理类
14.3.2标签和处理类
14.3.3标签和处理类
14.3.4标签和处理类
14.4 修改JSP文件
14.5 发布采用模板设计的bookstore应用
14.6 小结
第15章 JSTL Core标签库
15.1 使用第三方提供的标签库的步骤
15.2 JSTL标签库简介
15.3 一般用途的标签
15.3.1标签
15.3.2标签
15.3.3标签
15.3.4标签
15.4 条件标签
15.4.1标签
15.4.2、和标签
15.5 迭代标签
15.5.1标签
15.5.2标签
15.6 URL相关的标签
15.6.1标签
15.6.2标签
15.6.3标签
15.7 小结
15.8 思考题
第16章 JSTL I18N标签库
16.1 国际化的概念
16.2 Java对I18N的支持
16.2.1 Locale类
16.2.2 ResourceBundle类
16.2.3 MessageFormat类和复合消息
16.3 国际化标签
16.3.1标签
16.3.2标签
16.3.3标签
16.3.4标签
16.3.5标签
16.3.6标签
16.4 创建国际化的Web应用
16.4.1 创建支持国际化的网页
16.4.2 创建资源文件
16.5 格式化标签
16.5.1标签
16.5.2标签
16.5.3标签
16.5.4标签
16.5.5标签
16.5.6标签
16.6 小结
16.7 思考题
第17章 JSTL SQL标签库
17.1标签
17.2标签
17.2.1 设置数据源
17.2.2 设置select查询语句
17.2.3 控制实际取出的记录
17.2.4 访问查询结果
17.2.5 使用标签的范例
17.3标签
17.4标签
17.5标签
17.6标签
17.7 小结
17.8 思考题
第18章 JSTL Functions标签库
18.1 fn:contains函数
18.2 fn:containsIgnoreCase函数
18.3 fn:startsWith函数
18.4 fn:endsWith函数
18.5 fn:indexOf函数
18.6 fn:replace函数
18.7 fn:substring函数
18.8 fn:substringBefore函数
18.9 fn:substringAfter函数
18.10 fn:split函数
18.11 fn:join函数
18.12 fn:toLowerCase函数
18.13 fn:toUpperCase函数
18.14 fn:trim函数
18.15 fn:escapeXml函数
18.16 fn:length函数
18.17 小结
18.18 思考题
第19章 简单标签和标签文件
19.1 实现SimpleTag接口
19.1.1 创建和使用简单标签
19.1.2 创建和使用带属性和标签主体的简单标签
19.1.3 创建和使用带动态属性的简单标签
19.2 使用标签文件
19.2.1 标签文件的隐含对象
19.2.2 标签文件的指令
19.2.3 标签文件的和动作元素
19.2.4 创建和使用带属性和标签主体的display标签文件
19.2.5 创建和使用带属性和标签主体的welcome标签文件
19.2.6 创建和使用带变量的precode标签文件
19.3 小结
19.4 思考题
第20章 过滤器
20.1 过滤器简介
20.2 创建过滤器
20.3 发布过滤器
20.4 串联过滤器
20.4.1 包装设计模式简介
20.4.2 ServletOutputStream的包装类
20.4.3 HttpServletResponse的包装类
20.4.4 创建对响应结果进行字符串替换的过滤器
20.4.5 ReplaceTextFilter过滤器工作的UML时序图
20.4.6 发布和运行包含ReplaceTextFilter过滤器的Web应用
20.5 小结
20.6 思考题
第21章 在Web应用中访问EJB组件
21.1 JavaEE体系结构简介
21.2 安装和配置JBoss服务器
21.3 创建EJB组件
21.3.1 编写Remote接口
21.3.2 编写Home接口
21.3.3 编写Enterprise Java Bean类
21.4 在Web应用中访问EJB组件
21.5 发布JavaEE应用
21.5.1 在JBoss上发布EJB组件
21.5.2 在JBoss上发布Web应用
21.5.3 在JBoss上发布JavaEE应用
21.6 小结
21.7 思考题
第22章 在Web应用中访问Web服务
22.1 SOAP简介
22.2 建立Apache AXIS环境
22.3 在Tomcat上发布Apache-AXIS Web应用
22.4 创建SOAP服务
22.4.1 创建提供SOAP服务的Java类
22.4.2 创建SOAP服务的发布描述符文件
22.5 管理SOAP服务
22.5.1 发布SOAP服务
22.5.2 删除SOAP服务
22.6 创建和运行SOAP客户程序
22.7 发布JWS服务
22.8 在bookstore应用中访问SOAP服务
22.8.1 创建BookDB服务类及BookDBDelegate代理类
22.8.2 发布bookdbservice服务和bookstore应用
22.9 小结
22.10 思考题
第23章 Web应用的MVC设计模式
23.1 MVC设计模式简介
23.2 JSP Model 1和JSP Model 2
23.3 Struts概述
23.3.1 Struts实现MVC的机制
23.3.2 Struts的工作流程
23.4 创建采用Struts的Web应用
23.4.1 建立Struts的环境
23.4.2 创建视图
23.4.3 创建模型
23.4.4 创建Action类
23.4.5 创建web.xml文件和struts.xml文件
23.5 运行helloapp应用
23.5.1 服务器端装载login.htm的流程
23.5.2 用户验证的流程
23.6 小结
23.7 思考题
第2篇 Tomcat配置及第三方实用软件的用法
第24章 Tomcat的控制平台和管理平台
24.1 访问Tomcat的控制平台和管理平台
24.2 Tomcat的控制平台
24.2.1 Tomcat控制平台的功能
24.2.2 配置元素
24.3 Tomcat的管理平台
24.4 小结
第25章 安全域
25.1 安全域概述
25.2 为Web资源设置安全约束
25.2.1 在web.xml中加入元素
25.2.2 在web.xml中加入元素
25.2.3 在web.xml中加入元素
25.3 内存域
25.4 JDBC域
25.4.1 用户数据库的结构
25.4.2 在MySQL中创建和配置用户数据库
25.4.3 配置元素
25.5 DataSource域
25.6 在Web应用中访问用户信息
25.7 小结
25.8 思考题
第26章 Tomcat与其他HTTP 服务器集成
26.1 Tomcat与HTTP服务器集成的原理
26.1.1 JK插件
26.1.2 AJP协议
26.2 在Windows下Tomcat与Apache服务器集成
26.3 在Linux下Tomcat与Apache服务器集成
26.4 Tomcat与IIS服务器集成
26.4.1 准备相关文件
26.4.2 编辑注册表
26.4.3 在IIS中加入“jakarta”虚拟目录
26.4.4 把JK插件作为ISAPI筛选器加入到IIS中
26.4.5 测试配置
26.5 Tomcat集群
26.5.1 配置集群系统的负载平衡器
26.5.2 配置集群管理器
26.6 小结
26.7 思考题
第27章 在Tomcat中配置SSI
27.1 SSI简介
27.1.1 #echo指令
27.1.2 #include指令
27.1.3 #flastmod指令
27.1.4 #fsize指令
27.1.5 #exec指令
27.1.6 #config指令
27.1.7 #if、#elif、#else和#endif指令
27.2 在Tomcat中配置对SSI的支持
27.3 小结
27.4 思考题
第28章 Tomcat阀
28.1 Tomcat阀简介
28.2 客户访问日志阀
28.3 远程地址过滤器
28.4 远程主机过滤器
28.5 客户请求记录器
28.6 小结
28.7 思考题
第29章 在Tomcat中配置SSL
29.1 SSL简介
29.1.1 加密通信
29.1.2 安全证书
29.1.3 SSL握手
29.2 在Tomcat中使用SSL
29.2.1 准备安全证书
29.2.2 配置SSL连接器
29.2.3 访问支持SSL的Web站点
29.3 小结
29.4 思考题
第30章 用ANT工具管理Web应用
30.1 安装配置ANT
30.2 创建build.xml文件
30.3 运行ANT
30.4 小结
30.5 思考题
第31章 使用Log4J进行日志操作
31.1 Log4J简介
31.1.1 Logger组件
31.1.2 Appender组件
31.1.3 Layout组件
31.1.4 Logger组件的继承性
31.2 Log4J的基本使用方法
31.2.1 定义配置文件
31.2.2 在程序中使用Log4J
31.3 在helloapp应用中使用Log4J
31.3.1 创建用于配置Log4J环境的Servlet
31.3.2 在login.jsp中输出日志
31.3.3 发布和运行使用Log4J的helloapp应用
31.4 小结
31.5 思考题
第32章 Velocity模板语言
32.1 安装Velocity
32.2 Velocity的简单例子
32.2.1 创建Velocity模板
32.2.2 创建扩展VelocityServlet的Servlet类
32.2.3 发布和运行基于Velocity的Web应用
32.3 注释
32.4 引用
32.4.1 变量引用
32.4.2 属性引用
32.4.3 方法引用
32.4.4 正式引用符
32.4.5 安静引用符
32.4.6 转义符
32.4.7 大小写替换
32.5 指令
32.5.1 #set指令
32.5.2 字面字符串
32.5.3 #if指令
32.5.4 比较运算
32.5.5 #foreach循环指令
32.5.6 #include指令
32.5.7 #parse指令
32.5.8 #macro指令
32.5.9 转义VTL指令
32.5.10 VTL的格式
32.6 其他特征
32.6.1 数学运算
32.6.2 范围操作符
32.6.3 字符串的连接
32.7 小结
32.8 思考题
第33章 创建嵌入式Tomcat服务器
33.1 将Tomcat嵌入到Java应用中
33.2 创建嵌入了Tomcat的Java示范程序
33.3 运行嵌入式Tomcat服务器
33.4 小结
附录A server.xml文件
A.1 配置Server元素
A.2 配置Service元素
A.3 配置Engine元素
A.4 配置Host元素
A.5 配置Context元素
A.6 配置Connector元素
附录B web.xml文件
B.1 配置过滤器
B.2 配置Servlet
B.3 配置Servlet映射
B.4 配置Session
B.5 配置Welcome文件清单
B.6 配置Tag Library
B.7 配置资源引用
B.8 配置安全约束
B.9 配置安全验证登录界面
B.10 配置对安全验证角色的引用
附录C XML简介
C.1 SGML、HTML 与XML的比较
C.2 DTD文档类型定义
C.3 有效XML文档以及简化格式的XML文档
C.4 XML中的常用术语
C.4.1 URL、URN和URI
C.4.2 XML命名空间
附录D 书中涉及软件获取途径
媒体评论
孙老师的每一本Java著作都在广大Java爱好者中引起抢购热潮,此次推出的新著一定也不例外。
此书既通俗易懂又具有足够的深度和广度,对想要利用Java进行Web开发的同行来说是一不可多得的参考书和工具书。
——陈锋,Java中文站(JAVA-CN.COM)站长
本书由浅入深、通俗易懂地讲解了开发Java Web应用涉及的各种技术。如果您要选择用于学习Java Web开发的书籍,个人认为非此书莫属。
——魏朝东,东南融通公司架构设计师
本书对Tomcat技术讲得全面,有深度,很实用,是您在Tomcat平台上开发Java Web的必备之书。
——施登荣,北京清华同方软件股份有限公司研发经理
如果你正在为找不到一本适合自己的Web开发书籍而苦恼,那么这本书正是你需要的。
——彭雪,红帽中国研发中心JBoss团队研发工程师
书摘插图
第1篇 Java Web开发技术详解
第1章 Web运作原理探析
所有上过网的人都熟悉这样的过程:用户在客户机上运行浏览器程序,在浏览器中输入一个URL地址,这个地址指向的网页就会从远程Web服务器发送到客户机,并且由客户机上的浏览器奖其展示出来。本章从Web的概念入手,逐步向读者展示Web的本质及动作原理,读者不妨带着以下问题去阅读本章开头的内容:
在整个Web体系中,浏览器和Web服务器的各自功能是什么?
浏览器和Web服务器采用HTTP协议进行通信,该协议规定了通信的哪些具体细节?
……