区块链数据中心第一股

400-680-1888

 English

互联在线赞助综合技术类书籍《大型门户网站是这样炼成的》

继赞助《精通Java Web整合开发:JSP+AJAX+Struts+Hibernate》一书出版后,互联在线赞助另一新作Java技术《大型门户网站是这样炼成的》已上市!


基本信息

出版社:电子工业出版社
·页码:907 页
·出版日期:2010年03月
·ISBN:7121102668/9787121102660
·条形码:9787121102660
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:Java开发专家


作者简介


刘斌,互联在线Java架构师、高级软件工程师、Java EE资深讲师。于2007年出版《精通Java Web整合开发:JSP+AJAX+Struts+Hibernate》——书,从事Java EE企业级应用研究十余年,曾负责过多个大型电信、金融与房地产行业项目的系统架构与项目管理工作,积累了丰富的实践经验。对目前主流的JavaEE开源框架颇有研究,尤其对轻量级Java EE的整合开发有独到的见解。


推荐序


在Java EE领域的学术著作中,很少有专门针对大型门户网站从开发技术架构到实例的剖析,再到网站优化与最后服务器部署贯穿全过程且知识体系这么完善的专著。
    在中国目前中小型企业众多,需要大量的全能或多能Web技术专业人才,这样既有利于项目的并进开展,又有利于项目的进度与质量保证。特别是大型门户网站,随着业务的飞速发展,访问量呈指数上升,如何确保业务系统的响应性能满足业务发展的需求是一个从一开始就得重点考虑的问题。这就意味着,从最初的开发技术的选用、服务器操作系统的选用、服务器应用软件的配置与优化到服务器集群与负载均衡的搭建,都必须有一个高性能、可扩展的规划方案。
    Java的诞生,就注定要献身于互联网的进步与发展,实践证明,Java在网络应用方面表现出了优异的性能,再加上后来不断涌现的众多优秀的开源框架,更是为Java Web技术的发展起到举足轻重的作用。这对Java Web程序员而言,是一件无比幸福的事情。

此书的出版,为在大型门户网站开发道路上摸索的程序员带来了曙光,为那些力争完善Web应用项目开发整个知识体系的先进求知者带来了希望,更是开启了Java EE专业应用领域的先河,让Java Web求知者拥有一本直抵理想彼岸的圣经!   大型门户网站是这样炼成的

 

   大型门户网站是这样炼成的1

前 言

随着互联网技术的迅猛发展与Java语言的不断完善与优化,越来越多的Web程序员义无反顾地踏上了Java Web应用开发之路。最原始的Java Web程序全部使用JSP实现,JSP页面既包含HTML标签,又包含Java业务逻辑代码,使得整个JSP页面臃肿而难于维护。SUN公司为规范Java Web应用的开发,相继推出Model1和Model2模式。在Model1模式中引入JavaBean技术,使用JavaBean封装业务逻辑代码,使业务逻辑代码与JSP页面进行有效地分离,对于流程控制JavaBean却无能为力,直到Model2模式引入Servlet技术才真正实现视图层、模型层与控制层的彻底分离,从此,Java Web应用开发进入了一个规范化的时代。Struts 2作为Model2模式的经典实现,具有组件的模块化、灵活性和重用性的优点,同时简化了基于MVC的Java Web应用程序的开发。

时代在发展,技术在进步,对各种复杂数据及业务逻辑的处理要求也在不断提高,MVC三层模型已不能完成满足高性能、低耦合框架结构的分层需求,此时,引入持久层概念,用于封装底层数据的持久化与访问操作。在众多商用或开源的持久层中间件中,Hibernate 3.2由于其功能与性能的优越而成为Struts 2框架最理想的底层数据交换组件。

传统Java EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致Java EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring 2.5作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。 Spring 2.5致力于Java EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring 2.5是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring 2.5并不想取代那些已有的框架,而与它们无缝地整合。

以JSP 2技术为基础,整合Struts 2、Hibernate 3.2与Spring 2.5技术开发Java Web应用已成为主流的Java Web开发技术体系,被喻为Java EE开发领域的“黄金搭档”。



