图书目录

目    录

第 1 章  搭建Java Web开发环境 1

1.1  Web开发背景知识 1

1.1.1  Web访问的基本原理 1

1.1.2  超文本传输协议 2

1.1.3  静态网页和动态网页 2

1.1.4  Web浏览器和Web服务器 3

1.2  JSP简介 4

1.2.1  什么是JSP 4

1.2.2  JSP的优势 4

1.2.3  JSP的执行顺序 5

1.2.4  一个JSP的简单实例 6

1.3  安装开发环境 6

1.3.1  安装JDK17和配置环境变量 6

1.3.2  安装IntelliJ IDEA开发工具 8

1.3.3  安装Tomcat 10服务器 10

1.4  小结 12

1.5  习题 12

第 2 章  JSP基础语法:与编写HTML一样容易 13

2.1  JSP注释 13

2.2  JSP声明 15

2.3  JSP表达式 17

2.4  JSP指令 18

2.4.1  与页面属性相关的page指令 18

2.4.2  引入文件的include指令 19

2.4.3  与标签相关的taglib指令 20

2.5  JSP动作 23

2.5.1  <jsp:include>动作 23

2.5.2  <jsp:forward>动作 25

2.5.3  <jsp:param>动作 26

2.6  小结 30

2.7  习题 30

第 3 章  JSP内置对象 31

3.1  request对象 31

3.1.1  request对象的常用方法 31

3.1.2  使用request对象接收请求参数 32

3.1.3  请求中的中文乱码的处理 34

3.1.4  获取请求的头部信息 35

3.1.5  获取主机和客户机的信息 37

3.2  response对象 38

3.2.1  response对象的常用方法 38

3.2.2  设置头信息 38

3.2.3  设置页面重定向 41

3.3  session对象 42

3.3.1  获取session ID 43

3.3.2  用户登录信息的保存 46

3.4  application对象 50

3.4.1  application对象的常用方法 50

3.4.2  获取指定页面的路径 50

3.4.3  设计一个网站计数器 51

3.5  out对象 52

3.5.1  out对象的常用方法 52

3.5.2  out对象的使用示例 53

3.6  page对象 54

3.6.1  page对象的常用方法 55

3.6.2  page对象的使用示例 55

3.7  config对象 56

3.7.1  config对象的常用方法 56

3.7.2  config对象的使用示例 56

3.8  pageContext对象 57

3.8.1  pageContext对象的常用方法 58

3.8.2  pageContext对象的使用示例 58

3.9  小结 60

3.10  习题 60

第 4 章  Servlet技术 61

4.1  Servlet是什么 61

4.2  Servlet的技术特点 62

4.3  Servlet的生命周期 63

4.4  编写和部署Servlet 66

4.4.1  编写Servlet类 66

4.4.2  部署Servlet类 68

4.5  Servlet与JSP的比较 70

4.6  小结 71

4.7  习题 71

第 5 章  请求与响应 72

5.1  从容器到HttpServlet 72

5.1.1  Web容器用来做什么 72

5.1.2  令人茫然的doXXX()方法 74

5.2  HttpServletRequest对象 74

5.2.1  使用getReader()、getInputStream()读取Body内容 75

5.2.2  使用getPart()、getParts()取得上传文件 79

5.2.3  使用RequestDispatcher调派请求 82

5.3  HttpServletResponse对象 86

5.3.1  使用getWriter()输出字符 86

5.3.2  使用getOutputStream()输出二进制字符 89

5.3.3  使用sendRedirect()、sendError()方法 91

5.4  网站注册与登录功能的实现 93

5.4.1  实现网站注册功能 94

5.4.2  实现网站登录功能 99

5.5  小结 101

5.6  习题 102

第 6 章  会话管理 103

6.1  会话管理的基本原理 103

6.1.1  使用隐藏域 103

6.1.2  使用Cookie 104

6.1.3  使用URL重写 104

6.2  HttpSession会话管理 105

6.2.1  使用HttpSession管理会话 105

6.2.2  HttpSession管理会话的原理 107

6.2.3  HttpSession与URL重写 108

6.2.4  HttpSession中禁用Cookie 109

6.2.5  HttpSession的生命周期 109

6.2.6  HttpSession的有效期 110

6.3  HttpSession会话管理实例演示 110

6.4  小结 112

6.5  习题 112

第 7 章  Servlet进阶API、监听器与过滤器 113

7.1  Servlet进阶API 113

7.1.1  Servlet、ServletConfig与GenericServlet 114

7.1.2  使用ServletConfig 116

