第1部分 JSP开发预备知识 1
第1章 JSP入门 2
1.1 Web介绍 2
1.2 Web客户端 2
1.2.1 浏览器访问Web服务器过程 3
1.2.2 HTTP超文本传输协议 3
1.2.3 Web浏览器体系结构 4
1.2.4 Web浏览器实现 5
1.3 Web服务器 5
1.3.1 Web服务器体系结构 5
1.3.2 Web服务器实现 6
1.4 Web开发 7
1.4.1 传统Web服务器模式开发 7
1.4.2 动态构建页面的重要性 8
1.4.3 CGI实现页面的动态生成 8
1.4.4 Java Servlet:改进的CGI 9
1.5 JSP介绍 10
1.5.1 JSP概述 10
1.5.2 Web容器处理JSP文件的3个阶段 11
1.5.3 JSP的优点 12
1.5.4 JSP与ASP的比较 12
1.5.5 JSP与PHP的比较 13
1.5.6 为什么选择JSP 14
1.6 小结 14
第2章 搭建JSP运行环境 15
2.1 安装和配置JDK 15
2.1.1 JDK的作用 15
2.1.2 安装JDK 15
2.1.3 配置JDK环境变量 17
2.2 安装和配置Web容器Tomcat 18
2.2.1 Web容器Tomcat的作用 18
2.2.2 安装Tomcat容器 18
2.2.3 启动和停止Tomcat服务器 20
2.2.4 检测Tomcat服务器启动的方法 21
2.2.5 Tomcat服务器端口号的配置 22
2.3 安装Dreamweaver编辑工具 23
2.4 安装UltraEdit文本编辑器 23
2.5 小结 23
第3章 第一个JSP应用 24
3.1 创建Web应用模块 24
3.1.1 Tomcat服务器默认Web应用模块调用路径 24
3.1.2 Tomcat服务器调用Web模块的类型 25
3.1.3 创建JSP应用的Web模块 25
3.2 Web应用的功能介绍 25
3.3 Web应用的实现 26
3.3.1 创建index.jsp页面 27
3.3.2 创建reguser.jsp页面 27
3.3.3 修改reguser.jsp页面程序 28
3.3.4 创建weluser.jsp页面 29
3.4 Web模块的发布和卸载 30
3.4.1 Web模块的发布 30
3.4.2 Web应用的运行 31
3.4.3 Web模块的卸载 31
3.4.4 修改Web应用的调用路径 31
3.5 小结 32
第4章 HTML标记语言 33
4.1 HTML简介 33
4.2 HTML基本标签 33
4.2.1 开始结束标签<html></html> 33
4.2.2 头标签<head></head> 34
4.2.3 标题标签<title></title> 34
4.2.4 主体标签<body></body> 35
4.2.5 基本标签的综合实例 35
4.3 HTML格式标签 36
4.3.1 段落标签<p></p> 36
4.3.2 换行标签<br/> 37
4.3.3 缩排标签<blockquote></blockquote> 37
4.3.4 无序号列表标签<dl></dl>、<dt></dt>及<dd></dd> 37
4.3.5 有序号列表标签<ol></ol>、<ul></ul>及<li></li> 38
4.3.6 标记标签<div></div> 39
4.4 HTML文本标签 39
4.4.1 预格式化标签<pre></pre> 39
4.4.2 文字标题标签<hl></hl>……<h6></h6> 39
4.4.3 文字格式标签<b></b>、<i></i>及<u></u> 40
4.4.4 文字风格标签<tt></tt>、<cite></cite>、<em></em>及<strong></strong> 40
4.4.5 字体标签<font></font> 40
4.4.6 文本标签的综合实例 40
4.5 HTML图像标签 41
4.5.1 图片标签<img> 41
4.5.2 分隔标签<hr/> 42
4.5.3 综合实例 42
4.6 HTML表格标签 42
4.6.1 初始表格标签<table></table> 43
4.6.2 行列标签<tr></tr>、<td></td> 43
4.6.3 表格头标签<th></th> 44
4.6.4 表格标签的综合实例 44
4.7 HTML链接标签 45
4.7.1 链接标签<a href=""></a> 45
4.7.2 标记链接标签<a name=""></a> 45
4.8 HTML框架标签 46
4.8.1 框架集标签<frameset></frameset> 46
4.8.2 框架标签<frame> 48
4.8.3 无框架标签<noframes> 48
4.8.4 框架标签的综合实例 48
4.9 HTML表单标签 50
4.9.1 表单标签<form></form> 50
4.9.2 输入框标签<input> 51
4.9.3 下拉框标签<select></select>、<option></option> 52
4.9.4 文本输入框标签<textarea> 53
4.9.5 表单标签的综合实例 53
4.10 小结 55
第5章 JavaScript脚本语言 56
5.1 JavaScript概述 56
5.2 编写第一个JavaScript脚本 57
5.3 JavaScript基本语法 58
5.3.1 常量和变量的定义 58
5.3.2 表达式和运算符 59
5.3.3 基本程序语句 61
5.3.4 JavaScript的事件 64
5.3.5 JavaScript的对象 64
5.4 小结 69
第6章 CSS层叠样式表 70
6.1 CSS的概念和特点 70
6.2 CSS的类型和基本写法 71
6.2.1 CSS的定义类型 71
6.2.2 CSS的基本写法 72
6.2.3 CSS引用产生的冲突 73
6.3 CSS中的各类属性和值 74
6.3.1 字体属性 74
6.3.2 文本属性 78
6.3.3 颜色和背景属性 82
6.3.4 边框属性的设置 84
6.3.5 鼠标光标属性的设置 85
6.3.6 定位属性 86
6.3.7 区块属性 88
6.3.8 列表属性 89
6.4 小结 90
第7章 JSP基本语法 91
7.1 JSP页面构成 91
7.2 脚本元素 91
7.2.1 JSP表达式格式 92
7.2.2 JSP小脚本格式 92
7.2.3 JSP声明格式 93
7.3 JSP的3种注释 95
7.3.1 HTML的注释方法 95
7.3.2 JSP注释标记 95
7.3.3 在JSP脚本中使用注释 96
7.3.4 注释的综合实例 96
7.4 JSP指令元素 96
7.4.1 全局指令page 97
7.4.2 文件引用指令include 103
7.4.3 taglib标签指令 105
7.5 JSP标准动作元素 106
7.5.1 JSP标准动作介绍 106
7.5.2 处理JavaBean的标准动作 107
7.5.3 引用外部文件的标准动作<jsp:include> 111
7.5.4 进行请求转移的标准动作<jsp:forward> 112
7.5.5 参数设置的标准动作<jsp:param> 112
7.5.6 处理插件的标准动作 112
7.6 小结 115
第2部分 JSP开发入门 117
第8章 JSP的内置对象 118
8.1 request内置对象 118
8.1.1 request对象常用方法 118
8.1.2 request常用方法的实例 119
8.2 response内置对象 120
8.2.1 response对象的常用方法 120
8.2.2 response对象的getWriter()方法实例 121
8.2.3 页面重定向实例 122
8.3 page内置对象 123
8.3.1 page对象的常用方法 123
8.3.2 page的常用方法实例 123
8.4 session内置对象 124
8.4.1 session对象的常用方法 124
8.4.2 问题回答操作实例 125
8.5 application内置对象 127
8.5.1 application对象与session对象的区别 127
8.5.2 application对象的常用方法 127
8.5.3 网站计数器实例 128
8.6 out内置对象 130
8.6.1 out对象的常用方法 130
8.6.2 数据输出实例 130
8.7 exception内置对象 131
8.8 config内置对象 131
8.9 pageContext内置对象 131
8.9.1 pageContext对象的常用方法 131
8.9.2 pageContext对象的简单实例 132
8.10 小结 133
第9章 Web构建工具Eclipse+Lomboz的安装和配置 134
9.1 Eclipse工具的安装和配置 134
9.1.1 Eclipse工具介绍 134
9.1.2 Eclipse的下载 135
9.1.3 Eclipse的安装 135
9.1.4 Eclipse的配置 135
9.2 Lomboz插件的安装和配置 136
9.2.1 Lomboz插件的介绍 136
9.2.2 Lomboz插件的下载 136
9.2.3 Lomboz插件的安装 137
9.3 Eclipse+Lomboz架构J2EE项目 138
9.3.1 设置Java的构建路径 138
9.3.2 Lomboz环境设置 139
9.3.3 创建一个J2EE项目实例 140
9.4 小结 143
第10章 MySQL数据库及相关工具的安装 144
10.1 MySQL数据库介绍 144
10.2 MySQL数据库和相关工具的下载 144
10.2.1 下载MySQL数据库 144
10.2.2 下载MySQL辅助工具 144
10.2.3 JDBC连接驱动包的下载 145
10.3 MySQL数据库的安装 146
10.4 MySQL数据库相关工具的安装 148
10.5 管理MySQL数据库 149
10.6 使用客户端工具创建数据库与表 149
10.6.1 创建数据库实例 150
10.6.2 创建数据库表实例 150
10.7 小结 152
第11章 核心数据库连接包JDBC 153
11.1 JDBC体系结构 153
11.2 JDBC驱动器及其类型 154
11.2.1 JDBC-ODBC桥驱动器 154
11.2.2 自然API部分支持Java技术驱动器 157
11.2.3 网络协议完全支持Java技术驱动器 157
11.2.4 自然协议完全支持Java技术驱动器 158
11.3 JDBC驱动器配置 159
11.3.1 隐式装入驱动器类 159
11.3.2 显式装入驱动器类 159
11.4 JDBC连接 159
11.4.1 数据库URL 159
11.4.2 建立连接 160
11.5 JDBC语句 161
11.5.1 Statement语句 161
11.5.2 Statement实例介绍 161
11.6 准备语PreparedStatement 163
11.6.1 PreparedStatement语句 163
11.6.2 PreparedStatement实例介绍 163
11.7 结果集ResultSet 164
11.7.1 操纵结果集 164
11.7.2 ResultSet实例介绍 164
11.8 SQL基本语句 165
11.8.1 SQL查询语句 165
11.8.2 SQL插入语句 167
11.8.3 SQL删除语句 167
11.8.4 SQL更新语句 168
11.9 SQL与Java映射 168
11.10 小结 169
第12章 用户注册登录系统实例 170
12.1 实例介绍 170
12.2 用户注册登录系统设计 170
12.2.1 系统功能图 170
12.2.2 数据库表设计 171
12.3 创建一个J2EE项目 172
12.3.1 使用Lomboz启动Web服务器 172
12.4 创建数据库表 173
12.4.1 创建数据库mydb 173
12.4.2 创建users表 173
12.4.3 创建products表 175
12.4.4 配置MySQL数据库驱动包 175
12.5 实例开发 176
12.5.1 创建首页index.jsp 176
12.5.2 创建用户注册页面register.jsp 179
12.5.3 创建用户注册处理页面do_register.jsp 182
12.5.4 创建登录页面login.jsp 183
12.5.5 创建登录处理页面chek_login.jsp 185
12.5.6 创建注销页面logout.jsp 186
12.6 小结 187
第13章 数据库连接池技术 188
13.1 连接池技术介绍 188
13.2 两种数据库连接技术的比较 188
13.2.1 传统数据库连接模式 189
13.2.2 连接池技术 189
13.3 连接池原理 189
13.4 连接池配置 190
13.4.1 Tomcat连接池配置 190
13.4.2 JNDI命名 192
13.4.3 DataSource对象和连接池 192
13.4.4 利用连接池连接数据库 193
13.5 小结 194
第14章 用JavaBean实现用户注册登录系统 195
14.1 JavaBean环境配置 195
14.2 创建JavaBean 196
14.2.1 数据库操作类DBConnect.java 197
14.2.2 创建用户接口类User.java和抽象类AbstractUser.java 201
14.2.3 SqlUser.java用户操作类 203
14.2.4 创建商品接口类Product.java和抽象类AbstractProduct.java 205
14.2.5 SqlProduct.java商品操作类 206
14.2.6 创建工厂类Factory.java和SqlFactory.java 207
14.2.7 创建日期格式转换类DateFormat.java 208
14.2.8 MD5.java类 208
14.3 实现登录验证码 215
14.4 修改JSP页面 216
14.4.1 修改首页index.jsp 216
14.4.2 修改用户注册处理页面do_register.jsp 218
14.4.3 修改登录页面login.jsp 219
14.4.4 修改登录处理页面chek_login.jsp 219
14.5 小结 220
第15章 国际化、本地化与中文乱码问题 221
15.1 Web应用程序的国际化与本地化 221
15.1.1 日期的国际化 221
15.1.2 实现多国语言版本的JSP实例 223
15.2 中文乱码问题 227
15.2.1 字符集介绍 227
15.2.2 产生乱码的原因 228
15.2.3 解决方法 229
15.2.4 中文乱码的深层解决方法 230
15.3 小结 231
第3部分 JSP标签与EL表达式 233
第16章 自定义标签的开发 234
16.1 标签库的体系结构 234
16.1.1 自定义标签库的概念 234
16.1.2 自定义标签与JavaBean之间的区别 238
16.2 自定义标签的开发实例 238
16.2.1 简单格式的标签开发 238
16.2.2 定义带有属性的标签 240
16.2.3 自定义带有体的标签 243
16.2.4 标签体中嵌套其他子标签 246
16.3 JSP2.0新特性——简单标签处理类的开发 249
16.3.1 简单标签简介 249
16.3.2 简单标签实例 250
16.4 标签文件 251
16.4.1 静态标签文件 251
16.4.2 动态标签文件 252
16.5 小结 253
第17章 标准标签库JSTL 255
17.1 JSTL简介 255
17.1.1 使用JSTL的优点 256
17.2 JSTL的安装 256
17.2.1 JSTL标签库的下载 256
17.2.2 安装配置JSTL标签库 257
17.2.3 实例示范 258
17.3 核心标签库 259
17.3.1 表达式操作标签 259
17.3.2 流程控制标签 265
17.3.3 URL相关的标签 271
17.4 国际化(I18N)标签库 275
17.4.1 设置本地化环境标签<fmt:setLocale> 275
17.4.2 执行信息资源标签<fmt:bundle> 276
17.4.3 获取资源属性值标签<fmt:message> 276
17.4.4 设置资源文件标签<fmt:setBundle> 276
17.4.5 获取参数值标签<fmt:param> 277
17.4.6 综合实例 277
17.4.7 格式化日期、货币的实例 280
17.5 XML标签库 283
17.5.1 XPath介绍 283
17.5.2 XML核心动作标签 285
17.5.3 XML的流程控制动作 289
17.5.4 XML的转换动作 293
17.6 函数(function)标签库 296
17.6.1 综合实例 297
17.7 SQL标签库 299
17.7.1 综合实例 299
17.8 小结 301
第18章 EL表达式语言 302
18.1 EL表达式语言简介 302
18.1.1 EL表达式的简单介绍 302
18.1.2 EL表达式的特点和使用范围 303
18.2 EL语法 303
18.2.1 EL中包含的文字 304
18.2.2 运算符“[]和“.” 304
18.2.3 EL中的基本算术运算符 305
18.2.4 EL的基本算术运算实例 306
18.2.5 EL中的关系运算符 307
18.2.6 EL的关系运算实例 309
18.2.7 逻辑运算符 312
18.2.8 empty运算符 312
18.2.9 其他运算符 313
18.3 EL中的隐含对象 313
18.3.1 EL中的pageContext隐含对象实例演示 314
18.3.2 EL中header、headerValues、param、paramValues隐含对象实例演示 316
18.3.3 EL中pageScope、requestScope、sessionScope、applicationScope隐含对象实例演示 318
18.3.4 cookie和initParam隐含对象 319
18.4 EL中调用自定义函数 319
18.5 小结 321
第4部分 Servlet编程 323
第19章 Java Servlet开发 324
19.1 什么是Servlet 324
19.2 Servlet体系结构 324
19.2.1 Servlet逻辑与物理体系结构 324
19.2.2 Servlet生命周期 325
19.3 Servlet实现 325
19.3.1 Serlvet接口 326
19.3.2 HttpServlet类 326
19.3.3 初始化Servlet类 327
19.3.4 编写服务方法 327
19.3.5 Servlet代码结构 329
19.3.6 配置Servlet 329
19.3.7 一个简单的Servlet实例 330
19.4 Servlet处理表单数据 331
19.4.1 创建用户提交页面 331
19.4.2 创建Servlet处理类 331
19.4.3 Servlet类声明 333
19.5 小结 333
第20章 Servlet过滤器和监听器 334
20.1 Servlet过滤器 334
20.1.1 过滤器简介 334
20.1.2 Servlet过滤器体系结构 335
20.1.3 实现一个Servlet过滤器 336
20.1.4 过滤器的一些应用 338
20.1.5 使过滤器适应MVC体系结构 339
20.2 Servlet事件监听器 339
20.2.1 Servlet上下文监听器实例 340
20.2.2 Http会话监听器实例 342
20.2.3 客户端请求监听器实例 345
20.3 小结 346
第5部分 JSP高级开发 347
第21章 Ajax开发 348
21.1 Ajax介绍 348
21.2 传统Web开发模式 349
21.3 基于Ajax的开发模式 350
21.4 两种执行模式的比较 351
21.4.1 传统Web模式的工作流程 351
21.4.2 Ajax程序的工作流程 351
21.5 Ajax带来的好处 352
21.6 谁在使用Ajax 353
21.7 Ajax使用到的技术 353
21.7.1 JavaScript脚本语言 353
21.7.2 XMLHttpRequest对象 353
21.7.3 DOM文档对象模型 359
21.7.4 XML/JSON数据表示技术 366
21.8 Ajax开发过程 370
21.8.1 初始化对象并发送XMLHttpRequest请求 370
21.8.2 定义响应事件处理函数 371
21.8.3 发送HTTP请求 371
21.8.4 处理服务器返回信息 371
21.8.5 总体开发框架 372
21.9 Ajax的主要应用范围 373
21.9.1 数据验证 373
21.9.2 数据验证实例 373
21.9.3 按需获取数据 374
21.9.4 按需获取数据实例 375
21.9.5 读取外部数据 376
21.10 Ajax综合实例 376
21.10.1 创建前台daohang.html文件 376
21.10.2 创建tags、contents数据库表 379
21.10.3 创建处理类getTags.java和getContent.java 379
21.10.4 在web.xml中声明Servlet类 381
21.11 Ajax存在的问题 381
21.11.1 用户对浏览Ajax网站的方式不习惯 382
21.11.2 对搜索引擎不友好 382
21.11.3 前进后退功能失效 382
21.11.4 刷新定位问题 382
21.11.5 性能问题 383
21.11.6 开发难度大 383
21.12 小结 383
第22章 模型-视图-控制器(MVC)框架 384
22.1 什么是框架 384
22.2 Model1模式的概念和原理 384
22.2.1 纯JSP文件开发方式 385
22.2.2 JSP+JavaBean开发方式 385
22.3 Model2(MVC)模式的概念和原理 386
22.4 Model1和Model2模式的比较 387
22.5 MVC简单实例 388
22.5.1 实现数据模型层(Model) 388
22.5.2 实现控制层(Control) 390
22.5.3 实现视图层(View) 391
22.5.4 Servlet配置 393
22.5.5 要点归纳 393
22.6 小结 394
第23章 使用Struts控制器简化MVC开发 395
23.1 Struts介绍 395
23.1.1 Struts的体系结构 395
23.1.2 为什么使用Struts 397
23.2 Struts的安装和配置 397
23.2.1 Struts下载 397
23.2.2 Struts的安装和配置 398
23.3 使Dreamweaver支持Struts标签 401
23.3.1 下载插件 401
23.3.2 安装插件 401
23.3.3 在Dreamweaver中添加Struts标签 402
23.4 struts-config.xml配置文件 402
23.4.1 <global-exceptions>元素 403
23.4.2 <form-beans>元素 403
23.4.3 <global-forward>元素 404
23.4.4 <action-mappings>元素 405
23.4.5 <controller>元素 405
23.4.6 <Message-Resources>元素 406
23.4.7 <plug-in>元素 406
23.4.8 <data-sources>元素 406
23.4.9 同一模块中使用多个配置文件 407
23.5 Struts标签库 407
23.5.1 Bean标签库 408
23.5.2 逻辑标签logic 410
23.5.3 HTML标签 414
23.6 小结 420
第24章 JSP+Struts开发实例 421
24.1 创建Struts项目 421
24.1.1 构建一个J2EE项目 421
24.1.2 引用JavaBean类 422
24.1.3 Struts项目开发步骤 422
24.2 Struts开发 422
24.2.1 创建登录首页index.jsp页面 422
24.2.2 创建用户登录login.jsp页面 424
24.2.3 创建LoginForm.java类 426
24.2.4 创建LoginAction.java类 428
24.2.5 创建LogoutAction.java类 431
24.2.6 构造Constants类 432
24.2.7 struts-config.xml文件配置 432
24.2.8 资源文件MessageResources.properties 435
24.3 小结 436
第25章 Hibernate数据库持久层技术 437
25.1 Hibernate概述 437
25.1.1 什么是持久层技术 437
25.1.2 Hibernate简介 438
25.2 Hibernate的安装和配置 439
25.2.1 下载Hibernate 439
25.2.2 安装和配置Hibernate 440
25.3 Hibernate的实例讲解 442
25.3.1 session对象 443
25.3.2 创建HibernateUtil类 443
25.3.3 创建model.hbm.xml数据库映射文件 444
25.3.4 创建HibernateTest类进行数据库操作 447
25.3.5 创建页面显示hibernateTest.jsp文件 448
25.3.6 要点归纳 450
25.4 深入XML映射文件 450
25.4.1 继承映射 450
25.4.2 集合映射 453
25.4.3 实体映射 459
25.5 HQL语句 468
25.5.1 from字句 468
25.5.2 联合(association)和连接(join)查询 468
25.5.3 select子句 468
25.5.4 统计函数 469
25.5.5 多态查询 469
25.5.6 where子句 469
25.5.7 表达式 469
25.5.8 order by子句 471
25.5.9 group by子句 471
25.5.10 子查询 472
25.6 小结 472
第26章 JSP+Struts+Hibernate开发实例 473
26.1 实例介绍 473
26.1.1 实例所实现的功能 473
26.1.2 文件的结构 474
26.2 Struts+Hibernate开发 475
26.2.1 创建实体类 475
26.2.2 创建XML配置文件 477
26.2.3 创建数据库表 480
26.2.4 创建相应的操作类 481
26.2.5 创建Struts的Action和ActionForm类 485
26.2.6 创建页面JSP文件 487
26.2.7 运行Web应用 490
26.3 Hibernate的自动生成工具 490
26.4 小结 491
第6部分 JSP实战开发 493
第27章 新闻发布系统:项目开发流程 494
27.1 Web开发方式的总结 494
27.1.1 纯JSP页面的Web开发 494
27.1.2 JSP+JavaBean的Web开发 494
27.1.3 JSP+Struts的Web开发 494
27.1.4 JSP+Struts+Hibernate的Web开发 495
27.1.5 自定义标签库、标准标签库的Web开发——JSP2.0范畴 495
27.2 软件开发的基本过程 495
27.2.1 需求分析阶段 495
27.2.2 系统设计阶段 496
27.2.3 开发和测试阶段 496
27.2.4 交付使用和维护阶段 496
27.3 CVS安装和配置 497
27.3.1 CVS服务器端的安装和配置 497
27.3.2 CVS客户端配置 499
27.4 数据库连接 502
27.4.1 数据库连接方式的总结 502
27.4.2 PoolMan第三方数据库连接池 502
27.4.3 配置poolman.xml文件 502
27.4.4 创建数据库连接和操作类DBConnect.java 504
27.5 小结 507
第28章 新闻发布系统:需求分析与初步设计 508
28.1 需求分析 508
28.1.1 用户功能 508
28.1.2 管理员功能 508
28.2 系统功能设计 509
28.2.1 功能模块设计 509
28.2.2 页面基本流程设计 509
28.3 数据库设计 510
28.3.1 新闻表news 510
28.3.2 新闻分类表newsBoard 511
28.3.3 图片表pic 511
28.3.4 用户表userinfo 512
28.4 创建J2EE项目 513
28.4.1 项目开发环境 513
28.4.2 项目创建 514
28.5 创建工厂类Factory和SqlFactory 514
28.5.1 Factory抽象类的创建 514
28.5.2 SqlFactory类的创建 515
28.6 小结 516
第29章 新闻发布系统:图片管理模块 517
29.1 需要创建的文件 517
29.1.1 图片上传的相关文件 517
29.1.2 图片管理的相关文件 517
29.1.3 图片选择的相关文件 517
29.1.4 创建相应的JavaBean类文件 517
29.2 实现图片上传功能 518
29.2.1 图片上传页面uploadpic.jsp 518
29.2.2 处理图片上传页面uploadpicok.jsp 524
29.3 实现图片管理功能 527
29.3.1 图片管理的主页面picmanagement.jsp 527
29.3.2 图片信息修改页面editpic.jsp 535
29.3.3 处理图片信息修改的页面editpicok.jsp 539
29.3.4 图片删除页面deletepic.jsp 541
29.4 实现图片选择功能 542
29.5 创建相应的JavaBean类文件 548
29.5.1 图片的接口类Pic.java 548
29.5.2 图片的实现类SqlPic.java 549
29.5.3 图片操作的抽象类PicFactory.java 550
29.5.4 图片操作的继承类SqlPicFactory.java 550
29.6 小结 554
第30章 新闻发布系统:新闻发布功能模块 555
30.1 需要创建的文件 555
30.1.1 添加新闻分类版块JSP页面 555
30.1.2 新闻分类的管理JSP页面 555
30.1.3 新闻发布JSP页面 555
30.1.4 新闻管理JSP页面 556
30.1.5 新闻模板文件 556
30.1.6 JavaBean类文件 556
30.2 实现新闻分类的添加功能 557
30.2.1 添加新闻分类的页面addnewsboard.jsp 557
30.2.2 处理新闻分类添加的页面addNewsBoardok.jsp 560
30.3 实现新闻分类的管理功能 561
30.3.1 修改新闻分类的页面editnewsboard.jsp 561
30.3.2 处理新闻分类修改的页面editnewsboardok.jsp 562
30.3.3 删除新闻分类的页面delnewsboard.jsp 563
30.4 实现新闻发布功能 564
30.4.1 新闻发布页面publicnews.jsp 564
30.4.2 处理新闻发布的页面publishnewsok.jsp 569
30.5 实现文本编辑器功能 572
30.5.1 文本编辑页面editpaper.jsp 572
30.5.2 文本编辑操作的JavaScript文件editpaper.js 578
30.5.3 publishphotonews.jsp图片新闻的发布页面 583
30.6 实现图片新闻发布功能 587
30.6.1 处理图片新闻发布的页面publishphotonewsok.jsjp 587
30.7 实现新闻管理功能 590
30.7.1 新闻管理的主页面newsmanagement.jsp 590
30.7.2 修改新闻头条和热点的页面changetophot.jsp 592
30.7.3 新闻移动的页面movenews.jsp 594
30.7.4 处理新闻移动的页面movenewsok.jsp 596
30.7.5 实现新闻重发的页面republishnews.jsp 597
30.7.6 删除新闻的页面delnews.jsp 598
30.8 创建新闻模板文件news.template 599
30.9 创建相应的JavaBean类文件 602
30.9.1 新闻分类的接口类NewsBoard.java 602
30.9.2 新闻分类的实现类SqlNewsBoard.java 603
30.9.3 新闻分类的操作抽象类NewsBoardFactory.java 603
30.9.4 新闻分类的操作继承类SqlNewsBoardFactory.java 603
30.9.5 新闻的接口类News.java 605
30.9.6 新闻的实现类SqlNews.java 606
30.9.7 新闻操作的抽象类NewsFactory.java 607
30.9.8 新闻操作的继承类SqlNewsFactory.java 608
30.9.9 文件读取操作类ReadTemplates.java 616
30.9.10 标签替换操作类ReplaceAll.java 617
30.9.11 写文件操作类WriteHtml.java 618
30.10 小结 619
第31章 BBS系统 620
31.1 系统总体设计 620
31.1.1 系统结构 620
31.1.2 系统功能简介 621
31.1.3 数据库设计 623
31.2 系统主界面与浏览论坛 629
31.2.1 首页与系统全局模板页面及出错页面 630
31.2.2 显示论坛分类列表 633
31.2.3 显示论坛主题列表 636
31.2.4 显示主题内容 642
31.2.5 搜索论坛内容 650
31.3 用户信息处理 655
31.3.1 用户注册 655
31.3.2 用户登录 663
31.3.3 用户退出 665
31.3.4 修改注册信息 666
31.3.5 修改用户密码 667
31.3.6 查看用户信息 668
31.4 发贴与投票 672
31.4.1 发表新主题 672
31.4.2 处理发贴操作的Action和ActionForm 675
31.4.3 处理文件上传 681
31.4.4 处理发贴操作的Bean 683
31.4.5 回复主题 684
31.4.6 重新编辑发表的内容 684
31.4.7 发表投票主题 685
31.4.8 用户投票处理 686
31.4.9 处理投票的Bean 688
31.4.10 显示投票 689
31.5 论坛管理 692
31.5.1 前台管理 692
31.5.2 添加论坛分类 696
31.5.3 编辑论坛属性 701
31.5.4 锁定用户 702
31.6 系统全局模块与配置 706
31.6.1 系统全局常量 706
31.6.2 字符的处理 706
31.6.3 session监听 707
31.6.4 数据源的配置 708
31.6.5 系统配置文件 708
31.7 小结 711