图书目录

目  录

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

1.1  Web开发背景知识 1

1.1.1  Web访问的基本原理 1

1.1.2  超文本传输协议 1

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的简单实例 5

1.3  安装Java 10环境 6

1.3.1  下载JDK10和配置环境变量 6

1.3.2  下载Intellij IDEA开发工具 8

1.3.3  下载安装Tomcat 9服务器 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指令 21

2.5  JSP动作 24

2.5.1  <jsp:include>动作 24

2.5.2  <jsp:forward>动作 26

2.5.3  <jsp:param>动作 27

2.6  小结 31

2.7  习题 31

第3章  JSP内置对象 32

3.1  request对象 32

3.1.1  request对象的常用方法 32

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

3.1.3  请求中文乱码的处理 35

3.1.4  获取请求的头部信息 36

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

3.2  response对象 39

3.2.1  response对象的常用方法 39

3.2.2  设置头信息 39

3.2.3  设置页面重定向 42

3.3  session对象 44

3.3.1  获取session ID 44

3.3.2  用户登录信息的保存 48

3.4  application对象 52

3.4.1  application对象的常用方法 53

3.4.2  获取指定页面的路径 53

3.4.3  设计一个网站计数器 54

3.5  out对象 55

3.5.1  out对象的常用方法 55

3.5.2  out对象的使用示例 55

3.6  page对象 57

3.6.1  page对象的常用方法 57

3.6.2  page对象的使用示例 58

3.7  config对象 59

3.7.1  config对象的常用方法 59

3.7.2  config对象的使用示例 59

3.8  小结 60

3.9  习题 61

第4章  Servlet技术 62

4.1  Servlet是什么 62

4.2  Servlet的技术特点 63

4.3  Servlet的生命周期 64

4.4  编写和部署Servlet 67

4.4.1  编写Servlet类 67

4.4.2  部署Servlet类 71

4.5  Servlet与JSP的比较 72

4.6  小结 73

4.7  习题 74

第5章  请求与响应 75

5.1  从容器到HttpServlet 75

5.1.1  Web容器用来做什么 75

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

5.2  关于HttpServletRequest对象 78

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

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

5.2.3  使用RequestDispatcher调派请求 86

5.3  关于HttpServletResponse 91

5.3.1  使用getWriter()输出字符 91

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

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

5.4  综合练习 98

5.4.1  实现网站注册功能 99

5.4.2  实现网站登录功能 104

5.5  小结 107

5.6  习题 107

第6章  会话管理 108

6.1  会话管理的基本原理 108

6.1.1  使用隐藏域 108

6.1.2  使用Cookie 108

6.1.3  使用URL重写 109

6.2  HttpSession会话管理 110

6.2.1  使用HttpSession管理会话 110

6.2.2  HttpSession管理会话的原理 112

6.2.3  HttpSession与URL重写 113

6.2.4  HttpSession中禁用Cookie 113

6.2.5  HttpSession的生命周期 114

6.2.6  HttpSession的有效期 115

6.3  HttpSession会话管理实例演示 115

6.4  小结 117

6.5  习题 117

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

7.1  Servlet进阶API 118

7.1.1  Servlet、ServletConfig与GenericServlet 118

7.1.2  使用ServletConfig 121

7.1.3  使用ServletContext 124

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

7.2.1  ServletContext事件、监听器 127

7.2.2  HttpSession事件监听器 130

7.2.3  HttpServletRequest事件、监听器 135

7.3  过滤器 138

7.3.1  过滤器的概念 139

7.3.2  实现与设置过滤器 139

7.3.3  请求封装器 141

7.3.4  响应封装器 144

7.4  异步处理 153

7.4.1  AsyncContext简介 153

7.4.2  模拟服务器推送 156

7.5  Registration 动态注入的基础 160

7.6  小结 161

7.7  习题 161

第8章  MySQL 8数据库开发 162

8.1  MySQL数据库入门 162

8.1.1  MySQL的版本特点 162

8.1.2  MySQL 8的安装和配置 163

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

8.2.1  启动MySQL服务 170

8.2.2  登录MySQL数据库 171

8.3  MySQL数据库的基本操作 173

8.3.1  创建数据库 173

8.3.2  删除数据库 174

8.3.3  创建数据库表 175

8.3.4  修改数据库表 176

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

8.3.6  删除数据表 177

8.4  MySQL数据库的数据管理 178

8.4.1  插入数据 178

8.4.2  修改数据 179

8.4.3  删除数据 180

8.5  小结 180

8.6  习题 181

第9章  JSP与Java Bean 182

9.1  Java Bean的基本概念 182

9.2  JSP中使用Bean 183

9.3  访问Bean属性 185

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

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

9.4  Bean的作用域 191

9.5  用户登录验证 197

9.6  DAO设计模式 201

9.6.1  DAO设计模式简介 201

9.6.2  DAO命名规则 202

9.6.3  DAO开发 202

9.6.4  JSP调用DAO 209

9.7  小结 212

9.8  习题 212

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

10.1  EL标签语法 213

10.2  EL标签的功能 214

10.3  EL标签的操作符 217

10.4  EL标签的隐含变量 219

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

10.4.2  隐含变量param、paramValues 219

10.4.3  其他变量 220

10.5  禁用EL标签 222

10.5.1  在整个Web应用中禁用 222

10.5.2  在单个页面中禁用 223

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

10.6  小结 223

10.7  习题 223

第11章  JSTL标签库 224

11.1  JSTL标签概述 224

