《Java Web开发与实战:Eclipes+Tomcat+Servlet+JSP整合应用》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:刘伟,张利国编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2008
  • ISBN:9787030232991
  • 页数:420 页
图书介绍:本书采用理论阐述与实例项目开发演示相结合的方式全面讲解了Java Web编程及相关技术。

第1章 Web开发工具的安装与使用 1

1.1 JDK的安装 1

1.2 Tomcat的安装和配置 2

1.2.1 下载Tomeat 3

1.2.2 修改context.xml和server.xml 3

1.2.3 修改tomcat-users.xml 4

1.2.4 启动和关闭Tomcat 4

1.2.5 Tomeat的目录结构 5

1.3 Eclipse的安装与使用 6

1.3.1 Eclipse的历史 6

1.3.2 Eclipse的架构 6

1.3.3 Eclipse版本说明 7

1.3.4 Eclipse的下载与安装 7

1.3.5 Eclipse的汉化 8

1.3.6 Eclipse的启动 8

1.3.7 Eclipse界面说明 9

1.3.8 Eclipse构建路径调整 12

1.3.9 Eclipse编译器调整 13

1.4 实例:Eclipse开发Java应用程序 13

1.4.1 新建Java项目 13

1.4.2 新建HelloWorld类 14

1.4.3 增加属性与方法 15

1.4.4 格式化源程序 17

1.4.5 运行输出 17

1.4.6 调试代码 17

1.5 MyEclipse 18

1.5.1 MyEclipse概述 18

1.5.2 MyEclipse的下载 19

1.5.3 MyEclipse安装 19

1.5.4 在MyEclipse中配置Tomcat服务器 20

1.6 更多参考信息 21

第2章 Web编程技术基础 22

2.1 Intemet的起源 22

2.1.1 TCP/IP协议 23

2.1.2 TCP/IP的四层结构 23

2.1.3 Application层常用协议 24

2.2 WWW 25

2.2.1 URL 25

2.2.2 HTML 26

2.2.3 HTTP 26

2.2.4 Web服务器 26

2.2.5 浏览器 27

2.3 Web动态编程 28

2.4 Servlet 29

2.5 实例:JavaWeb服务器 29

2.5.1 目标 30

2.5.2 新建Java项目 30

2.5.3 新建Java文件 30

2.5.4 运行输出 33

2.6 更多参考信息 34

第3章 Servlet编程 35

3.1 Servlet的发展 35

3.2 Servlet的结构 35

3.2.1 javax.servlet.Servlet 36

3.2.2 javax.servlet GenericServlet 37

3.2.3 javax.servlet.http.HttpServlet 37

3.3 实例(一):编写Servlt 38

3.3.1 目标 38

3.3.2 编写Servlet源程序 38

3.3.3 建立Java Web应用目录结构 39

3.3.4 编写web.xml文件 39

3.3.5 运行Servlet 40

3.4 实例(二):使用MyEclipse开发Servlet 40

3.4.1 目标 40

3.4.2 新建WebProject 40

3.4.3 新建Servlet文件 43

3.4.4 程序解释 45

3.4.5 部署Web应用程序 45

3.4.6 运行输出 48

3.4.7 Servlet文件调试 48

3.5 Servlet生命周期描述 49

3.6 实例(三):Servlet获取初始化的参数 50

3.6.1 目标 50

3.6.2 新建GetlnitParameterServlet类 50

3.6.3 运行输出 52

3.6.4 程序解释 52

3.7 实例(四):Servlet获取服务器的运行参数 52

3.7.1 目标 52

3.7.2 新建GetServerlnfoServlet类 52

3.7.3 运行输出 54

3.7.4 程序解释 54

3.8 实例(五):Servlet获得头信息 55

3.8.1 目标 55

3.8.2 新建GetHeaderlnfoServlet类 55

3.8.3 运行输出 56

3.8.4 程序解释 57

3.9更多参考信息 57

第4章 Servlet处理表单数据 58

4.1 HTML表单 58

4.1.1 Form 58

4.1.2 lnputtext 59