7.1.3  使用ServletContext 119

7.2  应用程序事件、监听器 121

7.2.1  ServletContext事件、监听器 121

7.2.2  HttpSession事件监听器 124

7.2.3  HttpServletRequest事件、监听器 128

7.3  过滤器 131

7.3.1  过滤器的概念 131

7.3.2  实现与设置过滤器 132

7.3.3  请求封装器 134

7.3.4  响应封装器 136

7.4  异步处理 145

7.4.1  AsyncContext简介 145

7.4.2  模拟服务器推送 147

7.5  Registration动态注入的基础 151

7.6  小结 152

7.7  习题 152

第 8 章  MySQL 8数据库开发 153

8.1  MySQL数据库入门 153

8.1.1  MySQL的版本特点 153

8.1.2  MySQL 8的安装和配置 154

8.2  启动MySQL服务并登录数据库 161

8.2.1  启动MySQL服务 161

8.2.2  登录MySQL数据库 162

8.3  MySQL数据库的基本操作 164

8.3.1  创建数据库 164

8.3.2  删除数据库 165

8.3.3  创建数据库表 166

8.3.4  修改数据库表 166

8.3.5  修改数据库表的字段名 167

8.3.6  删除数据表 168

8.4  MySQL数据库的数据管理 168

8.4.1  插入数据 169

8.4.2  修改数据 169

8.4.3  删除数据 170

8.5  小结 171

8.6  习题 172

第 9 章  JSP与Java Bean 173

9.1  Java Bean的基本概念 173

9.2  JSP中使用Bean 174

9.3  访问Bean属性 176

9.3.1  设置属性:<jsp:setProperty> 176

9.3.2  取得属性:<jsp:getProperty> 181

9.4  Bean的作用域 182

9.5  用户登录验证 187

9.6  DAO设计模式 191

9.6.1  DAO设计模式简介 191

9.6.2  DAO命名规则 192

9.6.3  DAO开发 192

9.6.4  JSP调用DAO 198

9.7  小结 201

9.8  习题 201

第 10 章  EL标签:给JSP减负 202

10.1  EL标签语法 202

10.2  EL标签的功能 203

10.3  EL标签的操作符 206

10.4  EL标签的隐含变量 208

10.4.1  隐含变量pageScope、requestScope、sessionScope、applicationScope 208

10.4.2  隐含变量param、paramValues 208

10.4.3  其他变量 209

10.5  禁用EL标签 210

10.5.1  在整个Web应用中禁用 210

10.5.2  在单个页面中禁用 211

10.5.3  在页面中禁用个别表达式 211

10.6  小结 211

10.7  习题 211

第 11 章  JSTL标签库 212

11.1  JSTL标签概述 212

11.1.1  JSTL的来历 212

11.1.2  一个标签实例带你入门 213

11.2  JSTL的core标签库 214

11.2.1  <c:out>标签 214

11.2.2  <c:if>标签 214

11.2.3  <c:choose>标签、<c:when>标签、<c:otherwise>标签 215

11.2.4  <c:set>标签 216

11.2.5  <c:forEach>标签 216

11.2.6  <c:forTokens>标签 218

11.2.7  <c:remove>标签 218

11.2.8  <c:catch>标签 218

11.2.9  <c:import>标签与<c:param>标签 219

11.2.10  <c:redirect>标签 219

11.2.11  <c:url>标签 220

11.3  JSTL的fmt标签库 220

11.3.1  国际化标签 220

11.3.2  消息标签 221

11.3.3  数字和日期格式化标签 223

11.4  JSTL的fn标签库 226

11.4.1  fn:contains()函数与fn:containsIgnoreCase()函数 226

11.4.2  fn:startsWith()函数与fn:endsWith()函数 226

11.4.3  fn:escapeXml()函数 227

11.4.4  fn:indexOf()函数与fn:length()函数 227

11.4.5  fn:split()函数与fn:join()函数 228

11.5  JSTL的SQL标签库 228

11.5.1  <sql:setDateSource>标签 228

11.5.2  <sql:query>标签 229

11.5.3  <sql:update>标签 230

11.5.4  <sql:dateParam>标签与<sql:param>标签 230

11.5.5  <sql:transaction>标签 232

11.6  JSTL的XML标签库 232

11.6.1  <x:parse>标签 233

11.6.2  <x:out>标签 234

11.6.3  <x:forEach>标签 234

11.6.4  <x:if>标签 234

11.6.5  <x:choose>标签、<x:when>标签、<x:otherwise>标签 235

11.6.6  <x:set>标签 235

