1.1.1 什么是JSP 3
1.1.2 为什么要用JSP 3
第一部分 JSP基本技术 3
第1章 初识JSP 3
1.1 JSP简介 3
1.1.3 动态网页开发技术比较 4
1.2.1 JDK的安装与配置 5
1.2 建立JSP的运行环境 5
1.2.2 Tomcat的安装 6
1.2.4 Eclipse安装与配置 8
1.2.3 Tomcat的配置与运行 8
1.2.5 Eclipse中文语言包的安装 10
1.2.7 建立开发环境 11
1.2.6 安装Tomcat插件 11
1.2.8 在Eclipse中创建JSP 12
代码1-1 文件名:HelloJSP.jsp 13
1.3 JSP起步 13
1.4 小结 14
2.1 HTTP请求/响应模型 15
第2章 HTTP和Servlet基础 15
2.3 JSP页面处理过程 16
2.2 Scrvlet简介 16
2.4 Servlet生命周期 17
2.5 简单Servlet实例 18
代码2-1 文件名:SimpleServlet.java 19
代码2-2 文件名:Web.xml 20
2.6 小结 21
3.1 JSP模板文本 23
3.1.1 HTML文本 23
第3章 JSP基本语法 23
3.1.2 HTML注释 24
代码3-1 文件名:Test1.jsp 24
代码3-2 文件名:Test2.jsp 25
3.1.4 JSP注释 26
3.1.3 JSP转义字符 26
代码3-3 文件名:Test.jsp 27
3.2 JSP脚本元素 27
3.2.2 JSP表达式元素 28
3.2.1 JSP声明元素 28
代码3-4 文件名:Expression.jsp 28
3.2.3 JSP脚本小程序元素 29
3.3 JSP指令元素 30
代码3-5 文件名:Travell.jsp 30
3.3.1 页面指令元素:page 31
3.3.2 页面包含指令元素:include 32
代码3-6 文件名:Page.jsp 32
代码3-7 文件名:Include.jsp 33
代码3-8 文件名:TestInclude.jsp 33
3.4.1 页面包含操作:include 34
3.3.3 标签指令元素:taglib 34
3.4 JSP标准操作元素 34
代码3-10 文件名:Include.jsp 35
代码3-9 文件名:IncludeTo.jsp 35
3.4.2 页面重定向操作:forward 36
代码3-11 文件名:Forward.jsp 36
3.4.4 JavaBean调用操作:useBean 37
代码3-12 文件名:Welcome.jsp 37
3.4.3 参数传递操作:param 37
3.4.5 JavaBean属性设置操作:setProperty 39
3.4.6 JavaBean属性读取操作:getProperty 39
代码3-13 文件名:Login.jsp 40
代码3-14 文件名:Error.jsp 41
代码3-15 文件名:Login.java 41
3.4.7 Applet嵌入操作:plugin 43
代码21-2 文件名:UserListServlet.java 43
代码3-16 文件名:Testapplet.java 44
3.5 小结 45
代码3-17 文件名:Applet-plugin.jsp 45
第4章 JSP内置对象 47
4.1 request请求对象 47
4.1.1 主要函数简介 47
4.1.2 request对象主要函数的使用 49
代码4-1 文件名:Request.jsp 49
4.1.3 在Servlet使用request对象 50
代码4-2 文件名:RequestInfo.java 51
代码4-4 文件名:RequestHeaderExample.java 52
4.1.4 在Servlet中获得request对象的Header 52
代码4-3 文件名:web.xml 52
代码4-5 文件名:web.xml 53
4.2.1 主要函数简介 54
4.2.2 Response对象主要函数的使用 54
代码4-6 文件名:Response.jsp 54
4.2 response响应对象 54
4.3.1 主要函数简介 56
4.3 out输出对象 56
4.3.2 out对象主要函数的使用 57
代码4-7 文件名:Out.jsp 57
4.4 pageContext页面上下文对象 58
4.4.1 主要函数简介 58
代码4-8 文件名:PageContext.jsp 59
4.4.2 PageContext对象主要函数的使用 59
代码4-10 文件名:TestPageCon.jsp 60
代码4-9 文件名:TestPageContext.jsp 60
4.5 session会话对象 61
4.5.1 主要函数简介 61
4.5.2 session对象主要函数的使用 62
代码4-11 文件名:Session1.jsp 62
代码4-12 文件名:Session2.jsp 62
代码4-13 文件名:Session3.jsp 63
4.5.3 在JSP和Servlet之间传递数据 64
代码4-14 文件名:SessionExample.java 64
代码4-15 文件名:web.xml 65
代码4-16 文件名:SessionServlet.jsp 65
4.6.1 主要函数简介 67
4.6 application应用程序对象 67
4.6.2 application对象主要函数的使用 67
代码4-17 文件名:Application.jsp 67
4.7.1 主要函数简介 68
4.7 page页面对象 68
代码4-18 文件名:Page.jsp 69
4.7.2 page对象的简单例程 69
4.8.2 config对象主要函数的使用 70
代码4-19 文件名:web.xml 70
4.8.1 主要函数简介 70
4.8 config参数配置对象 70
代码4-20 文件名:config.jsp 71
4.9 exception异常处理对象 72
4.10 小结 72
4.9.1 主要函数简介 72
4.9.2 自定义错误页面 72
第5章 JavaBean在JSP中的应用 75
5.1 JavaBean简介 75
5.1.1 JavaBean是什么 75
5.1.2 使用JavaBean的原因 76
5.2 JavaBean的开发 76
代码5-1 文件名:GuessGame.java 76
5.3 在JSP中使用JavaBean 78
5.3.1 调用JavaBean 78
代码5-2 文件名:GuessGame.jsp 79
5.3.2 设置JavaBean的属性 80
代码5-3 文件名:Bean_Indexed.java 81
代码5-4 文件名:Counter.java 82
5.3.3 共享JavaBean 82
代码5-5 文件名:Online.jsp 83
5.4 小结 84
6.1 MVC框架简介 85
第6章 Servlet和JSP的集成——MVC框架 85
6.1.1 MVC框架是什么 85
6.1.2 使用MVC框架的原因 86
6.2.1 Model层的实现 87
6.2 实现MVC 87
代码6-1 文件名:model_Bean 88
代码6-2 文件名:view_Table.jsp 89
6.2.2 View层的实现 89
6.2.3 Control层的实现 89
代码6-3 文件名:controller_Servlet.java 89
代码6-4 文件名:web.xml 90
6.3 3种数据共享方式的对比 91
6.3.1 基于请求的共享 91
6.3.2 基于会话的共享 91
6.4 Web组件的3种关联关系 92
6.3.3 基于应用的共享 92
6.3.4 小结 92
6.4.1 请求转发 93
6.4.2 请求重定向 93
6.5 3种典型的会话跟踪方法 94
6.4.3 包含 94
6.5.1 使用Cookie 95
6.5.2 URL重写 96
6.5.3 隐藏的表单域 96
6.6 小结 97
第7章 JSP开发中的常用技巧 99
7.1 JSP程序的国际化与本地化 99
7.1.1 使用时间格式 99
7.1.2 格式化日期和时间 100
代码7-1 文件名:DateFormat.jsp 100
7.1.3 语言的国际化 101
代码7-2 文件名:Unicode.jsp 102
代码7-3 文件名:Japanese_Hello.jsp 103
7.2 中文乱码的问题 104
7.2.1 JSP页面显示时的中文乱码问题 104
代码7-4 文件名:Chinese_Error.jsp 104
代码7-5 文件名:Chinese_True.jsp 105
代码7-7 文件名:Chinese_Print.jsp 106
7.2.2 JSP页面传递中文参数时的乱码问题 106
代码7-6 文件名:Chinese_Input.jsp 106
7.2.3 Servlet处理中文参数时的乱码问题 107
代码7-9 文件名:web.xml 108
代码7-10 文件名:Poetry_Servlet.java 108
代码7-8 文件名:Poetry_Input.jsp 108
代码7-12 文件名:Url_print.jsp 111
代码7-11 文件名:Url_Input.jsp 111
7.2.4 URL传递的中文参数的乱码问题 111
7.3.1 错误的过程和分类 113
7.3.2 HTTP状态码 113
7.3 错误处理问题 113
代码7-14 文件名:NotFound.jsp 114
7.3.3 商业应用中友好错误处理方式的实现 114
代码7-13 文件名:Welcome.jsp 114
代码7-16 文件名:web.xml 115
代码7-15 文件名:Error_500.jsp 115
代码7-17 文件名:ErrorPage.jsp 116
7.3.4 用errorPage属性创建错误处理页面 116
7.4 在JSP中动态生成图像 117
代码7-18 文件名:Error_Make.jsp 117
7.4.2 动态生成图像例程 118
代码7-19 文件名:DynamicPic.jsp 118
7.4.1 动态生成图像的技术设计思路 118
7.5 小结 120
8.1.2 为什么要用表达式语言 123
8.1.1 表达式语言是什么 123
第二部分 JSP高级技术 123
第8章 JSP 2.0表达式语言(EL) 123
8.1 表达式语言简介 123
代码8-1 文件名:Call.jsp 124
8.2 表达式语言的使用 124
8.2.1 调用表达式语言 124
8.2.2 禁止解析表达式语言 125
代码8-2 文件名:web.xml 125
代码8-3 文件名:Disable.jsp 126
8.3 表达式求值 127
8.3.1 运算符求值 127
代码8-4 文件名:Calculate.jsp 127
代码8-5 文件名:Compare.jsp 128
8.3.2 条件求值 130
8.4 访问作用域变量 131
代码8-6 文件名:Condition.jsp 131
代码8-7 文件名:Scope.java 131
代码8-8 文件名:Scope.jsp 132
代码8-9 文件名:web.xml 133
8.5 隐含对象 133
代码8-10 文件名:Implicit-object.jsp 134
8.6 存取运算符 135
8.6.1 访问JavaBean的属性 135
8.6.2 访问集合中的元素 138
代码8-11 文件名:SetAccess.java 138
代码8-12 文件名:SetAccess.jsp 139
8.7 定义与使用函数 140
代码8-13 文件名:web.xml 140
代码8-15 文件名:el_fun.tld 141
代码8-14 文件名:Fun.java 141
代码8-16 文件名:fun_test.jsp 142
8.8 小结 143
9.1 JSTL简介 145
9.1.1 JSTL是什么 145
第9章 JSP标准标签库(JSTL 1.1) 145
代码9-1 文件名:scriptlet.jsp 146
9.1.2 为什么要用JSTL 146
9.1.3 安装配置JSTL 147
代码9-2 文件名:tag.jsp 147
9.2.1 输出计算结果标签〈c:out〉 148
9.2 JSTL的核心标签 148
代码9-3 文件名:printData.jsp 149
9.2.2 设置对象值属性标签〈c:set〉 150
9.2.3 删除对象值属性标签〈c:remove〉 151
代码9-4 文件名:setvalue.jsp 151
代码9-5 文件名:removevar.jsp 152
9.2.4 捕获异常标签〈c:catch〉 152
代码9-6 文件名:catchexception.jsp 153
代码9-7 文件名:conditiontest.jsp 154
9.2.5 if条件判断标签〈c:if〉 154
9.2.6 choose条件判断标签〈c:choose〉 155
9.2.7 条件分支标签〈c:when〉 155
代码9-8 文件名:travel.jsp 156
9.2.8 其他条件分支标签〈c:otherwise〉 156
9.2.9 迭代标签〈c:forEach〉 157
代码9-9 文件名:printeven_number.jsp 158
9.2.10 处理TokenString专用迭代标签〈c:forTokens〉 158
代码9-10 文件名:printstring.jsp 159
9.2.11 导入URL资源标签〈c:import〉 160
代码9-12 文件名:welcome.jsp 161
代码9-11 文件名:import_URL.jsp 161
9.2.12 构造URL标签〈c:url〉 162
代码9-13 文件名:URL_build.jsp 162
9.2.13 重定向URL标签〈c:redirect〉 163
代码9-14 文件名:URL_redirect.jsp 163
9.2.14 URL参数传递标签〈c:param〉 164
代码9-15 文件名:trans_param.jsp 164
9.3 JSTL的XML标签 165
9.3.1 XPath简介 165
9.3.2 解析XML文件标签〈x:parse〉 165
9.3.3 输出XML文件标签〈x:out〉 166
代码9-16 文件名:pictures.jsp 166
9.3.4 存储XPath处理结果标签〈x:set〉 167
代码9-17 文件名:pictures.xml 167
9.3.5 转换XML标签〈x:transform〉 168
代码9-18 文件名:result_store.jsp 168
9.4.1 设置时区标签〈fmt:timeZone〉 170
9.4 JSTL的格式化/国际化标签 170
9.3.6 XML参数传递标签〈x:param〉 170
代码9-19 文件名:set_timezone.jsp 171
9.4.2 存储时区设置标签〈fmt:setTimeZone〉 172
9.4.4 解析日期/时间值标签〈fmt:parseDate〉 173
9.4.3 格式化日期/时间标签〈fmt:formatDate〉 173
代码9-20 文件名:parseDate.jsp 174
9.4.5 格式化数值标签〈fmt:formatNumber〉 175
代码9-21 文件名:formatNumber.jsp 176
9.4.6 解析数值字符串标签〈fmt:parseNumber〉 177
9.4.7 设置语言环境标签〈fmt:setLocale〉 178
代码9-22 文件名:setLocale.jsp 179
9.4.8 选择资源包标签〈fmt:bundle〉 179
9.4.10 文本本地化标签〈fmt:message〉 180
9.4.9 设置缺省资源包标签〈fmt:setBundle〉 180
代码9-23 文件名:inter_taglib.jsp 181
9.5 JSTL的函数标签 182
9.4.11 传递文本消息参数值标签〈fmt:param〉 182
9.4.12 指定字符编码标签〈fmt:requestEncoding〉 182
9.6 小结 183
第10章 创建自定义标签 185
10.1 JSP标签库 185
10.1.1 标签的工作原理 185
10.1.2 自定义标签的构成 185
10.1.3 自定义标签入门实例 186
代码10-1 文件名:Welcome.java 186
代码10-2 文件名:mytag.tld 187
代码10-3 文件名:web.xml 188
代码10-4 文件名:Welcome.jsp 188
10.2 开发自定义标签 189
10.2.1 开发带属性的标签 189
代码10-5 文件名:TimeTag.java 190
代码10-7 文件名:time.jsp 190
代码10-6 文件名:mytag.tld 190
代码10-8 文件名:BodyTag.java 191
10.2.2 开发带标签体的标签 191
代码10-9 文件名:mytag.tld 193
代码10-10 文件名:BodyTag.jsp 193
10.3 标签开发技巧 194
10.3.1 使用SimpleTag接口简化自定义标签的开发 194
代码10-11 文件名:Welcome_SimpleTag.java 194
代码10-13 文件名:Welcome_SimpleTag.jsp 195
代码10-12 文件名:mytag.tld 195
代码10-14 文件名:IfTag.java 196
10.3.2 多个标签的嵌套 196
代码10-15 文件名:OutTag.java 197
代码10-17 文件名:vcorworktag.jsp 198
代码10-16 文件名:mytag.tld 198
10.3.3 开发迭代标签库 199
代码10-19 文件名:mytag.tld 200
代码10-18 文件名:IterateTag.java 200
代码10-20 文件名:iteratetag.jsp 200
10.4 小结 201
第11章 使用Struts控制器简化MVC开发 203
11.1 Struts简介 203
11.1.1 Struts是什么 203
11.1.2 为什么要用Struts 204
11.1.3 安装配置Struts 204
11.2.1 配置web.xml 205
11.2 配置Struts应用 205
代码11-1 文件名:web.xml 206
代码11-2 文件名:struts-config.xml 208
11.2.2 Struts配置文件 208
11.3.2 ActionMapping组件:存储映射信息 212
11.3.3 ActionForm组件:保存请求的参数 212
11.3.1 ActionServlet组件:控制器 212
11.3 Struts主要控制器组件 212
11.3.4 Action组件:将请求与业务逻辑分开 213
11.4 Struts标签库 213
11.4.1 Struts-html标签库:创建动态HTML用户界面 214
11.4.2 Struts-bean标签库:将JavaBean代码放到JSP页面 214
11.5 Struts开发实例 215
代码11-3 文件名:WelcomeAction.java 217
代码11-4 文件名:WelcometoStruts.jsp 218
代码11-5 文件名:MessageResources.properties 218
代码11-6 文件名:Struts-config.xml 218
11.6 小结 219
第12章 使用Servlet 2.4过滤器和监听器 221
12.1.1 过滤器的用途 221
12.1 Servlet过滤器 221
12.1.2 配置过滤器 222
12.1.3 版权过滤器应用实例 223
代码12-1 文件名:CopyrightFilter.java 223
代码12-2 文件名:web.xml 224
代码12-3 文件名:HelloJSP.jsp 225
12.1.4 禁止未授权的IP访问站点过滤器应用实例 226
代码12-4 文件名:FilterIP.java 226
代码12-5 文件名:web.xml 227
代码12-6 文件名:Succeed.jsp 227
代码12-7 文件名:ErrorInfo.jsp 228
12.2.1 监听器的原理 228
12.2 Servlet监听器 228
12.2.3 监听器应用实例:在线用户监听器 229
12.2.2 监听器的类型 229
代码12-8 文件名:OnlineUserSet.java 230
代码12-9 文件名:OnlineListener.java 231
12.2.4 监听器应用实例:在线用户监听器测试 232
代码12-10 文件名:web.xml 232
代码12-11 文件名:Login.jsp 232
代码12-12 文件名:UserList.jsp 232
12.3 小结 234
13.1.1 MySQL简介 235
第13章 数据库访问——JDBC 235
13.1 MySQL数据库基础 235
13.1.2 MySQL的安装 236
13.1 MySQL的配置 237
13.1.5 增加数据 238
13.1.4 创建数据表 238
13.1.6 修改数据 239
13.1.7 删除数据 239
13.1.8 删除全部数据 239
13.2.1 连接MySQL数据库 240
13.1.9 删除表 240
13.2 用JDBC连接MySQL数据库 240
代码13-1 文件名:MySQLTest.jsp 241
代码13-2 文件名:MySQLTest.jsp 242
13.2.2 操作MySQL数据库 242
13.3 JDBC基础 243
13.3.1 JDBC简介 244
13.3.2 数据库的连接 245
13.3.3 数据库的操作 247
代码13-3 Connection接口类例程 247
代码13-6 PreparedStatement类例程 248
13.3.4 使用数据库的事务 248
代码13-4 Statement类例程 248
代码13-5 PreparedStatement类例程 248
代码13-7 数据库事务使用例程 249
13.3.5 ResultSet简介 249
代码13-8 ResultSet结果集例程 250
13.4 用JDBC连接其他数据库 250
13.4.1 连接其他数据库 250
13.4.2 通用数据库连接实例 252
代码13-9 通用数据库连接演示例程 252
13.5 数据库连接池 253
13.5.1 多用户数据库连接方法 253
13.5.2 在Tomcat下配置MySQL数据源 254
代码13-10 文件名:Server.xml 255
代码13-11 文件名:MySQLDSTest.jsp 256
代码13-12 文件名:web.xml 256
13.5.3 测试MySQL数据库连接池 256
代码13-13 文件名:context.xml 257
代码13-14 文件名:DB_Conn.java 258
13.6 公共数据库访问连接JavaBean的开发 258
13.7 在Servlet中使用JDBC访问数据库 259
13.7.1 ISQL Servlet类的开发 259
代码13-15 文件名:ISQL.java 259
13.7.2 其他文件的开发 262
代码13-16 文件名:InternetSQL.jsp 262
13.7.3 例程功能测试 263
代码13-17 文件名:web.xml 263
13.8 小结 264
14.1 MyEclipse插件简介 265
14.1.1 MyEclipse插件是什么 265
14.1.2 为什么要用MyEclipse插件 265
第14章 MyEclipse插件在JSP开发中的应用 265
14.2.1 下载MyEclipse 266
14.2 MyEclipse安装与配置 266
14.2.2 安装MyEclipse 267
14.2.3 配置MyEclipse 268
14.3 可视化开发JSP应用 269
14.3.1 新建Web Project 269
14.3.3 控件面板简介 271
14.3.2 新建JSP文件 271
代码14-1 文件名:HelloMyEclipse.jsp 272
14.3.4 用MyEclipse开发JSP应用简例 272
14.3.5 用MyEclipse开发的Struts应用简例 273
代码14-2 文件名:MyJsp.jsp 274
代码14-3 文件名:MyJsp.jsp 275
14.4 MyEclipse的UML设计支持 275
14.4.1 UML设计简介 275
14.4.2 简单类设计案例 275
14.4.3 生成Java代码 276
代码14-4 文件名:Goods.Java 277
14.4.4 逆向Java代码 278
14.5 小结 279
第15章 Hibernate框架的应用 281
15.1.2 为什么要用Hibernate框架 281
15.1 Hibernate框架简介 281
15.1.1 Hibernate框架是什么 281
15.2.1 下载Hibernate 282
15.2 Hibernate安装与配置 282
15.2.2 安装Hibernate 283
代码15-2 文件名:hibernate.properties 284
15.2.3 Hibernate的配置文件 284
代码15-1 文件名:hibernate.cfg.xml 284
15.3 用Hibernate开发Web应用 287
15.3.1 Hibernate的核心类简介 287
15.3.2 编写实体对象文件 288
代码15-3 文件名:Teacher.java 289
15.3.3 编写实体映射文件Teacher.hbm.xml 290
15.3.4 编写Hibernate配置文件hibernate.cfg.xml 290
代码15-4 文件名:Teacher.hbm.xml 290
代码15-5 文件名:hibernate.cfg.xml 291
15.3.5 开发JSP文件 291
代码15-6 文件名:HibernateTest.jsp 292
15.4 MyEclipse插件对Hibernate的支持简介 293
15.5 小结 296
代码15-7 文件名:hibernate.cfg.xml 296
16.1.1 Spring框架是什么 297
16.1 Spring框架简介 297
第16章 Spring框架的应用 297
16.2.1 下载Spring 298
16.1.2 为什么要用Spring框架 298
16.2 Spring安装与配置 298
16.2.2 安装Spring 299
16.3 用Spring开发Web应用 300
代码16-1 文件名:bean.xml 300
代码16-2 文件名:HelloBean,java 300
16.2.3 配置Spring 300
16.3.1 第1个Spring程序:例程Hello,Spring! 300
代码16-3 文件名:bean.xml 301
16.3.2 Spring和MySQL连接:例程SpringMySQLTest 302
代码16-4 文件名:SpringTest.jsp 302
代码16-5 文件名:MySQLTest.java 303
代码16-6 文件名:bean.xml 303
代码16-7 文件名:SpringMySQLTest.jsp 304
16.4 MyEclipse插件对Spring的支持简介 304
16.5 小结 306
第三部分 JSP技术应用 309
第17章 用户注册登录模块 309
17.1.1 验证码简介 309
17.1 关键技术 309
代码17-1 文件名:Random.jsp 310
17.1.2 验证码技术实现 310
17.1.3 MD5数据加密简介 312
17.1.4 MD5加密算法技术实现 314
代码17-2 文件名:MD5_Encoding.java 314
代码17-3 文件名:MD5_Test.jsp 320
17.1.5 表单验证 321
17.2 一个基本的用户注册模块的设计与实现 321
17.2.1 用户注册模块设计 321
17.2.2 用户注册页面 322
代码17-4 文件名:Register.jsp 322
17.2.3 用户信息Bean 326
代码17-5 文件名:User.java 326
代码17-6 文件名:DB_User.java 329
17.2.4 用户信息数据库操作Bean 329
代码17-7 文件名:DB_User.java 330
代码17-8 文件名:DB_User.java 331
代码17-9 文件名:DB_User.java 332
代码17-11 文件名:DB_User.java 333
代码17-10 文件名:DB_User.java 333
代码17-12 文件名:RegProcessServlet.java 334
17.2.5 用户注册Servlet 334
17.2.6 用户注册成功/失败页面 337
代码17-13 文件名:reg_success.jsp 337
代码17-14 文件名:reg_failure.jsp 338
17.2.7 用户注册信息的验证 339
17.2.8 用户注册信息的加密 341
17.3 一个基本的用户登录模块的设计与实现 341
17.3.2 用户登录页面 342
17.3.1 用户登录模块设计 342
代码17-15 文件名:Login.jsp 343
17.3.3 用户登录Servlet 344
代码17-16 文件名:LoginServlet.java 344
17.3.4 用户登录信息的验证 346
17.4 本章难点剖析 347
17.5 小结 347
17.3.5 保存登录信息 347
18.1.1 模块设计 349
第18章 购物车模块 349
18.1 购物车模块设计 349
18.1.2 数据库设计说明 350
18.1.3 系统功能演示 350
18.1.4 系统流程图 352
18.2 数据表的封装 353
18.2.1 商品表的封装 353
代码18-1 文件名:Goods.java 353
代码18-2 文件名:Type.java 356
18.2.2 商品类别表的封装 356
代码18-3 文件名:Orders.java 357
18.2.3 订单表的封装 357
代码18-4 文件名:Orders_detail.java 360
18.2.4 订单明细表的封装 360
18.3 购物车模块实现 361
18.3.1 Vector类简介 361
代码18-5 文件名:DB_goods.java 362
18.3.2 商品表数据库操作Bean 362
18.3.3 商品分类表数据库操作Bean 368
代码18-6 文件名:DB_type.java 368
18.3.4 显示商品列表 369
代码18-7 文件名:goods_list.jsp 369
18.3.5 设置商品数量 371
代码18-8 文件名:set_number.jsp 372
18.3.6 购物车Servlet 373
代码18-9 文件名:goods_cartservlet.java 373
代码18-10 文件名:web.xml 377
代码18-11 文件名:goods_show.jsp 378
18.3.7 购物车核心功能的实现 378
代码18-12 文件名:check_out.jsp 382
18.3.8 前台结账 382
18.3.9 订单表数据库操作Bean 386
代码18-13 文件名:DB_orders.java 386
代码18-14 文件名:DB_orders_detail.java 388
18.3.10 订单明细表数据库操作Bean 388
18.3.11 确认订单 389
代码18-15 文件名:confirm.jsp 389
18.3.12 完成购物 391
代码18-16 文件名:confagain.jsp 392
18.4 购物车模块的生命周期问题 392
18.5 本章难点剖析 394
18.6 小结 394
19.2 数据库模糊查询模块设计 395
19.1 模糊查询与组合查询简介 395
第19章 数据库查询模块 395
代码19-1 文件名:fuzzy_query.jsp 396
19.3 数据库模糊查询模块实现 396
代码19-2 文件名:fuzzy_query_do.jsp 397
19.4 数据库组合查询模块设计 399
19.5 数据库组合查询模块实现 400
19.5.2 组合查询业务逻辑实现 400
代码19-3 文件名:combo_query.jsp 400
19.5.1 组合查询界面设计 400
代码19-4 文件名:combo_query_do.jsp 401
19.7 小结 406
19.5.3 显示查询结果 406
19.6 本章难点剖析 406
20.1 搜索指定的网页设计思路 409
20.1.1 搜索引擎简介 409
第20章 在指定的网页上搜索关键字 409
20.1.2 设计思路 411
20.2 相关类和函数介绍 412
20.2.1 URL类简介 412
20.2.2 URLConnection类简介 413
20.2.3 HttpURLConnection类简介 414
20.2.5 ParserDelegator类简介 415
20.2.4 InputStreamReader类简介 415
20.2.6 ParserCallback类简介 415
20.3 取得指定网页内容 416
20.2.7 HTML类简介 416
20.3.1 开发HTMLparse解析类 416
20.2.8 MutableAttributeSet类简介 416
代码20-1 文件名:HTMLparse.java 417
20.3.2 获得HTTP文本流 419
代码20-2 文件名:GetHTMLData.html 419
代码20-3 文件名:GetHTMLData.jsp 420
代码20-4 文件名:Analysis.html 422
20.4 分析网页内容 422
代码20-5 文件名:Analysis.jsp 422
代码20-6 文件名:SearchInput.jsp 424
20.5 显示搜索得到的网页 424
代码20-7 文件名:Search.jsp 425
20.6 本章难点剖析 428
20.7 小结 428
21.2 在JSP页面中直接分页 429
第21章 JSP页面分页技术实现 429
21.1 分页技术设计思路 429
代码21-1 文件名:page.jsp 430
21.3 在Servlet中实现分页 433
代码21-3 文件名:userlist.jsp 434
代码21-4 文件名:web.xml 435
21.4 结合JavaBean实现分页 436
代码21-5 文件名:page.java 436
代码21-6 文件名:page_sep.jsp 438
21.5 万能的分页技术实现 440
代码21-7 文件名:select_table.jsp 440
代码21-8 文件名:pagetoall.jsp 441
21.6 根据不同的数据库实现分页技术 443
21.6.1 Oracle数据库分页 444
21.6.3 SQL Server 2000数据库分页 444
21.6.2 DB2数据库分页 444
21.6.6 PostgreSQL数据库分页 445
21.7 本章难点剖析 445
21.6.4 SQL Server 2005数据库分页 445
21.6.5 MySQL数据库分页 445
21.8 小结 446
22.2.1 采用ServletContext读文件 447
第22章 上传下载文件模块 447
22.1 上传、下载文件模块设计思路 447
22.2 在JSP中读写文件 447
代码22-1 文件名:ReadFileTest1.txt 448
代码22-2 文件名:ReadFileTest1.jsp 448
代码22-3 文件名:ReadFileTest2.txt 449
22.2.2 采用FileReader类读文件 449
代码22-4 文件名:ReadFileTest2.jsp 450
代码22-5 文件名:WriteFileTest.jsp 451
22.2.3 采用FileWriter类写文件 451
22.4 上传文件的实现 453
22.3 jspSmartUpload组件简介 453
代码22-7 文件名:UpLoad.jsp 454
代码22-6 文件名:UpLoad.html 454
代码22-8 文件名:DownLoad.html 456
22.5 下载文件的实现 456
代码22-9 文件名:DownLoad.jsp 457
22.6.1 File类:包装了上传文件的所有信息 458
22.6 jspSmartUpload常用类和函数 458
22.6.3 关于Request类:获取表单的值 459
22.6.2 Files类:所有上传文件的集合 459
22.6.4 常用函数 460
22.8 小结 461
22.7 本章难点剖析 461
23.1.2 Java Mail函数简介 463
第23章 使用JSP发送邮件 463
23.1 发送邮件模块设计思路 463
23.1.1 Java Mail简介 463
23.1.3 模块功能设计与思路 465
23.1.4 建立Java Mail的开发环境 465
代码23-1 文件名:Mail01.html 466
23.2 发送普通文本邮件 466
代码23-2 文件名:Testmail.jsp 467
23.3 发送HTML格式的邮件 469
代码23-3 文件名:Mail02.html 469
代码23-4 文件名:Testmail02.jsp 470
代码23-5 文件名:Fj.html 472
23.4 为发送的邮件添加附件内容 472
代码23-6 文件名:Testfj.jsp 473
23.5 本章难点剖析 475
23.6 小结 476
第24章 异常及日志模块 477
24.1 捕获JSP异常 477
24.1.1 通过简单的try-catch语句理解异常 477
代码24-1 文件名:String_Input.jsp 478
代码24-2 文件名:Try_catch.jsp 478
代码24-3 文件名:Catch_Finally.jsp 480
24.1.2 finally语句的运用 480
24.1.3 在JSF页面捕获多个异常 481
代码24-4 文件名:Input_Table.jsp 481
代码24-5 文件名:Mul_Exception.jsp 482
24.1.4 在配置文件中配置异常的捕获及处理 485
代码24-6 文件名:web.xml 485
代码24-9 文件名:String_Index.jsp 486
代码24-7 文件名:Type_Exception.jsp 486
代码24-8 文件名:Null_Exception.jsp 486
24.2 处理捕获到的异常 487
代码24-10 文件名:Age_Table.jsp 488
24.2.1 异常处理类的实现 488
代码24-11 文件名:Make_Exception.jsp 488
24.2.2 发生异常时的UI处理 489
代码24-12 文件名:CheckLengthException.java 490
代码24-14 文件名:UI_Exception.jsp 490
代码24-13 文件名:CheckFormatException.java 490
代码24-15 文件名:Exception_Log.jsp 494
24.3 添加异常的日志信息 494
24.4 本章难点剖析 495
24.5 小结 496
第25章 保护受限制访问的JSP资源 497
25.1 保护访问资源的必要性 497
25.2 加密传递给客户端的文字 497
代码25-1 文件名:DESede.java 498
25.2.1 采用DES算法加密文字 498
代码25-2 文件名:desede.jsp 499
25.2.2 采用MD5算法加密文字 500
代码25-3 文件名:md5.jsp 500
25.3.1 SSL协议简介 501
25.3 添加SSL认证信息 501
25.3.2 在Tomcat中添加SSL认证 502
代码25-4 文件名:server.xml 502
25.4 添加对请求的访问权限判断 503
25.4.1 控制请求的访问权限 503
代码25-5 文件名:InvalidUser.jsp 504
25.4.2 访问权限判断函数 505
25.5 本章难点剖析 505
25.6 小结 505
第26章 限制表单重复提交 507
26.1 限制表单重复提交的必要性 507
26.2 限制表单重复提交的设计思路 507
26.3.1 采用标志变量限制客户端重复提交 508
26.3 在客户端限制表单重复提交 508
代码26-1 文件名:ClientTest1.jsp 508
26.3.2 设置提交按钮状态限制客户端重复提交 509
代码26-2 文件名:ClientTest2.jsp 509
代码26-4 文件名:ServerSubmit.jsp 511
26.4 在服务器端判断表单是否重复提交 511
代码26-3 文件名:ServerTest.jsp 511
26.6 小结 513
26.5 本章难点剖析 513
第27章 综合应用——兵马俑网上商城 515
27.1 需求分析 515
27.2 创建应用项目及配置 516
27.3 数据库设计 517
27.3.1 PDM设计 517
代码27-1 文件名:server.xml 517
27.3.2 数据表结构 518
27.3.3 建立和配置数据库 519
代码27-3 文件名:goods.sql 520
代码27-2 文件名:userinfo.sql 520
代码27-5 文件名:orders.sql 521
代码27-6 文件名:orders_detail.sql 521
代码27-4 文件名:type.sql 521
27.3.4 准备测试数据 522
代码27-7 文件名:userinfo.sql 522
代码27-8 文件名:goods.sql 522
27.4 业务逻辑类设计 523
代码27-9 文件名:type.sql 523
27.5 页面框架设计 525
代码27-10 文件名:MainBMY.html 526
代码27-11 文件名:Top.html 526
27.5.1 用户框架 526
代码27-12 文件名:Left.html 527
代码27-13 文件名:AdminBMY.html 531
27.5.2 后台管理框架 531
代码27-14 文件名:LeftAdmin.html 532
27.6 公用页面 535
27.7.1 模块设计 536
27.7 商品管理模块 536
代码27-15 文件名:public.jsp 536
27.7.2 商品管理主页面 537
代码27-16 文件名:goods_list.jsp 538
代码27-17 文件名:query_result.jsp 540
27.7.3 商品查询 540
代码27-18 文件名:add_goods.jsp 542
代码27-19 文件名:submit_infor.jsp 542
27.7.4 新增商品 542
代码27-20 文件名:delete_goods.jsp 544
代码27-21 文件名:delete_confirm.jsp 544
27.7.5 删除商品 544
代码27-22 文件名:modify_goods.jsp 545
27.7.6 修改商品 545
代码27-23 文件名:submit_mod.jsp 546
27.8 商品分类管理模块 548
27.8.1 模块设计 548
代码27-24 文件名:type_list.jsp 549
27.8.2 商品分类管理主页面 549
代码27-25 文件名:add_type.jsp 551
27.8.3 新增商品分类 551
代码27-26 文件名:submit_infor.jsp 551
代码27-28 文件名:delete_confirm.jsp 553
代码27-27 文件名:delete_type.jsp 553
27.8.5 修改商品分类 553
27.8.4 删除商品分类 553
代码27-29 文件名:modify_type.jsp 554
代码27-30 文件名:submit_mod.jsp 554
27.9.1 模块设计 555
27.9 订单处理模块 555
代码27-31 文件名:orders_list.jsp 556
27.9.2 查看订单 556
代码27-32 文件名:query_result.jsp 558
27.9.3 查看订单明细 560
代码27-33 文件名:orders_detail.jsp 560
27.9.4 取消订单 561
代码27-34 文件名:remove_order.jsp 562
代码27-35 文件名:send_order.jsp 562
27.9.5 订单发货 562
代码27-36 文件名:finish_order.jsp 563
27.9.6 完成订单 563
27.11 小结 564
27.10 本章难点剖析 564
1 JSP开发技术网站 565
附录 网络资源 565
5 Spring相关网站 566
4 Hibernate相关网站 566
3 Struts相关网站 566
2 Eclipse相关网站 566