4.1.3 lnput password 59

4.1.4 lnput radio 59

4.1.5 lnput checkbox 60

4.1.6 Select单选 60

4.1.7 Select多选 61

4.1.8 Textarea 61

4.1.9 Submit按钮 62

4.1.10 Reset按钮 63

4.2 Servlet接收HTML表单信息 63

4.3 实例(一):Servlet处理HTML表单数据(1) 63

4.3.1 目标 63

4.3.2 新建webproject2项目 64

4.3.3 新建LoginFormServlet 64

4.3.4 运行输出 65

4.3.5 程序解释 66

4.3.6 解决表单中文参数乱码问题 66

4.4 实例(二):Servlet处理HTML表单数据(2) 67

4.4.1 目标 67

4.4.2 新建login.htm 67

4.4.3 新建LoginServlet.java 69

4.4.4 运行输出 70

4.4.5 程序解释 70

4.5实例(三):网络调查表(1) 70

4.5.1 目标 70

4.5.2 新建survey.htm 70

4.5.3 新建SurveyServlet 73

4.5.4 运行输出 74

4.5.5 程序解释 75

4.6 实例(四):网络调查表(2) 76

4.6.1 目标 76

4.6.2 新建survey2.htm 76

4.6.3 新建SurveyServlet2 77

4.6.4 运行输出 78

4.6.5 程序解释 79

4.7 客户端验证表单输入内容 79

4.8 实例(五):HTML表单增加JavaScript验证 79

4.8.1 目标 79

4.8.2 新建login2.htm 79

4.8.3 运行输出 80

4.8.4 程序解释 81

4.9 JSValidation验证框架 81

4.9.1 下载JSValidation 82

4.9.2 validation-config.xml解释 82

4.10 实例(六):使用JSValidation验证框架 84

4.10.1 目标 84

4.10.2 JSvalidation配置 84

4.10.3 编写survey3.htm 85

4.10.4 编写validation-config.xml文件 85

4.10.5 运行输出 86

4.10.6 程序解释 87

4.11 FCKeditor 87

4.11.1 FCKeditor主要功能特性 87

4.11.2 下载FCKeditor 88

4.11.3 FCKeditor的使用 88

4.12 实例(七):使用FCKeditor 89

4.12.1 新建fckeditordemo项目 89

4.12.2 新建addContent.htm 90

4.12.3 新建AddContentServlet 91

4.12.4 运行输出 92

4.12.5 FCKeditor类说明 92

4.12.6 FCKeditor组件文件精简 93

4.13 更多参考信息 94

第5章 JDBC、连接池与数据源 95

5.1 JDBC的历史 95

5.2 JDBC概述 96

5.3 JDBC驱动程序 97

5.4 实例(一):安装和配置Oracle的JDBC驱动程序 97

5.4.1 目标&c 7

5.4.2 获得Oracle驱动程序 97

5.4.3 配置Oracle驱动程序 97

5.5 JDBC编程 98

5.5.1 建立数据库连接 98

5.5.2 向数据库中提交SOL 99

5.5.3 处理数据库返回的结果 100

5.5.4 释放数据库连接 101

5.6 实例(二):JDBC操作Oracle数据库的例子 102

5.6.1 目标 102

5.6.2 建表 102

5.6.3 新建项目与JDBCExample.java文件 102

5.7 实例(三):网络留言本V1.0 104

5.7.1 目标 104

5.7.2 建表与建序列 104

5.7.3 新建guestbook项目 105

5.7.4 项目核心文件列表 106

5.7.5 修改validation-framework.is文件 106

5.7.6 编辑jsvalidation-config.xml 106

5.7.7 编辑addMessage.htm 107

5.7.8 编辑StringUtil.java 109

5.7.9 编辑AddMessageServlet.java 110

5.7.10 编辑GetMessagesServlet.java 112

5.7.11 运行输出 114

5.8 数据库连接池 115

5.9 实例(四):编写JDBC连接池程序 116

5.9.1 目标 16

5.9.2 待解决的核心问题 117

5.9.3 新建pooling项目 117

