《Java Web开发技术大全 JSP+Servlet+Struts 2+Hibernate+Spring+AJAX》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:李宁等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302195757
  • 页数:807 页
图书介绍:SSH是目前最流行的Java Web开发技术。本书通过对SSH中的各种技术循序渐进地讲解来使读者尽快掌握开发基于SSH的Web程序的方法。

第1篇 Web开发基础篇 2

第1章 搭建开发环境 2

本书使用的软件和框架的版本 2

JDK6的下载与安装 2

Eclipse 3.4的下载与安装 3

MyEclipse 6.5的下载与安装 3

Eclipse IDE for Java EE Developers的下载与安装 4

Tomcat 6的下载与安装 5

在MyEclipse中配置Tomcat 6

在Eclipse IDE for Java EE Developers中配置Tomcat 6

小结 7

第2章Java Web应用开发基础 8

Web技术的发展 8

Java Web技术 10

Java Web程序的基本组成 11

Java Web程序的目录结构 11

Java Web程序的配置文件 11

MVC模式与MVC框架 12

JSP模型1和JSP模型2 12

Web应用程序需要的基础服务 13

MVC模式概述 14

常用的MVC框架 15

小结 16

第3章Web开发中的客户端技术 17

常用的JavaScript IDE简介 17

在MyEclipse中使用JavaScript 17

在Eclipse IDE for Java EE中使用JavaScript 18

在NetBeans中使用JavaScript 19

其他的JavaScript IDE 20

JavaScript语法基础 20

实例:编写第一个JavaScript程序:Greet 21

变量 22

原始类型 22

类型转换 26

函数与函数调用 28

类和对象 30

JavaScript高级技术 32

DOM技术概述 32

获得HTML元素的3种方法 34

实例:图像自动切换 36

正则表达式 37

实例:表格排序 38

CSS基础 41

CSS的基本语法 41

在Style属性中定义样式 42

在HTML中定义样式 42

在外部文件中定义样式 43

样式的继承 43

AJAX基础 44

AJAX概述 44

实例:使用XMLHttpRequest获得Web资源 45

实例:使用XMLHttpRequest跨域访问Web资源 46

实例:AJAX的3种交换数据方法 47

小结 49

第4章Servlet技术 50

Servlet的Helloworld程序 50

实例:在MyEclipse中编写Helloworld程序 50

实例:手工编写Helloworld程序 53

Servlet基础 54

配置数据库连接池 55

数据库连接池的应用 56

实例:用doGet方法处理客户端请求 58

实例:用doPost方法处理客户端请求 60

实例:用service方法处理客户端请求 60

实例:初始化(init)和销毁(destroy)Servlet 62

实例:使用PrintWriter输出响应消息 64

实例:用ServletOutputStream显示图像 65

实例:使用RequestDispatcher包含Web资源 66

实例:使用RequestDispatcher转发Web资源 68

HttpServletResponse类的其他功能 69

产生状态响应码 70

设置响应消息头 71

实例:验证响应头设置情况 73

使用HttpServletRequest获得请求消息 73

获取请求行消息 74

获取网络连接消息 74

获取请求头消息 75

处理Cookie 76

什么是Cookie 76

Cookie类中的方法 76

实例:用Cookie读写客户端信息 77

实例:用Cookie读写复杂数据 79

处理Session 81

什么是Session 81

HttpSession接口中的方法 81

HttpServletRequest接口中的Session方法 83

实例:通过Cookie跟踪Session 83

实例:通过重写URL跟踪Session 85

Web开发的中文问题 87

Java的编码原理 87

实例:解决输出中文乱码问题 89

实例:解决服务端程序读取中文请求消息的乱码问题 90

实例:用AJAX技术发送和接收中文信息 92

实例:在请求消息头和响应消息头中转输中文 95

小结 97

第5章JSP技术 98

用MyEclipse编写第一个JSP程序 98

