首页>参考读物>计算机科学与技术>软件与程序设计

JSP核心技术
作者 : Damon Hougland Aaron Tavistock
译者 : 马朝晖等译
出版日期 : 2001-08-01
ISBN : 7-111-09055-1
定价 : 42.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 245
开本 : 16开
原书名 : Core JSP
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书深入介绍了JSP核心技术,包括JSP语法、Servlet与Bean之间的交互、应用程序的分割和部署等内容。全书浓缩精炼、简明实用,既适合Java程序员阅读,也可供其他有关人员学习参考。

图书序言

在近几年中,大量的软件开发活动已经从客户迁移到了服务器。以客户为中心的模型(即,客户执行复杂的程序来显示和格式化数据)被认为不再适合于主要的企业应用程序。首要的原因是部署—将客户程序部署到大量的桌面,并且在应用程序发生变化时重新部署它们,是非常烦人的。取而代之的是,将应用程序重新设计为使用一个Web浏览器作为“终端”。应用程序本身驻留在服务器上,它将数据格式化为适合用户浏览的Web页面,并且处理用户填入Web表单的响应。
如果你打算开发一个Web应用程序,就需要选择一种具有几种重要功能的技术。你需要能够方便地产生大量动态HTML。你还需要访问数据库和其他资源。此技术必须提供一种有利于性能和稳定性的体系结构基础。最后,你必须能够以一种有利于未来的增长和可维护性的方式将你的程序逻辑分解。
最初的Web应用程序使用CGI(通用网关接口)机制和一些服务器端脚本,这些脚本一般是用Perl写的,偶而会用C、Python、PHP或其他语言。这个方法有很多问题。CGI机制的伸缩性很差,因为每个Web请求都会衍生一个新的服务器进程。进程间的通信(例如,为了共享数据库连接这样的资源)对于程序非常棘手。最后,外来的编程语言可能具有一定的特色,但是它们干不了“重活”。数据库访问或安全性这样的特性通常不是语言的一部分,而是由非标准的第三方库提供的。这使程序员不但受制于语言本身的实现者,而且还要看各种第三方库的提供者的“脸色”。
一段时间以来,Java程序员对Servlet的能力很满意,因为它在一定程度上解决了以上问题。Servlet是用Java写的,而Java是一种得到广泛支持的语言。Java具有数据库访问、连网、多线程、安全性等内置功能。每个Servlet都在它自己的线程中执行,这就避免了产生服务器进程的开销。Servlet可以轻松地共享会话状态和数据库连接这样的资源。Servlet主要的缺点是建立HTML很麻烦。所有HTML必须通过编程产生,即必须使用语句输出所有文本和标记。特别是,这意味着页面必须由程序员自己建立。我们都知道当程序员打算插手Web设计时会发生什么。
在近几年中,一个逐渐流行起来的方式是使用Web服务器脚本语言,如Netscape LiveWire和微软的ASP(Active Server Pages)。使用这些系统,程序员可以将代码片段嵌入Web页面。页面本身由Web设计人员专门设计。Web服务器在为页面服务时执行这些代码片段,并且将每个代码片段产生的HTML插入。这个方式的优点(也就是它流行起来的原因)是可以非常快速地得到结果。但是,这种开始时看起来很有趣而且高效率的方式后来成了维护方面的噩梦。当你将表示逻辑(HTML页面的静态部分)和业务逻辑(代码片段)混合在一起时,如果需求发生变化,改变页面会非常困难。在重新设计页面时,Web设计人员不知道如何移动代码。这使重新设计成为非常费事的活动,需要程序员与Web设计人员进行频繁的交流。最后,要记住:你被限制在某个Web服务器上了。例如,如果你用ASP开发了一个Web应用程序,而后来打算使用Apache,而不是微软的IIS,那么你就有麻烦了。
这本书的主题—JSP技术解决了这些问题。JSP具有与Servlet一样的优点—实际上,JSP页面就是Servlet。你可以使用Java的全部能力来实现你的业务逻辑,而不是局限于某些脚本语言。通过使用Bean、XML转换和标记库,JSP使你可以分离表示逻辑和业务逻辑。例如,在一个结构良好的JSP应用程序中,同样的业务逻辑可以配用多种界面,这使你的用户可以选择使用正规的浏览器或使用WAP(无线访问协议)的移动电话。
本书教你如何用JSP建立稳固而且可伸缩的Web应用程序。它讨论了JSP语法、JSP从Servlet继承的特性(如会话管理)、Servlet和Bean之间的交互,以及大量有用的Java主题,如JDBC(Java数据库连接性)和XML。最后(也是最重要的),你将学习应用程序的分割和部署—这些主题帮助你创建经得起测试的稳固的应用程序,而不是粗制滥造的产品。
与其他书不同,本书采用完全以JSP为中心的方式,与Sun微系统公司在它的Java Enterprise规划中提出的建议相一致。这是非常合理的方案,而且很强大。其他书先讨论Servlet,而将JSP作为Web编程的第二种方法。本书告诉你为什么JSP页面在Web编程技术中处于较高的位置。JSP页面可以做Servlet所能做的任何事,而且JSP具有更高层的功能,使你能够将注意力集中于业务问题。在使用Servlet时,要想拥有这样的功能,就必须进行大量烦人的编程和组织工作。
秉承核心系列丛书的精神,本书包含许多现实的建议,这些建议在在线文档中没有。本书作者不会停留在烦人的语法和细节上。与许多计算机书籍作者不同,本书作者做了大量的工作,将精华与琐事分开了。你将不会浪费时间研究你用不到的特性,但是你会发现本书覆盖了建立实际应用程序时所需要的所有主题。我确信,你会发现本书真的非常有用。我希望你喜欢它,并且有机会使用它建立出色的Web应用程序。