5.9.4 编辑dbpoolproperties 117

5.9.5 编辑ConnectionPool.java 117

5.9.6 编辑ConnectionPoolTest.java 120

5.9.7 运行输出 121

5.9.8 程序待改进的地方 121

5.10 JDBC数据源 122

5.11 实例(五):配置Tomcat的连接池和数据源 122

5.12 实例(六):网络留言本V1.1 123

5.12.1 目标 123

5.12.2 新建guestbook2项目 123

5.12.3 修改JavaBuildPath 124

5.12.4 修改validation-framework.js文件 124

5.12.5 修改addMessage.htm文件 124

5.12.6 修改AddMessageServlet.java 124

5.12.7 修改GetMessagesServlet.java 125

5.12.8 运行输出 125

5.13 CommonsDbUtils 126

5.13.1 DbUtils类 126

5.13.2 ResultSetHandler接口 127

5.13.3 MapListHandler类 127

5.13.4 BeanListHandler类 127

5.13.5 QueryRunner类 127

5.13.6 DbUtil使用例子 128

5.14 实例(七):网络留言本V1.2 131

5.14.1 目标 131

5.14.2 新建guestbook3项目 131

5.14.3 修改addMessage.htm文件 131

5.14.4 修改AddMessageServlet.java 131

5.14.5 修改GetMessagesServlet.java 133

5.14.6 运行输出 135

5.15 更多内容 135

第6章 Servlet处理Cookie 136

6.1 Cookie是什么 136

6.2 Cookie的典型应用 137

6.2.1 实现“记住我功能 137

6.2.2 定制个性化页面 138

6.2.3 记录用户访问动作 138

6.3 Cookie的运行机制 139

6.4 使用Cookie的注意事项 139

6.5 Cookie编程 139

6.5.1 生成Cookie对象 139

6.5.2 设定Cookie对象有效期 140

6.5.3 设定Cookie对象的路径与域名 140

6.5.4 发送Cookie对象 140

6.5.5 读取Cookie对象 141

6.5.6 修改Cookie 141

6.5.7 删除Cookie 142

6.6 实例:Servlet中Cookie的编程 142

6.6.1 目标 142

6.6.2 新建项目 142

6.6.3 编辑cookielnput.htm 142

6.6.4 编辑SetCookiesServlet.java 143

6.6.5 编辑GetCookiesServlet.java 144

6.6.6 运行输出 145

第7章 Servlet会话编程 147

7.1 会话是什么 147

7.2 会话的典型应用 148

7.2.1 网店中的购物车功能 148

7.2.2 用户权限控制 148

7.2.3 跨Servlet/JSP传递参数 149

7.3 会话的底层实现方式 149

7.4 Servlet会话编程 149

7.5 实例(一):演示会话对象的使用 150

7.5.1 目标 150

7.5.2 新建项目 150

7.5.3 编辑DemoSessionServlet 151

7.5.4 运行输出 152

7.6 实例(二):使用会话实现网络购物车 153

7.6.1 目标 153

7.6.2 功能说明 153

7.6.3 新建项目 154

7.6.4 编辑Cartltem.java 154

7.6.5 编辑ShoppingCart.java 155

7.6.6 编辑AddShoppingCartServlet.java 157

7.6.7 编辑GetShoppingCartServlet.java 159

7.6.8 编辑displayltems.htm 161

7.6.9 运行输出 163

7.6.10 需要改进的地方 164

第8章 JavaServer Pages(JSP) 165

8.1 JavaServerPages的起源 165

8.2 JSP与Servlet的关系 165

8.3 实例(一):开发第一个JSP页面 166

8.3.1 目标 166

8.3.2 新建Webproject项目 166

8.3.3 新建first.jsp文件 166

8.3.4 JSP页面的可视化编辑 167

8.3.5 运行输出 168

8.3.6 代码解释 168

8.4 JSP内部运行机制 169

8.5 JSP语法 173

8.5.1 JSP代码注释 173

8.5.2 指令(Directive)标记 174

8.5.3 声明(Declaration)标记 176

8.5.4 Scriptlet标记 177