实例:编写显示服务器当前时间的JSP程序 98

调试JSP程序 100

改变JSP的访问路径和扩展名 101

手动发布JSP程序 102

JSP的运行原理 102

Tomcat如何处理JSP页 103

分析由JSP生成的Servlet代码 104

JSP基本语法 108

JSP表达式 109

在JSP中嵌入Java代码 109

JSP声明 111

JSP表达式语言(EL) 113

实例:用EL函数替换HTML中的特殊字符 115

JSP页面中的注释 117

JSP指令 118

JSP指令简介 118

page页面指令 119

include加入指令 125

JSP的9个内置对象 126

out输出对象 126

pageContext封装对象 128

其他的JSP内置对象 129

JSP标签 132

<jsp:include>插入标签 132

<jsp:forward>转发标签 134

<jsp:param>传参标签 135

<jsp:useBean>创建Bean标签 136

<jsp:setProperty>设置属性值标签 138

<jsp:getProperty>获取属性值标签 140

JSP的标准标签库(JSTL) 140

如何使用JSTL 141

条件标签 142

循环标签 144

小结 147

第6章用Servlet和JSP实现注册登录系统 148

系统概述 148

系统功能简介 148

系统总体结构 149

设计数据库 149

实现系统的基础类 150

实现访问数据库的DBServlet类 150

实现MD5加密 152

实现图形验证码 152

实现注册系统 155

实现注册Servlet类 155

实现注册系统的主页面 157

实现结果JSP页面 159

实现登录系统 160

实现登录Servlet 160

实现登录系统主页面 162

小结 163

第2篇 Struts 2篇 166

第7章 编写Struts 2的第一个程序 166

Struts 2中的MVC模式 166

Struts 2的体系结构 167

Struts 2的工作流程 167

Struts 2的配置文件 167

Struts 2的控制器 169

实例:图书查询系统 170

下载和安装Struts 2 170

编写数据处理类 171

编写和配置Action类 172

编写显示查询结果的JSP页面 174

编写输入查询信息的JSP页面 176

小结 177

第8章Struts 2进阶 178

Struts 2的基本配置 178

配置web.xml 178

配置struts.xml 179

配置struts.properties 183

Struts 2的DTD 186

深入理解Struts 2的配置元素 188

配置Bean 188

配置常量(constant) 190

配置包含(include) 191

配置包(package) 192

配置命名空间 193

配置拦截器 194

Struts 2注释(Annotation) 195

ParentPackage注释:设置当前包的父包 195

Namespace注释:指定当前包的命名空间 196

Results与Result注释:指定当前Action结果 197

实例:用注释配置Action 197

Struts 2的Action 200

Action类的getter和setter方法 200

实现Action接口 202

继承ActionSupport类 203

实例:用ActionContext访问Servlet API 205

实例:通过aware拦截器访问Servlet API 209

实例:利用动态方法处理多个提交请求 211

实例:利用method属性处理多个提交请求 213

使用通配符 214

默认Action 218

处理结果 218

配置结果 218

Struts 2支持的处理结果类型 219

用通配符指定结果 222

用请求参数指定结果 223

模型驱动 224

ModelDriven概述 224

实例:使用模型驱动改进登录程序 226

处理异常 228

Struts 2处理异常的原理 229

实例:登录系统的异常处理 230

小结 233

第9章Struts 2的拦截器 234

理解拦截器 234

拦截器的实现原理 234

实例:模拟Struts 2实现一个拦截器系统 237

配置Struts 2拦截器 242

配置拦截器 242

使用拦截器 244

默认拦截器 245

实例:自定义拦截器 247

编写拦截器类 247

配置自定义拦截器 249

拦截器的高级技术 251

过滤指定的方法 251

拦截器执行顺序 254

拦截器结果监听器 255

Struts 2内建的拦截器 258

内建拦截器 258

内建拦截器的配置 260

实例:编写权限验证拦截器 262

编写权限验证拦截器类 263

