
前 言
这是一本系统解读Tomcat的书,目的是使读者不但“知其然”而且“知其所以然”。
四大写作特点:独家分析、线索清晰、归纳精炼、大量图解
独家分析:采用独特模式,深入分析Tomcat内部实现和外部应用;独有的内容包括Tomcat启动与类加载分析、底层框架与源代码分析等。
线索清晰:全书共分30章,以基础篇→深入篇→集成篇→案例篇为线索,全面涵盖Tomcat的各方面,由基础到深入,由表层应用到底层架构。
归纳精炼:从技术、底层、应用三方面归纳总结,将每一个知识点精炼为一章,不遗漏、不添篇幅。
大量图解:两个UML序列图、8个类图、7个结构图、25个流程图、大量演示图表。
三大讲解思路:技术讲解→源码分析→实例演示
技术讲解:以技术为核心,基础篇从使用角度讲解8个方面,深入篇深刻剖析13个知识系列,集成篇讲解7个与Web Server和IDE的集成案例,案例篇讲解两大代表应用——博客系统和OA系统。
源码分析:分析底层源码,超过10个包200个以上类分析(主要集中在第9、10章,第11、12、13章也有涉及)。
实例演示:通过实例演示,使理论与实践相结合。共有25个演示实例(3.3,5.2.2,7.1.3,8.3,9.3.6,9.3.7, 12.1.1,12.2,13.2,14.4.5,16.2.2,17.2,18.1.2,18.3,18.4,19.1.4,19.3.3,20.2,21.2.3,22.2,24.3,25.3,26.3,27.3,28.3)。
四大组织篇章:基础篇→深入篇→集成篇→案例篇
基础篇:讲解Tomcat的产生发展、特点、工作原理;安装与启动,性能设置;创建和发布Web应用;web.xml和server.xml详解;管理与控制平台;调试与疑难解答;Log4j与Ant的使用与开发。
深入篇:分析Tomcat容器启动流程,Tomcat启动过程,类加载过程;Tomcat的底层框架与管理包、Servlet类、Jasper编译器、内置对象源代码分析;Tomcat两大连接器;领域安全模型和工作流程图,4种验证方式,5种领域策略;阀工作流程和家族关系图,5个阀的使用;Tomcat的JNDI应用,JDBC资源;Tomcat的SSI和CGI解释器;Tomcat虚拟主机技术和配置;嵌入Tomcat原理、过程和核心类;集群和负载平衡;安全策略文件、输入过滤、SSL;外部优化,内部优化;使用JMX管理Tomcat。
集成篇:针对不同服务器、不同操作系统,介绍了与Tomcat的配置方法,注重实用性;包括与流行的Web Server和IDE的7大集成实例。
案例篇:给出两大代表案例,从设计、编程到部署一一详述,使读者能够对使用Tomcat进行实际案例开发有一个直观的整体的了解;流行的博客开发应用Struts+Hibernate+Eclipse开发环境;流行的OA系统讲解了这类数据库系统的分析开发过程。
下图给出了本书内容框架组织。
本书的目标是:基础篇让你能够熟练使用Tomcat,深入篇让你能够理解Tomcat底层并能够使用Tomcat的高级功能,集成篇让你能够熟练地维护Tomcat,案例篇让你能够熟练地使用Tomcat开发Web应用。
本书的四个篇章分别适合于四类读者:初学者、发烧友、网络管理者、开发者。本书可以作为Tomcat程序开发的一本详尽的工具书。配套光盘提供了书中涉及实例的所有源代码,以方便读者举一反三,编写出适合自己的程序。
本书从实用性的角度出发,兼顾初级、中级和高级用户的需求,适合从事Tomcat相关工作的人员参考使用。本书不仅适合Java程序员、自由软件爱好者及各类软件开发人员阅读,便于他们尽快掌握和熟练使用Tomcat开发环境,还可作为高等院校相关专业学生的课外辅导材料。
本书由刘中兵、许晓昕、薛道铭三位作者,根据多年的项目实践经验,精心总结编写而成。尽管付出了很大的努力,但百密难免一疏,欢迎读者批评指正。Tomcat的技术博大精深,相关的中文资料不太多,深入分析的英文资料也很少。知识无止境,欢迎有兴趣于Tomcat技术研究的同行加入我们,让我们共同进步!
作者于 北京
2007年1月10日
目 录
第1部分 Tomcat基础开发篇
第1章 Tomcat简介 3
1.1 Tomcat的发展简史 3
1.1.1 发展历史 3
1.1.2 发展现状 4
1.1.3 未来的发展趋势 5
1.2 Tomcat的版本 5
1.2.1 Tomcat3.x 6
1.2.2 Tomcat4.x 6
1.2.3 Tomcat5.x 7
1.2.4 Tomcat6.0 7
1.3 Tomcat的特点 8
1.3.1 部署简单 8
1.3.2 安全管理 8
1.3.3 易操作 9
1.3.4 集成方便 9
1.3.5 与Apache完美组合 9
1.4 Tomcat工作原理 10
1.4.1 Servlet容器 10
1.4.2 Tomcat工作模式 10
1.4.3 Tomcat组织结构 11
1.4.4 Tomcat Web应用简介 12
1.5 Web服务器之比较 13
1.5.1 JSWDK与Tomcat比较 13
1.5.2 JServ与Tomcat比较 13
1.5.3 Resin与Tomcat比较 14
1.5.4 JRun与Tomcat比较 14
1.5.5 JBoss与Tomcat比较 14
1.5.6 WebLogic与Tomcat比较 15
1.5.7 WebSphere与Tomcat比较 15
1.5.8 其他 15
1.5.9 总结对比 16
1.6 小结 16
第2章 Tomcat安装与启动 17
2.1 安装Java环境 17
2.1.1 安装JDK 17
2.1.2 JVM性能设置 18
2.2 安装Tomcat 18
2.2.1 安装二进制版 19
2.2.2 从源代码安装Tomcat 19
2.3 Tomcat的结构及相关设置 19
2.3.1 预览结构 19
2.3.2 相关设置 22
2.4 启动Tomcat 23
2.4.1 Tomcat的启动和停止 23
2.4.2 以服务的方式运行Tomcat 25
2.4.3 在控制台里运行Tomcat 27
2.4.4 远程启动Tomcat 28
2.5 测试运行 28
2.6 小结 28
第3章 在Tomcat中创建和发布Web
应用 29
3.1 Web应用的结构 29
3.2 部署描述符web.xml 30
3.2.1 头元素 34
3.2.2 文档类型声明 35
3.2.3 Web应用图标、Web应用名称、
Web应用描述 35
3.2.4 分布式属性 36
3.2.5 上下文参数 36
3.2.6 过滤器定义 36
3.2.7 过滤器映射 38
3.2.8 监听器 39
3.2.9 Servlet定义 40
3.2.10 Servlet映射 43
3.2.11 控制会话超时 44
3.2.12 MIME类型映射 45
3.2.13 指定欢迎文件页 45
3.2.14 错误处理页 46
3.2.15 定位TLD 47
3.2.16 资源管理对象 47
3.2.17 资源工厂使用的资源 47
3.2.18 安全限制 48
3.2.19 登录验证 49
3.2.20 安全角色 50
3.2.21 Web环境参数 51
3.2.22 EJB声明 51
3.2.23 本地EJB声明 51
3.2.24 Servlet2.4新增标签 52
3.3 实例演示:创建和发布过程 55
3.3.1 建立项目 55
3.3.2 配置调试环境 56
3.3.3 部署HTML文件 56
3.3.4 部署JSP 57
3.3.5 部署Servlet 58
3.3.6 部署过滤器 59
3.3.7 部署监听器 61
3.3.8 部署自定义标签 62
3.3.9 创建并发布WAR文件 64
3.3.10 域名绑定 65
3.3.11 配置虚拟主机 65
3.4 小结 66
第4章 Tomcat控制与管理 67
4.1 Tomcat系统管理平台 67
4.1.1 访问系统管理平台 67
4.1.2 系统管理功能 69
4.1.3 常见的配置过程 70
4.2 Tomcat应用管理平台 73
4.2.1 访问应用管理平台 74
4.2.2 应用管理功能 75
4.2.3 管理命令 77
4.3 小结 78
第5章 Tomcat配置文件详解 79
5.1 server.xml配置 79
5.1.1 元素预览及相互关系 79
5.1.2 顶层元素Server 83
5.1.3 顶层元素Service 83
5.1.4 连接器Connector 84
5.1.5 容器Engine 88
5.1.6 容器Host 89
5.1.7 容器Context 91
5.1.8 默认配置组件DefaultContext 97
5.1.9 全局配置组件
GlobalNamingResources 97
5.1.10 嵌套组件Logger 97
5.1.11 嵌套组件Valve 98
5.1.12 嵌套组件Realm 101
5.1.13 嵌套组件Listener 105
5.1.14 嵌套组件Cluster 105
5.1.15 嵌套组件Loader 106
5.1.16 嵌套组件Manager 107
5.1.17 嵌套组件Resources 110
5.1.18 小结 111
5.2 web.xml配置 112
5.2.1 概述 112
5.2.2 DefaultServlet 114
5.2.3 JspServlet 118
5.2.4 InvokerServlet 120
5.2.5 SSIServlet 121
5.2.6 CGIServlet 122
5.2.7 Session配置 122
5.2.8 MIME类型 123
5.2.9 Welcome列表 123
5.2.10 小结 124
5.3 tomcat-users.xml配置 124
5.3.1 manager角色 124
5.3.2 admin角色 125
5.4 安全配置文件 125
5.4.1 策略文件catalina.policy 125
5.4.2 属性文件catalina.properties 127
5.5 其他 128
5.5.1 server-minimal.xml 128
5.5.2 context.xml 128
5.6 小结 128
第6章 Tomcat调试与疑难排解 129
6.1 无法启动Tomcat 129
6.1.1 环境变量设置问题 129
6.1.2 端口冲突 130
6.1.3 版本冲突 131
6.2 无法停止Tomcat 132
6.3 中文字符问题 132
6.3.1 HTML中文编码转换 132
6.3.2 JSP中文编码转换 132
6.3.3 数据库中文乱码问题 134
6.4 调试方法 135
6.4.1 解读日志文件 135
6.4.2 URL与HTTP会话 135
6.4.3 用RequestDumperValve来调试
136
6.5 小结 136
第7章 Tomcat开发中日志的使用 137
7.1 使用Log4j记录日志 137
7.1.1 Log4j设计原理 137
7.1.2 Log4j的配置 140
7.1.3 实例演示:Log4j的使用 144
7.2 使用Commons Logging记录日志 145
7.2.1 基本原理 146
7.2.2 类包分析 147
7.2.3 快速实现Commons Logging 150
7.2.4 Commons Logging记录
日志示例 150
7.3 小结 152
第8章 使用Ant管理Tomcat和
Web应用 153
8.1 Ant的配置和使用 153
8.1.1 Ant安装和配置 153
8.1.2 编写build文件 155
8.1.3 基本Task使用方法 160
8.2 用Ant从源代码安装Tomcat 167
8.2.1 下载Tomcat源代码 167
8.2.2 下载Ant二进制版本 168
8.2.3 设置环境变量 168
8.2.4 开始编译 168
8.2.5 部署Tomcat 169
8.3 实例演示:用Ant管理Web应用
169
8.3.1 建立测试项目 169
8.3.2 建立build.xml 170
8.3.3 clean清理任务 172
8.3.4 prepare编译准备任务 172
8.3.5 compile编译任务 173
8.3.6 install应用部署任务 173
8.3.7 list应用查看任务 174
8.3.8 reload应用重载任务 175
8.3.9 remove应用撤销任务 175
8.3.10 javadoc生成文档任务 176
8.3.11 dist打包任务 176
8.3.12 email邮件发送任务 177
8.4 小结 178
第2部分 Tomcat深入篇
第9章 Tomcat启动与类加载 181
9.1 Tomcat各容器和组件的启动流程 181
9.1.1 名词解释 181
9.1.2 容器启动流程 182
9.1.3 启动Server 183
9.1.4 启动Service 185
9.1.5 启动Connector 186
9.1.6 启动Engine 188
9.1.7 启动Host 189
9.1.8 启动Context 191
9.1.9 加载组件 192
9.2 Tomcat的启动 194
9.2.1 Tomcat组件启动流程图 194
9.2.2 Tomcat启动引导类
Bootstrap.java 195
9.2.3 Tomcat启动类Catalina.java 196
9.3 类加载 197
9.3.1 Java类加载与委托模型 197
9.3.2 Tomcat的类加载器 201
9.3.3 Tomcat类加载器UML结构图
204
9.3.4 Tomcat类加载器的创建过程
与源码分析 205
9.3.5 Tomcat动态类重载 211
9.3.6 实例演示:一个简单的类
加载器 212
9.3.7 实例演示:实现加密类的类
加载器 214
9.4 小结 218
第10章 Tomcat框架与默认类 219
10.1 Tomcat基础架构类图 219
10.2 manager任务包 221
10.2.1 Task类关系图 222
10.2.2 基础类AbstractCatalinaTask 222
10.2.3 Tomcat任务类型 224
10.2.4 部署应用任务类DeployTask 224
10.2.5 启动应用任务类StartTask 226
10.3 Servlet类 226
10.3.1 Servlet类关系图 226
10.3.2 javax.servlet.GenericServlet 227
10.3.3 javax.servlet.http.HttpServlet 228
10.3.4 DefaultServlet 232
10.3.5 InvokerServlet 232
10.3.6 CGIServlet 233
10.3.7 SSIServlet 236
10.3.8 JSPServlet 237
10.4 Jasper编译过程 238
10.4.1 加载类编译器 238
10.4.2 由JSP产生Java源文件 239
10.4.3 由Java源文件编译为class
文件 239
10.5 JSP九大内置对象类 240
10.5.1 out - javax.servlet.jsp.jspWriter
241
10.5.2 request - javax.servlet.http.
HttpServletRequest 242
10.5.3 response - javax.servlet.http.
HttpServletResponse 245
10.5.4 session - javax.servlet.http.
HttpSession 247
10.5.5 pageContext - javax.servlet.jsp.
PageContext 248
10.5.6 application - javax.servlet.
ServletContext 250
10.5.7 config - javax.servlet.
ServletConfig 251
10.5.8 exception - java.lang.
Throwable 252
10.5.9 page - javax.servlet.jsp.
HttpJspPage 252
10.6 小结 252
第11章 Tomcat连接器 253
11.1 HTTP Connector 253
11.1.1 版本发展 253
11.1.2 类关系图 253
11.1.3 类型配置 254
11.1.4 性能调整 255
11.2 WebServer Connector 255
11.2.1 使用WebServer的原因 255
11.2.2 连接协议 256
11.2.3 选择连接器 257
11.2.4 AJPConnector 258
11.2.5 WARPConnector 259
11.3 小结 260
第12章 Tomcat领域 261
12.1 Tomcat领域基本原理 261
12.1.1 实例演示:Tomcat安全模型
261
12.1.2 Tomcat领域工作流程 263
12.1.3 Tomcat领域家族关系图 264
12.2 实例演示:Tomcat领域的使用 264
12.2.1 用户数据库域UserDatabaseRealm
264
12.2.2 内存数据库域MemoryRealm
265
12.2.3 JDBC访问数据库域JDBCRealm
265
12.2.4 DataSource访问数据库域
DataSourceRealm 266
12.2.5 如何访问登录的用户信息 266
12.3 小结 266
第13章 Tomcat阀 267
13.1 Tomcat阀基本原理 267
13.1.1 Tomcat阀工作流程 267
13.1.2 Tomcat阀家族关系图 268
13.2 实例演示:Tomcat阀的使用 269
13.2.1 客户访问日志阀AccessLogValve
269
13.2.2 远程地址过滤器RemoteAddrValve
270
13.2.3 远程主机过滤器RemoteHostValve
270
13.2.4 客户请求记录器
RequestDumperValve 271
13.2.5 单点登录阀SingleSignOnValve
272
13.3 小结 274
第14章 Tomcat资源 275
14.1 资源定义方式 275
14.2 JNDI资源 277
14.2.1 什么是JNDI 277
14.2.2 JNDI的功能 278
14.2.3 应用JNDI 279
14.3 Tomcat中使用JNDI 281
14.3.1 Tomcat中JNDI的配置过程
281
14.3.2 Tomcat中使用JavaBean资源
282
14.3.3 Tomcat中使用JavaMail Sessions
283
14.3.4 Tomcat中使用JDBC资源 284
14.4 JDBC资源 285
14.4.1 JDBC基础 285
14.4.2 JDBC资源与连接池 287
14.4.3 Tomcat连接池的使用步骤 289
14.4.4 Tomcat连接池的使用方式 291
14.4.5 实例演示 292
14.5 小结 294
第15章 Tomcat解释器 295
15.1 Tomcat解释SSI 295
15.1.1 什么是SSI 295
15.1.2 让Tomcat支持SSI 296
15.1.3 配置SSIServlet 296
15.1.4 配置SSI过滤器 297
15.1.5 SSI基本指令 298
15.2 Tomcat解释CGI 303
15.2.1 什么是CGI 303
15.2.2 让Tomcat支持CGI 303
15.2.3 配置CGIServlet 303
15.3 小结 304
第16章 Tomcat虚拟主机 305
16.1 虚拟主机技术简介 305
16.1.1 基于IP的虚拟主机 305
16.1.2 基于名称的虚拟主机 306
16.1.3 两者对比 306
16.2 Tomcat虚拟主机技术 307
16.2.1 Tomcat虚拟主机响应过程 307
16.2.2 实例演示:Tomcat虚拟主机
配置 307
16.3 小结 308
第17章 Tomcat嵌入 309
17.1 Tomcat嵌入原理 309
17.1.1 什么是Tomcat嵌入 309
17.1.2 创建Tomcat嵌入的过程 310
17.1.3 Tomcat嵌入核心类Embeded
311
17.2 实例演示:将Tomcat嵌入到Java中
313
17.2.1 开发嵌入式Tomcat服务器程序
313
17.2.2 运行嵌入式Tomcat服务器 316
17.3 小结 318
第18章 Tomcat集群与负载平衡 319
18.1 Tomcat集群 320
18.1.1 Tomcat集群的工作原理 320
18.1.2 实例演示:Tomcat集群的配置
325
18.1.3 使用JMX监控集群 333
18.2 Tomcat负载平衡 334
18.2.1 AJP1.3协议 335
18.2.2 mod_jk 341
18.3 实例演示:Apache 2负载平衡的
配置 345
18.3.1 配置JK模块 345
18.3.2 配置Tomcat 347
18.3.3 配置Apache2 348
18.4 实例演示:Apache 2.2负载平衡的
配置 349
18.5 小结 352
第19章 Tomcat安全 353
19.1 在Tomcat中配置安全策略控制Java
执行权限 353
19.1.1 概述 353
19.1.2 许可权限 354
19.1.3 Tomcat中的使用 355
19.1.4 实例演示:赋予文件权限 356
19.2 Tomcat中配置过滤阀过滤用户
非法输入 357
19.2.1 问题所在 357
19.2.2 解决办法 358
19.3 Tomcat中使用SSL进行加密防护
359
19.3.1 SSL简介 359
19.3.2 SSL和Tomcat 362
19.3.3 实例演示:在Tomcat上配置
SSL 363
19.3.4 在Tomcat上配置双向认证 367
19.3.5 从一个CA安装一个证书 368
19.4 小结 370
第20章 Tomcat性能优化 371
20.1 Tomcat性能测试 371
20.1.1 性能测试工具 371
20.1.2 测试工具列表 372
20.2 实例演示:JMeter压力测试 376
20.2.1 简单测试 376
20.2.2 登录后循环测试 377
20.2.3 JDBC测试 382
20.3 从外部优化Tomcat性能 386
20.3.1 JVM性能优化 386
20.3.2 操作系统性能优化 388
20.3.3 Tomcat与其他Web服务器整合
使用 389
20.3.4 负载均衡 389
20.4 Tomcat自身性能优化 389
20.4.1 禁用DNS查询 389
20.4.2 调整线程数 390
20.4.3 加速JSP编译速度 391
20.4.4 其他 392
20.5 容量计划 393
20.6 小结 394
第21章 Tomcat使用JMX监控 395
21.1 JMX介绍 395
21.1.1 什么是JMX 395
21.1.2 JMX体系结构 396
21.2 JMX在Tomcat中的应用 397
21.2.1 管理组件 397
21.2.2 管理admin 398
21.2.3 实例演示:实现HelloJMX 398
21.3 小结 400
第3部分 Tomcat集成配置篇
第22章 Windows下与Apache集成
403
22.1 安装独立软件 403
22.1.1 所需的软件包 403
22.1.2 安装J2SDK 404
22.1.3 安装Apache 404
22.1.4 安装Tomcat 404
22.2 实例演示:Tomcat与Apache2
集成 405
22.2.1 配置Tomcat 405
22.2.2 Apache2的配置 405
22.2.3 实例测试 407
22.2.4 Apache2.2的配置 408
22.3 小结 408
第23章 Linux下与Apache集成 409
23.1 安装独立软件 409
23.1.1 安装J2SDK 409
23.1.2 安装Tomcat 410
23.1.3 安装Apache 410
23.2 整合配置 411
23.2.1 安装mod_jk2 411
23.2.2 配置httpd.conf 412
23.2.3 新建workers2.properties 412
23.2.4 启动测试 412
23.3 小结 412
第24章 Tomcat与IIS集成 413
24.1 IIS基础 413
24.1.1 IIS简介 413
24.1.2 IIS和PWS的区别 414
24.2 IIS的安装与使用 414
24.2.1 IIS的添加 414
24.2.2 IIS运行控制 415
24.2.3 建立一个Web站点 416
24.3 实例演示:IIS与Tomcat集成 416
24.3.1 集成原理 416
24.3.2 J2SDK安装与配置 417
24.3.3 Tomcat安装与配置 417
24.3.4 JK2连接器下载与注册 417
24.3.5 新建IIS虚拟jakarta并
设置执行权限 418
24.3.6 添加ISAPI筛选器 419
24.3.7 重启IIS和Tomcat并调试 420
24.4 小结 420
第25章 Tomcat与Eclipse集成 421
25.1 Eclipse简介 421
25.1.1 历史与发展 421
25.1.2 插件式IDE 421
25.1.3 MyEclipse插件 422
25.2 Eclipse安装与配置 422
25.2.1 安装Eclipse 422
25.2.2 安装MyEclipse插件 422
25.3 实例演示:Eclipse+Tomcat集成 424
25.3.1 在MyEclipse中加入Tomcat
服务器 424
25.3.2 在MyEclipse中新建项目
HelloWorld 424
25.3.3 在MyEclipse中发布项目到
Tomcat 425
25.3.4 在MyEclipse中启动Tomcat
服务器 426
25.3.5 测试结果 426
25.4 小结 426
第26章 Tomcat与JBoss集成 427
26.1 JBoss简介 427
26.1.1 历史与发展 427
26.1.2 J2EE规范 428
26.1.3 JBoss功能套件 428
26.1.4 JBoss与Web服务器(Tomcat
和Jetty) 429
26.2 安装JBoss与Tomcat集成的
服务器 429
26.2.1 JBoss与Tomcat整合 429
26.2.2 下载和安装JBoss 430
26.2.3 启动和关闭JBoss服务器 430
26.2.4 JMX控制台 431
26.2.5 JBoss服务器配置 432
26.2.6 热部署 433
26.3 实例演示:JBoss+Tomcat+Eclipse
集成 434
26.3.1 在Eclipse中加入JBoss服务器
434
26.3.2 在Eclipse中新建项目HelloWorld
434
26.3.3 在Eclipse中发布项目到JBoss
435
26.3.4 在Eclipse中启动JBoss服务器
437
26.3.5 调试 438
26.4 小结 438
第27章 Tomcat与NetBeans集成
439
27.1 NetBeans发展历史简介 439
27.2 安装NetBeans 440
27.3 实例演示:NetBeans+Tomcat集成
440
27.3.1 在NetBeans中新建项目
HelloWorld 440
27.3.2 在NetBeans中运行
HelloWorld 442
27.3.3 调试 442
27.4 小结 442
第28章 Tomcat与JBuilder集成 443
28.1 JBuilder简介 443
28.1.1 简单介绍 443
28.1.2 版本演进历史 444
28.1.3 JBuilder2006特性 444
28.2 JBuilder2006安装与使用 445
28.2.1 安装JBuilder2006 445
28.2.2 配置自定义Tomcat 446
28.3 实例演示:JBuilder+Tomcat集成
446
28.3.1 新建项目HelloWorld 447
28.3.2 选择Tomcat服务器 447
28.3.3 新建Web应用HelloWorldWeb
447
28.3.4 新建类HelloWorld.java 448
28.3.5 新建JSP文件hello.jsp并配置
Tomcat 449
28.3.6 查看结果 450
28.3.7 运行与测试 450
28.4 小结 450
第4部分 Tomcat案例实战篇
第29章 实战博客 453
29.1 什么是博客 453
29.2 系统概述 454
29.2.1 如何获得DLOG4J 2.0 455
29.2.2 运行需求 455
29.2.3 在Tomcat中部署DLOG4J2.0
455
29.3 需求分析 455
29.3.1 概述 456
29.3.2 系统设计 456
29.4 数据库设计 457
29.4.1 dlog_attachment表 458
29.4.2 dlog_bookmark表 459
29.4.3 dlog_category表 460
29.4.4 dlog_draft表 461
29.4.5 dlog_favorite表 462
29.4.6 dlog_iptrack表 463
29.4.7 dlog_journal表 463
29.4.8 dlog_message表 465
29.4.9 dlog_param表 466
29.4.10 dlog_reference表 467
29.4.11 dlog_reply表 468
29.4.12 dlog_site表 469
29.4.13 dlog_user表 470
29.4.14 dlog_siteuser表 471
29.5 界面设计 472
29.5.1 主页面 472
29.5.2 显示文章页面 476
29.5.3 编辑文章页面 477
29.5.4 注册用户页面 478
29.5.5 编辑用户信息页面 481
29.5.6 查看用户信息页面 483
29.5.7 发送短消息页面 485
29.5.8 显示短消息页面 487
29.6 程序设计 488
29.6.1 数据库接口设计 488
29.6.2 代理模式设计 489
29.7 使用Eclipse与Tomcat开发DLOG
495
29.7.1 获得Eclipse 495
29.7.2 启动Eclipse 495
29.7.3 集成Tomcat 497
29.7.4 在Eclipse中查看源代码 499
29.7.5 在Eclipse中修改DLOG 500
29.8 配置DLOG中的Struts 501
29.8.1 Struts安装 501
29.8.2 用Struts开发一个简单的例子
501
29.9 配置DLOG中的Hibernate 505
29.9.1 Hibernate安装 505
29.9.2 添加Hibernate的配置文件 505
29.9.3 Hibernate工具类 506
29.9.4 利用Hibernate操作数据库 507
29.10 系统配置 508
29.10.1 数据库配置 508
29.10.2 Tomcat站点配置 509
29.11 小结 510
第30章 OA系统 511
30.1 OA简介 511
30.2 系统预览 512
30.2.1 部署OA系统 512
30.2.2 OA系统功能概述 515
30.3 数据库设计 516
30.3.1 公共数据表 516
30.3.2 组织机构数据表 518
30.3.3 会议管理表 520
30.4 模块设计 523
30.4.1 个人桌面 523
30.4.2 组织机构 525
30.4.3 权限控制模块 528
30.4.4 权限设置模块 530
30.4.5 会议管理模块 531
30.5 程序设计 538
30.5.1 数据库接口 538
30.5.2 数据库连接池 540
30.5.3 文件上传 541
30.5.4 文件下载 542
30.6 系统配置 543
30.6.1 连接池配置 543
30.6.2 日志配置 544
30.6.3 Tomcat站点配置 545
30.7 小结 546
第5部分 附 录
附录A 字符编码 549
A.1 ASCII、GB2312、BIG5、GBK、
GB18030 549
A.2 Unicode、UCS和UTF 549
A.3 UCS-2、UCS-4、BMP 550
A.4 UTF-8、UTF-16 550
A.5 UTF的字节序和BOM 551
附录B HTTP状态码 552