8.5.5 表达式(Expression)标记 177

8.6 实例(二):JSP语法演示 177

8.6.1 目标 177

8.6.2 新建JSP文件 177

8.6.3 运行输出 179

8.7 动作(action) 179

8.7.1 <sp:incluce>动作 180

8.7.2 <sp:forward>动作 181

8.8 JSP内置对象 182

8.8.1 out对象 182

8.8.2 request对象 183

8.8.3 response对象 183

8.8.4 session对象 183

8.8.5 application对象 183

8.8.6 page对象 184

8.8.7 pageContext对象 184

8.8.8 exception对象 185

8.8.9 config对象 185

8.9 实例(三):网页计数器V1.0 185

8.9.1 目标 185

8.9.2 编辑count.lsp页面 186

8.9.3 程序解释 186

8.9.4 运行输出 186

8.10 实例(四):网页计数器V1.1 187

8.10.1 目标 187

8.10.2 准备数字图形文件 187

8.10.3 编辑count2.jsp页面 187

8.10.4 编辑CountFileHandler.java 188

8.10.5 运行输出 189

8.11 实例(五):Web应用错误处理解决方案 189

8.11.1 目标 189

8.11.2 HTTP常见错误代码 190

8.11.3 设置webxml 190

8.11.4 运行输出 192

8.12 实例(六):网络留言本V1.3 192

8.12.1 目标&1c 2

8.12.2 新建guestbook4项目 192

8.12.3 项目核心文件列表 193

8.12.4 编辑header.1sp 193

8.12.5 编辑footer.htm 194

8.12.6 编辑addMessage.lsp 194

8.12.7 编辑addMessageHandler.jsp 196

8.12.8 编辑getMessages.jsp 197

8.12.9 运行输出 199

8.13 更多参考信息 199

第9章 JavaBeans 200

9.1 引入JavaBeans 200

9.2 JavaBeans的编写 201

9.3 useBean动作 202

9.4 setProperty动作 203

9.5 getProperty动作 203

9.6 JavaBeans对象的作用范围 203

9.6.1 page Scope 204

9.6.2 request Scope 204

9.6.3 session Scope 205

9.6.4 application Scope 205

9.7 使用JavaBeans的好处 206

9.8 实例(一):JSP页面使用JavaBeans 207

9.8.1 目标 207

9.8.2 新建项目 207

9.8.3 新建Book.java 207

9.8.4 编辑book.htm 207

9.8.5 编辑displayBook.jsp 208

9.8.6 运行输出 209

9.9 实例(二):网络留言本V1.4 209

9.9.1 目标 209

9.9.2 新建guestbook5项目 209

9.9.3 项目核心文件列表 210

9.9.4 新建OracleUtil.lava 210

9.9.5 新建Guestbook.java 212

9.9.6 修改addMessageHandler.jsp 213

9.9.7 编辑getMessages.jsp 214

9.9.8 运行输出 216

9.9.9 项目需要改进的地方 216

9.10 CommonsBeanUtils 216

9.10.1 CommonsBeanUtils的下载 217

9.10.2 实例(三):使用BeanUtils的例子 217

9.10.3 访问JavaBeans属性 223

9.10.4 设定JavaBeans属性 224

9.10.5 复制JavaBeans对象的属性 224

9.10.6 动态创建JavaBeans对象 224

9.10.7 ResultSetDynaClass 226

9.10.8 RowSetDynaClass 227

9.10.9 RowSetDynaClass与MapListHandler的比较 228

9.11 更多参考信息 229

第10章 MVC模式 230

10.1 JSPModel1 230

10.2 JSPModel2 231

10.3 MVC架构模式 232

10.3.1 视图 232

10.3.2 模型 232

10.3.3 控制器 232

10.3.4 MVC的优缺点 233

10.4 实例:网络留言本V1.5 233

10.4.1 目标 233

10.4.2 新建guestbook6项目 233

10.4.3 项目核心文件列表 234

10.4.4 修改AddMessageServlet.java 234

10.4.5 修改GetMessagesServlet.java 236