配置权限控制拦截器 263

小结 265

第10章Struts 2的类型转换 266

为什么要进行类型转换 266

客户端和服务端之间的数据处理过程 266

传统的类型转换 267

使用Struts 2类型转换器 270

Struts 2内建的类型转换器 271

实例:实现基于OGNL的类型转换器 274

配置全局类型转换器 278

实例:实现基于Struts 2的类型转换器 280

实例:实现数组类型转换器 282

实例:实现集合类型转换器 284

实例:使用OGNL表达式进行类型转换 287

Struts 2对Collection和Map的支持 289

指定集合元素的类型 289

Set和索引属性 291

类型转换的错误处理 292

小结 294

第11章Struts 2的输入校验 295

传统的数据校验方法 295

用JavaScript进行客户端校验 295

手工进行服务端校验 300

Struts 2的数据校验 303

Struts 2使用validate方法校验数据的原理 303

实例:使用validate方法进行输入校验 305

实例:使用validateXxx方法进行输入校验 308

Struts 2的输入校验流程 311

使用Validation框架进行输入校验 312

实例:服务端校验 313

字段校验器和非字段校验器 315

国际化错误提示信息 317

实例:客户端校验 319

校验文件的命名规则 323

短路校验器 325

Validation框架的内建校验器 327

注册和引用校验器 327

转换(conversion)校验器 328

日期(date)校验器 329

双精度浮点数(double)校验器 330

邮件地址(email)校验器 331

表达式(expression)校验器 332

字段表达式(fieldexpression)校验器 332

整数(int)校验器 333

正则表达式(regex)校验器 334

必填(required)校验器 335

必填字符串(requiredstring)校验器 335

字符串长度(stringlength)校验器 336

网址(url)校验器 337

visitor校验器 337

小结 341

第12章 文件的上传和下载 342

文件上传原理 342

表单数据的编码方式 342

applicaiton/x-www.form-urlencoded编码方式 343

multipart/form-data编码方式 345

使用Commons-FileUpload上传文件 348

下载和安装Commons-FileUpload组件 348

实例:上传单个文件 349

实例:上传任意多个文件 352

实例:Struts 2的文件上传 355

Struts 2对上传文件的支持 355

编写上传文件的JSP页 355

编写上传文件的Action类 356

配置上传文件的Action类 358

手工过滤上传文件的类型 359

用fileUpload拦截器过滤上传文件的类型 361

在Struts 2中上传多个文件 363

实例:用数组上传固定数目的文件 363

实例:用List上传任意数目的文件 366

文件下载 368

下载文件的中文问题 368

用stream结果下载文件 369

下载文件的授权控制 371

小结 372

第13章 国际化 373

国际化基础 373

程序为什么需要国际化 373

Java国际化中的资源文件 374

Java支持的语言和国家 375

资源文件的中文支持 376

编写国际化程序 377

带占位符的国际化信息 379

实例:使用资源文件编写国际化程序 380

Java国际化中的资源类 383

实例:使用资源类编写国际化程序 384

Struts 2的国际化基础 385

Struts 2中的全局资源文件 386

在Struts 2中访问国际化信息 386

在Struts 2中输出带占位符的国际化信息 389

资源文件的作用范围和加载顺序 391

包范围资源文件 391

接口范围资源文件 393

Action基类范围资源文件 395

Action范围资源文件 396

临时资源文件 397

加载资源文件的顺序 398

实例:编写支持多国语言的Web应用程序 399

通过i 18n拦截器实现国际化 400

为register jsp页面增加语言选择列表 401

将register.jsp页面映射成Action 402

小结 404

第14章Struts 2的标签库 405

Struts 2标签基础 405

Struts 2标签的分类 405

使用Struts 2标签 406

Struts 2中的OGNL表达式 408

用OGNL表达式访问内置对象 411

用OGNL表达式操作集合 412

Lamdba(λ)表达式 414