本书主要内容及其组织结构

本书以大型门户网站的开发为例,详细介绍了以JSP 2、Struts 2、Hibernate 3.2、Spring 2.5相结合的Java Web应用开发技术。针对读者的不同学习阶段,共分技术篇、实践篇与部署篇三大部分进行循序渐进的讲解。



技术篇

第1~6章为技术篇,主要针对高性能大型门户网站开发的SSH 2组合框架进行讲解,另外对门户网站的整个体系结构、服务器操作系统的选用、门户网站的开发指导思想及各种服务器软件的应用也进行全面介绍,使读者朋友对门户网站的开发有一个较全面的了解。
技术篇的主要内容包括:
大型门户网站架构分析
MVC混血宠儿Struts 2
Struts 2标签库详解与AJAX技术应用
ORM中间件名流Hibernate 3接管持久层
Hibernate 3持久化技术实践与性能优化
充分利用Spring 2.5的IoC利器统管Bean世界

实践篇
第7~12章为实践篇,以一个大型的电子商务门户网站项目ePortal为综合实例(实例演示网址为http://demo.webjsp.com),淋漓尽致地展示了SSH 2组合框架技术的具体应用细节,使读者对在技术篇中学习的SSH 2技术得以进一步消化吸收。
实践篇的主要内容包括:
SSH2热身——构建新闻发布系统
通用新闻采集系统
会员注册及会员管理系统
举一反三——实现商品分类管理
温故知新——打造购物车与订单管理系统
站务必备——系统用户管理与流量统计

部署篇
第13~15章为部署篇,重点讲解SEO搜索引擎优化及基于RHEL 5的服务器架构技术。
部署篇的主要内容包括:
门户网站的搜索引擎优化——SEO技术
基于RHEL 5的服务器架构
负载均衡与服务器集群

本书特点
本书为轻量级Java EE应用开发人员提供一整套实用的主流开发技术,融入了作者多年的Java EE应用开发经验。任何知识点均配以实例进行讲解,每个实例提供同步配套视频教程,大大缩短了读者的学习周期,降低了学习难度。随书配套光盘除长达数十小时的视频教程外,还提供了书中所有范例的源代码程序。
本书适用对象
本书语言深入浅出,通俗易懂。对于轻量级Java EE应用开发的新手而言,不失为一本好的入门教材,内容既实用又全面,辅以实例视频教程,使读者轻松掌握所学知识;对于行家来说,本书也是一本难得的参考手册。
读者在学习过程中,如有疑问可登录www.webjsp.com网站进行提问与咨询,笔者第一时间会在线为大家提供答疑服务!

目录
第1篇 技术篇
第1章 大型门户网站架构分析 3
1.1 大型门户网站与小型企业网站的区别 3
1.2 高性能、高负载门户网站架构剖析 9
1.2.1 服务器操作系统的选择 10
1.2.2 DNS服务器BIND 16
1.2.3 Cache服务器Squid 18
1.2.4 带负载均衡的HTTP服务器Apache 19
1.2.5 支持集群功能的Web服务器Tomcat 21
1.2.6 开源数据库服务器之骄子MySQL 23
1.2.7 功能强大的FlV流媒体服务器RED5 24
1.3 门户网站开发指导思想 26
1.4 SSH 2组合框架-门户网站开发之首选 28
1.4.1 MVC混血宠儿Struts 2 28
1.4.2 幕后的财政部长Spring 2.5 30
1.4.3 ORM中间件香馍馍Hibernate 3.2 31
1.5 小结 32

第2章 MVC混血宠儿Struts 2 33
2.1 初识MVC新秀Struts 2 33
2.1.1 MVC概述 33
2.1.2 Struts 2的MVC实现 35
2.1.3 Struts 2的基本组成 36
2.1.4 Struts 2的常用类介绍 38
2.1.5 Struts 2的业务控制器Action实现 39
2.1.6 Struts 2的处理结果Result 45
2.1.7 功能强大的表达式语言OGNL 47
2.1.8 Struts 2的运行流程分析-HelloWorld 48
2.1.9 Struts 2的异常处理 52
2.2 Struts 2配置精要 54
2.2.1 web.xml中Struts 2的配置实现 54
2.2.2 Struts 2属性配置文件struts.properties详解 55
2.2.3 Struts 2核心配置文件struts.xml详解 57
2.3 Struts 2应用开发实务 61
2.3.1 Struts 2应用开发环境的搭建 62
2.3.2 Struts 2应用基本开发步骤-搭建ePortal应用 69
2.3.3 Struts 2中集成FCKeditor 80
2.3.4 Struts 2中集成DisplayTag 83
2.4 Struts 2国际化实现 85
2.4.1 Web应用的中文本地化 85
2.4.2 Struts 2应用的国际化 87
2.4.3 Struts 2国际化语言的动态切换 89
2.5 Struts 2的校验框架 90
2.5.1 在Action中实现手动校验 90
2.5.2 调用校验框架进行自动校验 91
2.5.3 自定义国际化Struts 2校验错误消息 92
2.5.4 Struts 2的自带校验器 92
2.6 Struts 2的拦截器 94
2.6.1 Struts 2内建拦截器介绍 95
2.6.2 定义和使用拦截器栈 97
2.6.3 使用自定义拦截器 98
2.7 小结 100

第3章 Struts 2标签库详解与AJAX技术应用 103
3.1 Struts 2主题与模板 103
3.2 Struts 2控制标签详解 105
3.2.1 if/elseif/else标签详解 105
3.2.2 iterator标签详解 106
3.2.3 append标签详解 108
3.2.4 generator标签详解 110
3.2.5 merge标签详解 112
3.2.6 subset标签详解 113
3.2.7 sort标签详解 115
3.3 Struts 2数据标签详解 116
3.3.1 action标签详解 116
3.3.2 bean标签详解 118
3.3.3 date标签详解 120
3.3.4 debug标签详解 121
3.3.5 i18n标签详解 122
3.3.6 include标签详解 123
3.3.7 param标签详解 126
3.3.8 push标签详解 127
3.3.9 set标签详解 128
3.3.10 text标签详解 129
3.3.11 url标签详解 130
3.3.12 property标签详解 132
3.4 Struts 2表单标签详解 134
3.4.1 checkbox标签详解 136
3.4.2 checkboxlist标签详解 137
3.4.3 combobox标签详解 138
3.4.4 doubleselect标签详解 139
3.4.5 file标签详解 141
3.4.6 form标签详解 142
3.4.7 hidden标签详解 143
3.4.8 select标签详解 143
3.4.9 optgroup标签详解 144
3.4.10 optiontransferselect标签详解 144
3.4.11 password标签详解 146
3.4.12 radio标签详解 147
3.4.13 reset与submit标签详解 148
3.4.14 textarea标签详解 149
3.4.15 textfield标签详解 149
3.4.16 token标签详解 150
3.4.17 updownselect标签详解 151
3.5 Struts 2 AJAX标签详解 156
3.5.1 a与submit标签详解 157
3.5.2 autocompleter标签详解 158
3.5.3 datetimepicker标签详解 160
3.5.4 div标签详解 161
3.5.5 head标签详解 162
3.5.6 tabbedPanel标签详解 163
3.6 Struts 2其他标签详解 166
3.6.1 actionerror与actionmessage标签详解 166
3.6.2 fielderror标签详解 167
3.6.3 tree与treenode标签详解 168
3.7 Struts 2全力支持AJAX 174
3.7.1 Struts 2中原始AJAX技术应用 174
3.7.2 基于DWR的AJAX实现 179
3.7.3 基于DWR的AJAX表单验证 183
3.7.4 基于JSON插件的AJAX实现 185
3.8 小结 190

第4章 ORM中间件名流Hibernate 3接管持久层 191
4.1 ORM简介 191
4.1.1 持久化与持久层 191
4.1.2 JDBC劣势 192
4.1.3 实体域模型与关系数据模型 193
4.1.4 ORM中间件 196
4.2 Hibernate简介 196
4.2.1 Hibernate体系结构 196
4.2.2 Hibernate API简介 197
4.2.3 配置Hibernate 198
4.2.4 Hibernate的映射配置文件 201
4.2.5 体验Hibernate(会员管理) 203
4.3 Hibernate的映射机制 212
4.3.1 Hibernate的基本映射数据类型 212
4.3.2 Hibernate的主键映射 218
4.3.3 Hibernate的实体映射 228
4.3.4 映射一对一关联关系 228
4.3.5 映射多对一单向关联关系 235
4.3.6 映射一对多双向关联关系 239
4.3.7 映射一对多双向自身关联关系 244
4.3.8 映射多对多单向关联关系 247
4.3.9 映射多对多双向关联关系 252
4.3.10 映射组成关系 256
4.3.11 映射继承关系 260
4.3.12 Hibernate的集合映射 266
4.4 小结 270

第5章 Hibernate 3持久化技术实践与性能优化 271
5.1 操作持久化对象的常用方法介绍 271
5.1.1 使用Session的beginTransaction()方法 272
5.1.2 使用Session的close()方法 273
5.1.3 使用Session的connection()方法 273
5.1.4 使用Session的delete()方法 274
5.1.5 使用Session的get()方法 274
5.1.6 使用Session的load()方法 275
5.1.7 使用Session的save()方法 275
5.1.8 使用Session的update()方法 276
5.1.9 使用Session的saveOrUpdate()方法 276
5.1.10 使用Hibernate的isInitialized()与initialize()方法 277
5.1.11 持久化对象间的级联操作 277
5.2 Hibernate的检索策略 291
5.2.1 立即检索 291
5.2.2 延迟检索 296
5.2.3 迫切左外连接检索 300
5.3 HQL查询方式 303
5.3.1 基本查询 303
5.3.2 条件查询 305
5.3.3 分页查询 307
5.3.4 连接查询 308
5.3.5 子查询 311
5.3.6 动态实例化查询结果 313
5.4 QBC查询方式 314
5.4.1 基本查询 315
5.4.2 QBE查询 317
5.4.3 分页查询 318
5.4.4 复合查询 318
5.4.5 离线查询 319
5.5 本地SQL查询 320
5.6 Hibernate的批量处理 322
5.6.1 批量插入 322
5.6.2 批量更新 323
5.6.3 批量删除 324
5.7 Hibernate的事务管理 325
5.7.1 事务边界声明 325
5.7.2 并发控制 326
5.7.3 悲观锁 327
5.7.4 乐观锁 328
5.8 Hibernate的缓存机制 332
5.8.1 Hibernate的缓存分类 332
5.8.2 Hibernate的缓存范围 332
5.8.3 Hibernate的缓存管理 333
5.8.4 Hibernate二级缓存的并发访问策略 333
5.8.5 Hibernate的二级缓存配置 334
5.9 Hibernate应用的性能优化 336
5.10 多数据源的应用 338
5.11 JDBC的应用 343
5.12 Hibernate调用存储过程 343
5.13 XML数据持久化 346
5.14 小结 348

第6章 充分利用Spring 2.5的IoC利器统管Bean世界 349
6.1 Java程序员的春天厚礼-Spring 2.5 349
6.1.1 爱上Spring 2.5的十大理由 350
6.1.2 一睹Spring 2.5芳容 351
6.1.3 Spring 2.5拿手戏——控制反转与依赖注入 353
6.1.4 何为“面向切面编程AOP” 356
6.1.5 Spring 2.5圣经——面向接口编程 358
6.1.6 开始Spring 2.5旅程-Hello World 359
6.2 Spring 2.5核心技术 364
6.2.1 Bean工厂之BeanFactory介绍 364
6.2.2 实用的Bean工厂ApplicationContext 365
6.2.3 Spring 2.5配置文件详解 367
6.2.4 Bean的作用域与生命周期 374
6.2.5 基于XML方式的Bean装配 376
6.2.6 基于Annotation方式的Bean装配 381
6.2.7 基于XML方式的AOP实现 386
6.2.8 基于Annotation方式的AOP实现 391
6.3 Spring 2.5事务管理机制 393
6.3.1 Spring 2.5的声明式事务管理 394
6.3.2 基于XML方式的事务管理配置 396
6.3.3 基于Annotation方式的事务管理配置 400
6.4 “桃园三结义”——SSH 2组合开发框架始成 404
6.4.1 Spring 2.5集成ORM中间件Hibernate 3.2 404
6.4.2 Spring 2.5集成MVC框架Struts 2 411
6.4.3 SSH 2组合框架的基本开发步骤-ePortal启程 414
6.5 小结 423

第2篇 实践篇
第7章 SSH 2热身——构建新闻发布系统 427
7.1 门户网站新闻资讯基本分类 427
7.2 新闻发布系统需求分析 429
7.3 新闻发布系统功能设计 429
7.4 新闻栏目后台管理 432
7.4.1 展示层JSP 2+Struts 2 标签库实现 434
7.4.2 控制层Struts2实现 445
7.4.3 持久层Hibernate3实现 453
7.4.4 Spring2接管业务逻辑层 460
7.5 新闻内容后台管理 464
7.5.1 展示层JSP2+Struts2标签库实现 464
7.5.2 控制层Struts 2实现 481
7.5.3 持久层Hibernate3实现 492
7.5.4 Spring2接管业务逻辑层 495
7.6 新闻资讯前台展现 497
7.6.1 文本新闻列表自定义标签类TextnewsTag 498
7.6.2 文本新闻列表分页控制自定义标签类TextnewsPageTag 502
7.6.3 图片新闻列表自定义标签类PicnewsTag 505
7.6.4 幻灯片新闻列表自定义标签类SlidenewsTag 507
7.6.5 Struts2与AJAX完全结合实现点击数加一 510
7.7 基于HttpClient构建通用静态页面发布引擎 514
7.7.1 优秀的模拟浏览器HttpClient 514
7.7.2 构建通用静态页面发布引擎 516
7.8 小结 518

第8章 通用新闻采集系统 519
8.1 新闻采集系统需求分析 519
8.2 新闻采集系统功能设计 520
8.3 使用正则表达式与HTMLParser采集新闻内容 522
8.3.1 正则表达式基本知识 522
8.3.2 体验HTMLParser 525
8.4 量身定制采集规则 536
8.4.1 展示层JSP 2+Struts 2标签库实现 537
8.4.2 控制层Struts 2实现 550
8.4.3 持久层Hibernate3实现 557
8.4.4 Spring 2接管业务逻辑层 560
8.5 新闻采集功能实现 562
8.6 小结 573

第9章 会员注册及会员管理系统 575
9.1 会员管理系统需求分析 575
9.2 会员管理系统功能设计 576
9.3 会员级别后台管理 578
9.3.1 展示层JSP 2+Struts 2标签库实现 579
9.3.3 持久层Hibernate 3实现 592
9.3.4 Spring 2接管业务逻辑层 593
9.4 注册会员后台管理 595
9.4.1 展示层JSP 2+Struts 2标签库实现 596
9.4.2 控制层Struts2实现 605
9.4.3 持久层Hibernate3实现 614
9.4.4 Spring 2接管业务逻辑层 616
9.5 前台会员注册与登录 618
9.6 小结 623

第10章 举一反三-实现商品分类管理 625
10.1 商品管理系统需求分析 625
10.2 商品管理系统功能设计 626
10.3 商品类别后台管理 628
10.3.1 展示层JSP 2+Struts 2标签库实现 629
10.3.2 控制层Struts 2实现 637
10.3.3 持久层Hibernate3实现 643
10.3.4 Spring2接管业务逻辑层 644
10.4 商品后台管理 646
10.4.1 展示层JSP 2+Struts 2标签库实现 647
10.4.2 控制层Struts 2实现 662
10.4.3 持久层Hibernate3实现 672
10.4.4 Spring 2接管业务逻辑层 675
10.5 小结 677

第11章 温故知新-打造购物车与订单管理系统 679
11.1 购物车与订单管理系统需求分析 679
11.2 购物车及订单管理系统功能设计 680
11.3 购物车自助管理 682
11.3.1 展示层JSP2+Struts2标签库实现 683
11.3.2 控制层Struts 2实现 696
11.3.3 持久层Hibernate3实现 703
11.3.4 Spring2接管业务逻辑层 707
11.4 订单管理 710
11.4.1 展示层JSP 2+Struts 2标签库实现 711
11.4.2 控制层Struts 2实现 720
11.4.3 持久层Hibernate 3实现 728
11.4.4 Spring 2接管业务逻辑层 730
11.5 小结 733

第12章 站务必备-系统用户管理与流量统计 735
12.1 系统用户管理与流量统计需求分析 735
12.2 系统用户管理与流量统计功能设计 737
12.3 系统用户管理 738
12.3.1 展示层JSP 2+Struts 2标签库实现 739
12.3.2 控制层Struts 2实现 753
12.3.3 持久层Hibernate3实现 759
12.3.4 Spring2接管业务逻辑层 760
12.4 流量统计分析 762
12.4.1 展示层JSP 2+Struts 2标签库实现 763
12.4.2 控制层Struts 2实现 771
12.4.3 持久层Hibernate3实现 774
12.4.4 Spring2接管业务逻辑层 776
12.5 小结 777

第3篇 部署篇
第13章 门户网站的搜索引擎优化-SEO技术 781
13.1 为什么要进行搜索引擎优化 781
13.1.1 搜索引擎概述 781
13.1.2 网络营销催生SEO 784
13.1.3 SEO让你的网站脱颖而出 785
13.2 搜索引擎到底喜欢什么样的网站 787
13.2.1 影响网站自然排名的主要因素 787
13.2.2 评价网站优劣的重要指标 788
13.2.3 正确看待SEO 793
13.2.4 远离Google的“沙盒” 793
13.3 搜索引擎优化最佳实践 794
13.3.1 如何快速被搜索引擎收录 794
13.3.2 建立合理的网站结构与网站地图的应用 795
13.3.3 设计良好的网页结构 798
13.3.4 SEO基本功——关键词的选用 800
13.3.5 域名与空间对SEO的影响 802
13.3.6 搜索引擎偏爱“勤快”的网站 804
13.4 搜索引擎优化辅助工具大本营 805
13.4.1 关键字选词辅助工具 806
13.4.2 关键字排名查询 807
13.4.3 关键字密度查询 808
13.4.4 热门关键字及搜索量查询 808
13.4.5 PR值查询 809
13.4.6 Alexa世界排名查询 810
13.4.7 搜索引擎收录页面数查询 811
13.4.8 搜索引擎反向链接查询 812
13.4.9 网站地图制作工具 812
13.4.10 百度指数查询 814
13.4.11 网页中无效链接检测工具 816
13.5 小结 819

第14章 基于RHEL 5的服务器架构 821
14.1 Red Hat Enterprise Linux 5安装与优化 821
14.2 Linux客户端工具Secure SSH安装与应用 829
14.3 RHEL5服务器维护的基本操作 831
14.3.1 系统维护相关的Linux命令 831
14.3.2 文件操作相关的Linux命令 837
14.3.3 网络维护相关的Linux命令 840
14.3.4 日志查看相关的Linux命令 843
14.3.5 用户管理相关的Linux命令 843
14.3.6 应用软件安装相关的Linux命令 844
14.4 RHEL5中的JDK1.6安装 845
14.5 RHEL5中的MySQL5安装与性能优化 846
14.6 基于vsftpd搭建FTP服务器 849
14.7 RHEL5中的Tomcat6安装与性能优化 853
14.8 RHEL5中的Apache2.2安装与性能优化 856
14.9 Apache2.2配置文件httpd.conf详解 861
14.10 使用subversion搭建SVN版本控制服务器 876
14.11 利用Red5搭建Flash流媒体服务器 880
14.12 利用vncserver服务实现远程桌面 886
14.13 小结 889

第15章 负载均衡与服务器集群 891
15.1 Web服务器集群概述 892
15.2 搭建Apache2.2+Tomcat6分工协作服务器架构 894
15.3 构建Apache2.2负载均衡与Tomcat6集群 897
15.4 搭建主从结构的MySQL数据库集群 902
15.5 基于MySQL Proxy的负载均衡与读写分离 905
15.6 小结 907