10.4.6 修改addMessage.jsp 236

10.4.7 修改GetMessages.jsp 237

10.4.8 新建addResult.jsp 237

10.4.9 运行输出 237

10.4.10 程序运行流程分析 237

10.4.11 两种转向的区别 238

10.5 基于MVC的Web开发框架 240

10.5.1 Struts 240

10.5.2 WebWork 240

10.5.3 SpringMVC 240

10.6 更多参考信息 241

第11章 JSP Expression Language 242

11.1 JSPEL的基本用法 242

11.2 JSPEL运算符 243

11.3 使用JSPEL读取JavaBeans属性 243

11.4 JSPEL内置对象 245

11.4.1 作用范围相关对象 245

11.4.2 param或paramValues对象 245

11.4.3 header或headerValues对象 245

11.4.4 cookie内置对象 245

11.4.5 initParam对象 246

11.4.6 pageContext对象 246

11.5 设定JSP不使用JSPEL 246

11.6 实例:演示JSPEL的用法 246

11.6.1 目的 246

11.6.2 新建Web项目 247

11.6.3 编辑elExample1.jsp 247

11.6.4 编辑elExample2.jsp 248

11.6.5 编辑elExample3.jsp 250

11.6.6 编辑elExample4.jsp 251

11.6.7 编辑elExample5.jsp 252

11.6.8 编辑elExample6.jsp 254

11.6.9 编辑elExample7.jsp 255

11.6.10 编辑elExample8.jsp 257

11.6.11 编辑elExample9.jsp 258

11.6.12 编辑elExample10.jsp 258

11.6.13 修改webxml 259

第12章 定制标记库 260

12.1 定制标记库概述 260

12.2 实例(一):编写测量代码运行时间的定制标记 261

12.2.1 目标 261

12.2.2 新建Web项目 261

12.2.3 编辑TimerTag.lava 261

12.2.4 编辑util.tld文件 263

12.2.5 编辑timerTag.jsp 263

12.2.6 运行输出 264

12.3 为定制标记增加属性 264

12.4 实例(二):编写显示日期时间的标记 265

12.4.1 目标 265

12.4.2 编辑DateTimeTag.java 265

12.4.3 修改uti1.tld文件 266

12.4.4 编辑dateTimeTag.lsp 267

12.4.5 运行输出 267

12.5 实例(三):编写循环执行的定制标记 267

12.5.1 目标 267

12.5.2 编辑LoopTag.java 268

12.5.3 修改util.tld 268

12.5.4 编辑loopTag.jsp 269

12.5.5 运行输出 269

12.6 定制标记运行原理 270

12.6.1 JspTag接口 270

12.6.2 Tag接口 270

12.6.3 lterationTag接口 271

12.6.4 TagSupport类 271

12.7 BodyTag接口 272

12.8 BodyTagSuppo类 273

12.9 实例(四):编写过滤HTML代码的标记 274

12.9.1 目标 274

12.9.2 编辑FilterHtmlTag.java 274

12.9.3 修改util.tld 275

12.9.4 运行输出 275

12.10 脚本变量 276

12.10.1 使用TagExtralnfo的方式 276

12.10.2 设置<variable>元素 277

12.10.3 两种设置脚本变量的比较 278

12.11 实例(五):编写使用Cookie的定制标记 278

12.11.1 目标 278

12.11.2 编辑CookieTag.java 278

12.11.3 编辑CookieTei.java 279

12.11.4 修改tld文件 280

12.11.5 编辑cookieTag.jsp 280

12.11.6 运行输出 281

12.12 SimpleTag 281

12.13 SimpleTagSupport 282

12.14 实例(六):编写实现过滤HTML的标记V1.1 282

12.14.1 目标 282

12.14.2 编辑FilterHtmlSimpleTag.java 282

12.14.3 配置TLD文件 283

12.14.4 编辑filterHtmlSimpleTag.jsp 283

12.14.5 运行输出 284

12.15 标记处理类编写小结 284

12.16 Tag文件 285

12.16.1 编写Tag文件 285