控制标签 415

if/elseif/else标签:条件逻辑控制 415

iterator标签:数组、集合迭代 418

append标签:将集合以追加方式合并为新集合 422

generator标签:将字符串分割成多个子串 424

merge标签:将集合以交替方式合并为新集合 427

subset标签:获得集合的子集 428

sort标签:对集合进行排序 430

数据标签 432

action标签:在JSP页面中直接访问Action 432

bean标签:创建JavaBean的对象实例 434

date标签:格式化日期/时间 436

debug标签:显示调试信息 438

include标签:包含Web资源 439

param标签:为其他的标签提供参数 440

property标签:输出指定的值 440

push标签:将指定值放到 ValueStack栈顶 441

set标签:将某个值保存在指定的范围 442

url标签:生成URL地址 444

表单标签 446

表单标签的通用属性 446

表单标签的name和value属性 447

form、 submit和reset标签:表单、提交和重置 449

checkboxlist标签:生成多个复选框 449

combobox标签:组合单行文本框和下拉列表框 452

datetimespicker标签:组合文本框和日期、时间选择框 454

doubleselect标签:生成级联列表框 457

head标签:添加CSS和JavaScript 458

optiontransferselect标签:生成可交互的两个列表框 459

select标签:生成列表框 461

optgroup标签:生成下拉列表框选项组 462

radio标签:生成多个单选框 463

token标签:防止多次提交表单 464

updownselect标签:生成高级列表框 465

其他的表单标签 467

非表单标签 467

fielderror标签:显示字段错误信息 467

actionerror和actionmessage标签:显示动作错误和动作消息 468

component标签:使用模板 469

小结 471

第15章Struts 2对AJAX的支持 472

Struts 2的AJAX主题 472

基于AJAX的输入校验 474

下载和安装DWR框架 474

编写具有AJAX校验功能的注册页面 475

编写Action类 476

设置校验规则 477

在表单中使用AJAX 479

实现可异步提交的表单 479

实现Action类 479

实现结果处理页面 480

执行JavaScript代码 481

发布-订阅(pub-sub)事件模型 483

pub-sub事件模型的原理 483

pub-sub事件模型演示 484

阻止请求服务端资源 487

使用Struts 2中的AJAX标签 488

div标签的基本应用 488

使用div标签执行JavaScript 491

手动控制div标签的更新 493

submit标签:发送异步请求 496

a标签:可异步提交请求的链接 498

autocompleter标签:带自运完成功能的文本框 501

tabbedPanel标签:生成Tab页 507

treenode和tree标签:树节点和树组件 511

使用JSON插件实现AJAX 513

下载和安装JSON插件 513

下载和安装prototype.js 513

实现Action类 514

在JSP页面中通过Prototype请求Action 515

小结 517

第16章用Struts 2实现注册登录系统 518

系统总体结构 518

实现DAO层 518

实现DAOSupport类 519

实现UserDAO接口 520

实现UserDAOImpl类 520

实现Action类 522

实现模型类(User) 522

实现LoginAction类 523

实现RegisterAction类 525

输入校验 526

校验登录页面 526

校验注册页面 527

实现表现层页面 528

实现登录页面(login.jsp) 528

实现注册页面(register.jsp) 530

实现主页面(main.jsp) 531

实现其他的功能 532

使用Action类生成验证码图像 532

使用拦截器验证页面访问权限 534

小结 536

第3篇 Hibernate篇 538

第17章Hibernate的Helloworld程序 538

Hibernate概述 538

为什么要使用ORM 538

Hibernate和EJB的关系 539

在应用程序中使用Hibernate 3 539

MyEclipse对Hibernate 3的支持 540

下载和安装新版本的Hibernate 3 542

第1个Hibernate程序 543

开发Hibernate程序的基本步骤 543

建立数据表 543

建立Hibernate配置文件 543

建立会话工厂(SessionFactory)类 544

建立实体Bean和Struts 2的模型类 547