Cay Horstmann
San Jose,August 2000

作者简介

Damon Hougland Aaron Tavistock:暂无简介

译者简介

马朝晖等译:暂无简介

图书目录

序言
第1章  简介 1
1.1  Web的历史 1
1.1.1  静态页面 1
1.1.2  动态页面 2
1.2  JSP概述 4
1.2.1  模板页面 5
1.2.2  静态数据与动态元素 5
1.2.3  简单的JSP页面 6
1.2.4  JSP文件 6
1.3  Java的能力 7
1.3.1  只写一次,随处运行 7
1.3.2  Java API 8
1.3.3  安全 8
1.3.4  可伸缩性 8
1.3.5  可扩充性 9
1.3.6  组件 9
1.4  了解HTTP 9
1.4.1  HTTP基础 9
1.4.2  HTTP请求 9
1.4.3  HTTP响应 10
第2章  脚本元素 12
2.1  Scriptlet元素 12
2.2  Expression元素语法 13
2.3  Declaration元素语法 15
2.4  嵌入式流控制语句 15
2.4.1  判断语句 18
2.4.2  循环语句 20
2.4.3  异常语句 21
2.5  注释语法 21
2.6  应用脚本元素:Calendar.jsp 23
第3章  动作和指令 31
3.1  Action元素语法 31
3.1.1  标准动作 32
3.1.2 JavaBean 动作 32
3.1.3  Resource 动作 35
3.2 指令 40
3.2.1  指令语法 40
3.2.2  page指令 40
3.2.3  include指令 43
3.2.4  tablib指令 44
第4章  JSP引擎内幕 45
4.1  幕后 45
4.1.1  重新编译 45
4.1.2  Servlet与JSP的关系 46
4.2  多线程和持久性 46
4.2.1  持久性 46
4.2.2  线程的危险 47
4.2.3  线程安全 48
4.3  隐含对象 49
4.3.1  out对象 49
4.3.2  request对象 50
4.3.3  response对象 51
4.3.4  pageContext对象 51
4.3.5  session对象 51
4.3.6  application对象 52
4.3.7  config对象 52
4.3.8  page对象 52
4.3.9  exception对象 52
4.4  JSP的生命期 52
4.4.1  jspInit() 53
4.4.2  jspDestroy() 53
4.4.3  JSP的生命期概述 53
4.4.4  使用jspInit()和jspDestroy()
的计数器 54
4.5  编译JSP 55
4.6  JSP的性能调整 57
4.6.1  避免串联追加 58
4.6.2  小心使用synchronized() 58
第5章  获取信息 59
5.1  请求 59
5.2  HTTP请求和JSP 60
5.2.1  参数 60
5.2.2  头信息 63
5.2.3  cookie 68
5.2.4  属性 68
5.2.5  服务器信息 69
第6章  发送信息 70
6.1  使用response对象 70
6.1.1  HTTP状态 70
6.1.2  HTTP头 71
6.1.3  response对象的其他方法 73
6.2  设置cookie 75
6.2.1  建立cookie 75
6.2.2  发送cookie 76
6.2.3  使用cookie 76
6.3  处理错误 79
第7章  跟踪会话 83
7.1  在请求之间跟踪数据 83
7.1.1  隐藏的表单字段 83
7.1.2  JavaMail的简述 84
7.1.3  邮件表单示例 84
7.1.4  隐藏的图文框 88
7.1.5  重写URL 89
7.1.6  cookie 90
7.2  HttpSession API 90
7.2.1  基础 90
7.2.2  使用session对象 91
7.2.3  会话的生命期 94
7.3  会话和身份 96
第8章  JavaBean 103
8.1  组件模型 103
8.2  JavaBean 104
8.2.1  JavaBean约定 104
8.2.2  其他需求 107
8.2.3  扩展特性 108
8.2.4  内部检查 108
8.2.5  在JSP中使用JavaBean 109
8.3  验证JavaBean 111
8.3.1  JNDI是什么 111
8.3.2  LDAP是什么 112
8.3.3  LDAPAuthBean 112
8.4  组件和组件框架 117
8.5  企业JavaBean 117
8.5.1  会话Bean和实体Bean 118
8.5.2  企业JavaBean的编程限制 118
第9章  数据库连接性 119
9.1  什么是JDBC 119
9.1.1  ODBC 119
9.1.2  对象与关系型 120
9.2  理解关系型模型 120
9.3  JDBC 125
9.4  JDBC和JSP 128
9.5  JDBC和JavaBean 139
第10章  JSP和XML 157
10.1  XML基础知识 157
10.2  使JSP成为XML文档 160
10.3  XSL基础知识:XSL、XSLT和XPath 163
10.3.1  学习XSLT 164
10.3.2  XML分析程序和XSLT处理程序 165
10.4  XML与XSLT相结合 165
10.5  从JSP产生XML 168
第11章  定制标记 175
11.1  定制标记的基本知识 175
11.1.1  定制标记的语法 175
11.1.2  播放程序 176
11.2  定制标记API 178
11.2.1  用于定制标记的特殊方法和常量 178
11.2.2  理解标记库描述符文件 179
11.2.3  打包时需要考虑的特殊因素 180
11.3  创建新的定制标记 180
11.4  创建合成的标记 184
第12章  设计并部署JSP应用程序 192
12.1  通过分解来减少复杂性 192
12.1.1  构造JSP组件体系结构的方法 192
12.1.2  JSP设计模型 195
12.2  JSP应用程序的部署 199
12.2.1  ZIP、JAR、WAR和EAR 199
12.2.2  对WAR和EAR文件的支持 200
12.2.3  WAR文件入门 201
12.2.4  Sun DeployTool 205
12.2.5  最好的策略 207
第13章  未来 208
13.1  J2EE的影响 208
13.2  JSP和GUI工具 208
13.3  XML、XML、更多的XML 209
13.4  前进方向 209
附录A  JSP API快速参考 210
附录B  JSP应用程序 223
附录C  示例数据库 232
关于CD-ROM 246

教学资源推荐
作者: 余永红
作者: [美]埃里克 S. 罗伯茨(Eric S. Roberts) 著
参考读物推荐