12.16.2 Tag文件可以使用的指令 286

12.17 标记库打包 291

12.18 常用开源定制标记库介绍 292

12.18.1 JSTL 292

12.18.2 Jakarta Taglibs 292

12.18.3 Display tag 292

第13章 JSTL 294

13.1 JSTL概述 294

13.2 下载安装JSTL 295

13.3 Core标记库 296

13.3.1 <c:out>标记 296

13.3.2 <c:set>标记 297

13.3.3 <c:remove>标记 298

13.3.4 <c:catch>标记 299

13.3.5 <c.if>标记 300

13.3.6 <c.choose>标记 300

13.3.7 <c:when>标记 301

13.3.8 <c:otherwise> 301

13.3.9 <c:forEach>标记 302

13.3.10 <c:forTokens>标记 304

13.3.11 <c:import>标记 305

13.3.12 <c:url>标记 306

13.3.13 <c:redirect>标记 307

13.4 Format标记库 308

13.4.1 国际化 308

13.4.2 <fmt:setLocale>标记 308

13.4.3 <fmt:setTimeZone>标记 309

13.4.4 <fmt:timeZone>标记 309

13.4.5 <fmt:formatDate>标记 310

13.4.6 <fmt:parseDate>标记 311

13.4.7 <fmt:formatNumber>标记 312

13.4.8 <fmt:parseNumber>标记 314

13.4.9 <fmt:setBundle>标记 315

13.4.10 <fmt:bundle>标记 316

13.4.11 <fmt:message>标记 316

13.4.12 <fmt:param>标记 318

13.4.13 <fmt:requestEncoding>标记 318

13.5 XML标记库 318

13.5.1 <x:parse>标记 319

13.5.2 <x:transform>标记 321

13.6 SQL标记库 323

13.6.1 <sql:setDataSource>标记 323

13.6.2 <sgl:query>标记 324

13.6.3 <sql:param>标记 326

13.6.4 <sgl:dateParam>标记 326

13.6.5 <sql:update>标记 327

13.6.6 <sgl:transaction>标记 329

13.7 Functions标记库 330

13.8 实例:网络留言本V1.6 331

13.8.1 目标 331

13.8.2 新建guestbook7项目 332

13.8.3 修改header.jsp 332

13.8.4 修改addMessage.jsp 332

13.8.5 修改addResult.jsp 332

13.8.6 修改getMessages.jsp 333

13.8.7 运行输出 334

13.9 更多参考信息 334

第14章 Servlet监听器 335

14.1 概述 335

14.2 HttpSession监听器接口 335

14.2.1 HttpSessionListener 335

14.2.2 HttpSessionAttributeListener 336

14.2.3 HttpSessionBindingListener 336

14.2.4 HttpSessionActivationListener 337

14.3 实例:统计网站在线人数 337

14.3.1 目标 337

14.3.2 新建项目 337

14.3.3 编辑CounterListener.java 337

14.3.4 编辑web.xml 338

14.3.5 编辑display.jsp 338

14.3.6 运行输出 339

14.4 ServletContext监听器接口 339

14.4.1 ServletContextListener 339

14.4.2 ServletContextAttributeListener 339

14.5 HttpServletRequest监听器 340

14.5.1 ServletRequestListener 340

14.5.2 ServietRequestAttributeListener 340

第15章 Servlet过滤器 342

15.1 概述 342

15.2 javax.servlet.Filter接口 343

15.2.1 init()方法 343

15.2.2 destroy()方法 343

15.2.3 doFilter()方法 344

15.3 配置过滤器 344

15.4 过滤器的用途 344

15.5 实例(一):使用过滤器设定传输参数编码 345

15.5.1 目标 345

15.5.2 新建项目 345

15.5.3 编辑EncodingFilter.java 345

15.5.4 编辑web.xml 346

15.5.5 编辑index.jsp 346

15.5.6 运行输出 347

15.6 实例(二):网络留言本V1.7 348

15.6.1 目标 348

15.6.2 新增admin表 348

15.6.3 新建guestbook8项目 348

15.6.4 编辑AdminUserServlet.java 349