建立映射文件 548

建立添加记录的Action类 548

建立录入信息的JSP页面 550

小结 552

第18章 配置Hibernate 553

用传统的方法配置Hibernate 553

用XML文件配置Hibernate 553

用属性文件配置Hibernate 556

用编程的方式配置Hibernate 556

Hibernate框架的配置属性 557

SQL方言(Dialect) 561

使用JNDI数据源 562

配置映射文件 563

使用注释(Annotations)配置Hibernate 564

Hibernate注释简介 564

安装Hibernate注释 564

使用@Entity注释实体Bean 565

使用@Table注释实体Bean 565

使用@Id注释主键 566

使用@GenericGenerator注释产生主键值 567

使用@Basic和@Transient注释 568

更高级的Hibernate注释 568

使用注释重新实现Helloworld程序 569

使用注释配置实体Bean 569

在Hibernate配置文件中指定实体Bean的位置 570

使用AnnotationConfiguration类处理annotation.cfg.xml文件 570

通过AnnotationSessionFactory类获得Session对象 571

小结 572

第19章Hibernate的会话与O/R映射 573

会话(Session)的基本应用 573

保存持久化对象 573

判断持久化对象之间的关系 574

装载持久化对象 575

刷新持久化对象 577

更新持久化对象 578

删除持久化对象 579

建立O/R映射 579

映射主键 579

映射复合主键 580

实例:主键和复合主键的查询和更新 581

映射普通属性 586

建立组件(Component)映射 587

实例:组件映射的应用 588

基于注释的组件映射 592

建立多对一(many-to-one)单向关联关系 593

实例:多对一关系的演示 593

基于注释的多对一关系映射 597

建立一对多(one-to-many)的双向关联关系 598

实例:一对多双向关联的演示 598

基于注释的一对多映射 601

建立基于外键的一对一(one-to-one)的关系映射 602

实例:基于外键的一对一关系演示 603

建立基于主键的一对一的关系映射 606

实例:基于主键的一对一关系映射 607

小结 610

第20章Hibernate的查询与更新技术 612

标准(Criteria)查询API 612

实例:一个简单的例子 612

查询的约束条件 613

对查询结果进行分页 615

实例:实现Web分页功能 617

只获得一个持久化对象 620

对查询结果进行排序 621

多个Criteria之间的关联 621

聚合和分组 622

使用QBE (Query By Example) 624

HQL和SQL技术 625

实例:使用HQL的第一个例子 625

From子句:简化实体Bean类名 626

Select子句:选择返回属性 628

Where子句:指定条件 629

使用命名参数 630

使用Query进行分页 631

实例:使用HQL实现Web分页功能 631

使用HQL进行排序和分组 632

关联查询 633

聚合函数 635

Update和Delete语句:更新持久化对象 636

Insert语句:插入记录 637

命名查询 638

使用SQL 639

小结 640

第21章Hibernate的高级技术 641

事务管理 641

事务概述 641

事务的隔离等级 642

Hibernate的事务管理 643

基于JDBC的事务管理 643

基于JTA的事务管理 644

锁(Locking) 644

悲观锁(Pessimistic Locking) 644

乐观锁(Optimistic Locking) 646

查询缓存(Query Cache) 648

拦截器和事件 649

拦截器(Interceptors)概述 649

实例:编写一个Hibernate拦截器 649

事件(Events)概述 653

实例:编写和注册事件类 654

过滤器 656

小结 657

第4篇 Spring篇 660

第22章Spring的Helloworld程序 660

Spring简介 660

Spring的主要特性 660

Spring的核心技术 661

在应用程序中使用Spring 662

MyEclipse 6.5对Spring的支持 662

下载和安装Spring 663

实例:开发一个Helloworld程序 664

编写HelloService接口 664

编写HelloServiceImpl类 664

装配HelloServiceImpl类 665

通过装配Bean的方式获得HelloService对象 665