11.1.1  JSTL的来历 224

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

11.2  JSTL的core标签库 226

11.2.1  <c:set>标签与<c:out>标签 226

11.2.2  <c:if>标签 226

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

11.2.4  <c:set>标签 229

11.2.5  <c:forEach>标签 229

11.2.6  <c:forTokens>标签 230

11.2.7  <c:remove>标签 231

11.2.8  <c:catch>标签 231

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

11.2.10  <c:redirect>标签 232

11.2.11  <c:url>标签 232

11.3  JSTL的fmt标签库 233

11.3.1  国际化标签 233

11.3.2  消息标签 233

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

11.4  JSTL的fn标签库 239

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

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

11.4.3  fn:escapeXml()函数 240

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

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

11.5  JSTL的SQL标签库 241

11.5.1  <sql:setDateSource>标签 242

11.5.2  <sql:query>标签 242

11.5.3  <sql:update>标签 243

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

11.5.5  <sql:transaction>标签 245

11.6  JSTL的XML标签库 246

11.6.1  <x:parse>标签 246

11.6.2  <x:out>标签 247

11.6.3  <x:forEach>标签 247

11.6.4  <x:if>标签 248

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

11.6.6  <x:set>标签 248

11.6.7  <x:transform>标签 249

11.7  小结 249

11.8  习题 249

第12章  自定义标签 251

12.1  编写自定义标签 251

12.1.1  版权标签 251

12.1.2  tld标签库描述文件 253

12.1.3  TagSupport类简介 255

12.1.4  带参数的自定义标签 256

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

12.1.6  多次执行的循环标签 262

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

12.2  嵌套的自定义标签 265

12.2.1  实例:表格标签 265

12.2.2  嵌套标签的配置 267

12.2.3  嵌套标签的运行效果 268

12.3  JSP 2.X标签 269

12.4  小结 272

12.5  习题 272

第13章  JDBC详解 273

13.1  JDBC简介 273

13.1.1  查询实例:列出人员信息 273

13.1.2  各种数据库的连接 276

13.2  MySQL的乱码解决方案 277

13.2.1  从控制台修改编码 277

13.2.2  从配置文件修改编码 278

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

13.2.4  在URL中指定编码方式 279

13.3  JDBC基本操作:CRUD 279

13.3.1  查询数据库 280

13.3.2  插入人员信息 280

13.3.3  注册数据库驱动 285

13.3.4  获取自动插入的ID 285

13.3.5  删除人员信息 285

13.3.6  修改人员信息 286

13.3.7  使用PreparedStatement 292

13.3.8  利用Statement与PreparedStatement批处理SQL 293

13.4  结果集的处理 295

13.4.1  查询多个结果集 295

13.4.2  可以滚动的结果集 295

13.4.3  带条件的查询 295

13.4.4  ResultSetMetaData元数据 300

13.4.5  直接显示中文列名 301

13.5  小结 302

13.6  习题 302

第14章  XML概述 303

14.1  初识XML 303

14.1.1  什么是XML 303

14.1.2  XML的用途 304

14.1.3  XML的技术架构 304

14.1.4  XML开发工具 305

14.2  XML基本语法 306

14.3  JDK中的XML API 309

14.4  最常见的XML解析模型 310

14.4.1  DOM解析 310

14.4.2  SAX解析 313

14.4.3  DOM4j解析 315

14.5  XML与Java类映射JAXB 318

14.5.1  什么是XML与Java类映射 318

14.5.2  JAXB的工作原理 319

14.5.3  将Java对象转化成XML 319

14.5.4  将XML转化为Java对象 321

14.5.5  更为复杂的映射 322

14.6  小结 325

14.7  习题 326

第15章  资源国际化 327

15.1  资源国际化简介 327

15.2  资源国际化编程 327

15.2.1  资源国际化示例 328

15.2.2  资源文件编码 329

15.2.3  显示所有Locale代码 330

15.2.4  带参数的资源 331

15.2.5  ResourceBundle类 332

15.2.6  Servlet的资源国际化 334

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

15.2.8  显示全球时间 337

15.3  小结 338

15.4  习题 339

第16章  家校通门户网站 340

16.1  网页首页的布局 340

16.2  导入样式页面 341

16.3  显示页面头内容 342

16.4  用户登录页面 342

16.5  帮助页面 343

16.6  网页主体内容 343

16.7  网页公告内容 345

16.8  友情链接页面 346

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

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

16.11  小结 347

第17章  在线购物系统 349

17.1  系统需求分析 349

17.2  系统总体架构 350

17.3  数据库设计 351

17.3.1  E-R图 351

17.3.2  数据物理模型 351

17.4  系统详细设计 352

17.4.1  系统包的介绍 352

17.4.2  系统的关键技术 353

17.4.3  过滤器 359

17.5  系统首页与公共页面 360

17.6  用户登录模块 362

17.7  用户管理模块 363

17.7.1  用户注册 363

17.7.2  用户信息修改 367

17.7.3  用户信息查看 369

17.7.4  用户密码修改 370

17.8  购物车模块 372

17.8.1  添加购物车 372

17.8.2  删除购物车 375

17.8.3  查看购物车 375

17.8.4  修改购物车 377

17.9  商品模块 380

17.9.1  查看商品列表 380

17.9.2  查看单个商品 384

17.10  支付模块 384

17.10.1  支付商品 384

17.10.2  查看已支付商品 385

17.10.3  支付中的页面 386

17.11  小结 388