15.6.5 编辑AuthenticationFilter.java 351

15.6.6 编辑ManageServlet.java 352

15.6.7 编辑login.jsp 354

15.6.8 修改validation-config.xml 355

15.6.9 编辑loginFail.jsp 355

15.6.10 编辑list.jsp 356

15.6.11 编辑edit.jsp 357

15.6.12 编辑updateResult.jsp 358

15.6.13 编辑deleteResult.1sp 359

15.6.14 修改web.xml 359

15.6.15 运行输出 360

第16章 文件上传与邮件发送 361

16.1 文件上传 361

16.2 实例(一):使用FileUpload实现文件上传 362

16.2.1 目的 362

16.2.2 新建webproject12项目 362

16.2.3 编辑uploadFile.jsp 362

16.2.4 编辑UploadServlet.java 363

16.2.5 编辑uploadResult.jsp 365

16.2.6 修改webxml文件 365

16.2.7 程序运行 365

16.3 JavaMail 366

16.3.1 JavaMail下载与安装 367

16.3.2 JavaMail核心类 367

16.4 实例(二):编写邮件发送程序V1.0 369

16.4.1 目标 369

16.4.2 编辑SendMail.java 369

16.4.3 程序运行 370

16.5 实例(三):编写邮件发送程序V1.1 370

16.5.1 目标 370

16.5.2 下载ApacheCommonsEmail组件 370

16.5.3 编辑sendMail.jsp 370

16.5.4 编辑SendMailServlet.java 371

16.5.5 编辑sendResult.jsp 372

16.5.6 运行输出 372

16.6 实例(四):编写邮件发送程序V1.2 373

16.6.1 目标 373

16.6.2 编辑SendAttachmentMajlServlet.java 373

16.6.3 新建sendAttachmentMail.jsp 375

16.6.4 修改web.xml文件 375

16.6.5 程序运行 376

16.7 更多参考信息 376

第17章 DAO设计模式与分页显示 377

17.1 DAO设计模式 377

17.1.1 DAO模式的实现 377

17.1.2 DAO模式的优势 380

17.2 分页显示 381

17.2.1 Displaytag标记库 381

17.2.2 超大记录数的分页显示 385

17.2.3 Pager标记库 391

17.3 实例:网络留言本V1.8 393

17.3.1 目标 393

17.3.2 新建guestbook9项目 393

17.3.3 修改GuestbookDAO.java 394

17.3.4 修改GuestbookDAOJdbc.java 394

17.3.5 编写Admin.java 394

17.3.6 编写AdminDAO.java 395

17.3.7 编写AdminDAOJdbc.java 395

17.3.8 修改AddMessageServlet.java 396

17.3.9 修改GetMessagesServlet.java 397

17.3.10 修改AdminUserServlet.java 398

17.3.11 修改ManageServlet.java 398

17.3.12 修改list.jsP 401

17.3.13 修改getMessages.jsp 401

17.3.14 修改webxml 403

17.3.15 运行输出 403

17.4 更多的参考信息 403

第18章 解决中文乱码 404

18.1 字符集与编码方法 404

18.1.1 字符集 404

18.1.2 字符编码 404

18.1.3 ASCII 405

18.1.4 ISO8859-1 406

18.1.5 GB2312 406

18.1.6 GBK 406

18.1.7 GB18030 407

18.1.8 BIG5 407

18.1.9 Unicode 407

18.2 Java中字符的表示与处理 409

18.3 JavaWeb编程中文乱码解决方法 409

18.3.1 调用JSP页面显示乱码 409

18.3.2 调用Servlet页面显示乱码 410

18.3.3 POST表单传递参数乱码 411

18.3.4 URI方式传递参数乱码 412

18.3.5 Properties文件乱码 413

18.4 更多参考信息 413

第19章 Web应用与web.xml 414

19.1 Web应用 414

19.1.1 Web应用的目录结构 414

19.1.2 Web应用打包 415

19.2 web.xml文件 416

19.2.1 web.xml的元素说明 417

19.2.2 Web应用初始化 420