小结 666

第23章 反向控制(loc)与装配JavaBean 667

反向控制(Ioc) 667

什么是依赖注入 667

传统解决方案的缺陷 668

用Ioc降低耦合度 669

手动装配JavaBean 670

装配Bean的方法 670

与Bean相关的接口 671

<bean>标签的常用属性 672

装配普通属性 673

装配集合属性 676

设置属性值为null 680

装配构造方法 680

自动装配JavaBean 683

分散配置 685

定制属性编辑器 687

小结 690

第24章Spring中的数据库技术 691

获得DataSource 691

通过JNDI获得DataSource 691

从第三方的连接池获得DataSource 692

使用DriverManagerDataSource 693

在Spring中使用JDBC 693

装配JdbcTemplate类 693

向数据库中写数据 694

从数据库中读数据 696

调用存储过程 699

自增键 700

异常处理 701

在Spring中使用Hibernate 702

集成Spring和Hibernate 702

使用HibernateTemplate 703

小结 705

第25章Spring的其他高级技术 706

Spring AOP 706

AOP概述 706

AOP术语简介 707

4种通知(Advice)的作用 708

通过Advisor指定切入点 714

使用控制流切入点 716

Spring的事务管理 718

实例:使用程序控制事务 718

声明式事务 720

事务属性的种类 722

设置事务属性 724

设置特定方法的事务属性 725

实例:建立和访问RMI服务 727

实例:发送E-mail 729

调度任务 731

小结 732

第5篇 综合实例篇 734

第26章Struts 2与Hibernate、Spring的整合 734

整合Struts 2和Hibernate框架 734

整合的思路 734

整合后的系统层次 735

实现数据访问层 735

实现业务逻辑层 737

Struts 2和Hibernate共享实体Bean 739

整合Spring框架 740

装配数据访问层 740

装配业务逻辑层 742

使用Struts 2的Spring插件 742

小结 743

第27章 网络硬盘 744

系统概述 744

系统功能简介 744

系统架构设计 746

数据库设计 746

实现持久对象层 748

实现用户实体Bean 749

实现目录实体Bean 750

实现文件实体Bean 751

映射MySQL存储过程 752

配置hibernate.cfg.xml 753

实现数据访问层 754

实现DAOSupport类 754

实现UserDAO接口和UserDAOImpl类 754

实现DirectoryDAO接口和DirectoryDAOImpl类 755

实现FileDAO接口和FileDAOImpl类 757

实现业务逻辑层 758

实现UserService接口和UserServiceImpl类 758

实现DirectoryService接口和DirectoryServiceImpl类 760

实现FileService接口和FileServicelmpl类 762

实现服务管理类 764

配置Spring 765

实现Web表现层 767

实现基础动作类(BaseAction) 768

实现用户登录页面和处理登录的Action类 769

实现注册登录页面和处理注册的Action类 771

实现网络硬盘主页面 771

建立目录 773

实现文件上传 774

实现文件和目录下载 775

使用拦截器控制页面访问权限 779

其他功能的实现 780

小结 780

第28章 论坛系统 782

系统功能简介 782

数据库设计 783

实现持久对象层 785

实现主题实体Bean 785

实现回复实体Bean 787

配置hibernate.cfg.xml 788

实现数据访问层 788

实现TopicDAO接口和TopicDAOImpl类 789

实现ReviewDAO接口和ReviewDAOImpl类 790

实现业务逻辑层 791

实现TopicService接口和TopicServiceImpl类 791

实现ReviewService接口和ReviewServiceImpl类 793

实现服务管理类 795

配置Spring 795

整合FCKEditor组件 796

安装FCKEditor 796

配置FCKEditor 797

修改FCKEditor自带的Servlet 800

产生FCKEditor的客户端脚本 800

实现Web表现层 801

浏览论坛的主题列表 801

发布新主题 804

浏览主题和回复内容 805

回复主题 806

小结 807