11.6.7  <x:transform>标签 235

11.7  小结 236

11.8  习题 236

第 12 章  自定义标签 237

12.1  编写自定义标签 237

12.1.1  版权标签 237

12.1.2  tld标签库描述文件 239

12.1.3  TagSupport类简介 241

12.1.4  带参数的自定义标签 242

12.1.5  带标签体的自定义标签 245

12.1.6  多次执行的循环标签 247

12.1.7  带动态属性的自定义标签 249

12.2  嵌套的自定义标签 250

12.2.1  实例:表格标签 250

12.2.2  嵌套标签的配置 252

12.2.3  嵌套标签的运行效果 253

12.3  SimpleTag接口 254

12.4  小结 256

12.5  习题 256

第 13 章  JDBC详解 257

13.1  JDBC简介 257

13.1.1  实例:列出人员信息 258

13.1.2  各种数据库的连接 260

13.2  MySQL的乱码解决方案 261

13.2.1  在控制台中修改编码 261

13.2.2  在配置文件中修改编码 262

13.2.3  利用图形界面工具修改编码 262

13.2.4  在URL中指定编码方式 263

13.3  JDBC基本操作:CRUD 263

13.3.1  查询数据库 263

13.3.2  插入人员信息 263

13.3.3  注册数据库驱动 268

13.3.4  获取自动插入的ID 268

13.3.5  删除人员信息 268

13.3.6  修改人员信息 270

13.3.7  使用PreparedStatement 274

13.3.8  利用Statement与PreparedStatement批处理SQL 276

13.4  结果集的处理 277

13.4.1  查询多个结果集 277

13.4.2  可以滚动的结果集 277

13.4.3  带条件的查询 278

13.4.4  ResultSetMetaData元数据 281

13.4.5  直接显示中文列名 283

13.5  小结 283

13.6  习题 284

第 14 章  XML概述 285

14.1  初识XML 285

14.1.1  什么是XML 285

14.1.2  XML的用途 286

14.1.3  XML的技术架构 287

14.1.4  XML开发工具 287

14.2  XML基本语法 288

14.3  JDK中的XML API 291

14.4  最常见的XML解析模型 292

14.4.1  DOM解析 292

14.4.2  SAX解析 295

14.4.3  DOM4j解析 297

14.5  XML与Java类映射JAXB 299

14.5.1  什么是XML与Java类映射 299

14.5.2  JAXB的工作原理 300

14.5.3  将Java对象转换为XML 301

14.5.4  将XML转换为Java对象 302

14.5.5  更为复杂的映射 303

14.6  小结 306

14.7  习题 307

第 15 章  资源国际化 308

15.1  资源国际化简介 308

15.2  资源国际化编程 309

15.2.1  资源国际化示例 309

15.2.2  资源文件编码 310

15.2.3  显示所有Locale代码 311

15.2.4  带参数的资源 313

15.2.5  ResourceBundle类 313

15.2.6  Servlet的资源国际化 315

15.2.7  显示所有Locale的数字格式 316

15.2.8  显示全球时间 318

15.3  小结 319

15.4  习题 319

第 16 章  家校通门户网站 320

16.1  网页首页的布局 320

16.2  导入样式页面 321

16.3  显示页面头内容 322

16.4  用户登录页面 322

16.5  帮助页面 323

16.6  网页主体内容 324

16.7  网页公告内容 325

16.8  友情链接页面 326

16.9  网页底部的版权信息内容 327

16.10  家校通门户网站预览效果 327

16.11  小结 328

第 17 章  在线购物系统 329

17.1  系统需求分析 329

17.2  系统总体架构 330

17.3  数据库设计 331

17.3.1  E-R图 331

17.3.2  数据物理模型 331

17.4  系统详细设计 332

17.4.1  系统包的介绍 333

17.4.2  系统的关键技术 333

17.4.3  过滤器 338

17.5  系统首页与公共页面 339

17.6  用户登录模块 341

17.7  用户管理模块 342

17.7.1  用户注册 343

17.7.2  用户信息修改 346

17.7.3  用户信息查看 348

17.7.4  用户密码修改 349

17.8  购物车模块 350

17.8.1  添加购物车 350

17.8.2  删除购物车 353

17.8.3  查看购物车 354

17.8.4  修改购物车 355

17.9  商品模块 358

17.9.1  查看商品列表 358

17.9.2  查看单个商品 362

17.10  支付模块 362

17.10.1  支付商品 362

17.10.2  查看已支付商品 363

17.10.3  支付中的页面 364

17.11  小结 366