Java 2平台企业版(J2EE)的发布,标志着Sun公司的服务器端开发平台发展成了一个更加成熟的规范。Servlets 2.3获得了事件和过滤器; Javaserver Pages 1.2(JSP)获得了新的XML语法,并加强了自定义标志机制;Entetprise JavaBeans 2.0(EJB)改变了容器管理的持久性,并支持消息驱动bean进行异步处理。\r\n\r\n 本书介绍如何设计件实现安全的、可升级的J2EE应用程序,将JSP和Servlets用于网络层、EJB用于商业逻辑。本书还介绍了J2EE连接器体系结构,用于将自己的J2EE应用程序集成到企业信息系统中。\r\n\r\n 本书针对于要将Java作为分布式企业应用程序开发平台的专业编程人员,详细介绍了各种田J2EE应用程序服务器实现的J2EE API。\r\n
\r\n
第1章 J2EE系统平台 \r\n\r\n 为企业编程 \r\n\r\n 现代企业 \r\n\r\n 企业体系结构样式 \r\n\r\n J2EE系统平台 \r\n\r\n J2EE体系结构——容器 \r\n\r\n J2EE技术 \r\n\r\n 开发J2EE应用程序 \r\n\r\n 小结 \r\n\r\n 第2章 目录服务和JNDI \r\n\r\n 名字和目录服务 \r\n\r\n 使用JNDI \r\n\r\n JNDI服务提供者 \r\n\r\n Java和LDAP \r\n\r\n LDAP操作 \r\n\r\n 搜索LDAP服务器 \r\n\r\n 在LDAP中存储和检索Java对象 \r\n\r\n 回到JNDI, 没有LDAP \r\n\r\n 小结 \r\n\r\n 第3章 使用RMI的分布式计算 \r\n\r\n RMI体系结构 \r\n\r\n 定位远程对象 \r\n\r\n RMI异常 \r\n\r\n 用RMI开发应用程序 \r\n\r\n 规ISecurityManager \r\n\r\n RMI中的参数传递 \r\n\r\n 分布式垃圾收集器 \r\n\r\n 动态装人类 \r\n\r\n 远程回叫 \r\n\r\n 对象激活 \r\n\r\n 自定义套接字和SSL \r\n\r\n RMI防火墙和HTTP \r\n\r\n IIOP上的RMI \r\n\r\n RMI-IIOP和Java IDL \r\n\r\n RMI-IIOP和J2EE \r\n\r\n RMI应用程序的调节 \r\n\r\n 小结 \r\n\r\n 第4章 JDBC数据库编程 \r\n\r\n 数据库驱动程序 \r\n\r\n Java. sql包 \r\n\r\n javax. sql包 \r\n\r\n JDBC数据源 \r\n\r\n 连接缓冲池 \r\n\r\n 分布式事务 \r\n\r\n Rowset对象 \r\n\r\n 小结 \r\n\r\n 第5章 Web容器介绍 \r\n\r\n HTTP协议 \r\n\r\n Web容器和Web应用程序 \r\n\r\n 实施描述符 \r\n\r\n 简单的Web应用程序 \r\n\r\n 小结 \r\n\r\n 第6章 Servlet编程 \r\n\r\n Java Servlet API综述 \r\n\r\n Servlet实现 \r\n\r\n Servlet配置 \r\n\r\n Servlet异常 \r\n\r\n Servlet存活期 \r\n\r\n Servlet存活期——FrsakServlet \r\n\r\n 请求和响应 \r\n\r\n Servlet编程——技术支持应用程序 \r\n\r\n 小结 \r\n\r\n 第7章 Servlat会话. 环境和协作 \r\n\r\n 无状态和会话 \r\n\r\n 会话跟踪办法 \r\n\r\n Java Servlet API实现的会话跟踪 \r\n\r\n 会话属性事件处理 \r\n\r\n servlet上下文环境 \r\n\r\n Servlet协作 \r\n\r\n 小结 \r\n\r\n 第8章 Web应用程序过滤器 \r\n\r\n 什么是过滤器 \r\n\r\n 过滤器示例 \r\n\r\n 过滤器API \r\n\r\n 过滤器的实施描述符 \r\n\r\n 带有过滤器的聊天应用程序 \r\n\r\n 小结 \r\n\r\n 第9章 Web实施. 验证和打包 \r\n\r\n Web应用程序结构 \r\n\r\n 请求到应用程序和Servlet的映射 \r\n\r\n Web应用程序的安全保护 \r\n\r\n 实施配置 \r\n\r\n 小结 \r\n\r\n 第10章 JSP基础及体系结构 \r\n\r\n JSP1. 2技术规范 \r\n\r\n JSP介绍 \r\n\r\n 基本组成 \r\n\r\n JSP技术支持程序示例 \r\n\r\n JSP设计阶段 \r\n\r\n 小结 \r\n\r\n 第11章 JSP标志扩充 \r\n\r\n 标志扩充 \r\n\r\n 简单标志 \r\n\r\n 标志扩充分析 \r\n\r\n 编写标志扩充 \r\n\r\n 应用程序存活期事件 \r\n\r\n 标志扩充用法 \r\n\r\n 小结 \r\n\r\n 第12章 使用标志库编写JSP应用程序 \r\n\r\n 使用自定义标志库的优点 \r\n\r\n 现有标志库示例 \r\n\r\n JSP标志库(JSPTL)介绍 \r\n\r\n JSPTL初步 \r\n\r\n 把JSPTL集成到JSP网页中 \r\n\r\n JSPTL标志 \r\n\r\n 注册和验证应用程序 \r\n\r\n 注册应用程序的实施 \r\n\r\n 面前的内容:标准标志库 \r\n\r\n 小结 \r\n\r\n 第13章 JavaMail \r\n\r\n 邮件协议 \r\n\r\n JavaMail综述 \r\n\r\n 安装和配置 \r\n\r\n 快给我发一封电子邮件 \r\n\r\n JavaMail API \r\n\r\n 邮件处理 \r\n\r\n JavaMail资源 \r\n\r\n 小结 \r\n\r\n 第14章 EJB体系结构和设计 \r\n\r\n 什么是EJB \r\n\r\n EJB容器及其服务 \r\n\r\n 使用EJB \r\n\r\n Web网上的EJB组件 \r\n\r\n 对EJB的客户层访问 \r\n\r\n EJB层的设计 \r\n\r\n 小结 \r\n\r\n 第15章 会话beau和业务逻辑 \r\n\r\n 会话beau和状态 \r\n\r\n 财政援助计算beau \r\n\r\n 实现我们的生产应用程序示例 \r\n\r\n 小结 \r\n\r\n 第16章 实体beau和持久性 \r\n\r\n 为什么不使用会话beau \r\n\r\n 容器管理的持久性与beau管理的持久性的对比 \r\n\r\n 关系 \r\n\r\n 完成我们的生产应用程序 \r\n\r\n 小结 \r\n\r\n 第17章 EJB容器服务 \r\n\r\n 事务 \r\n\r\n 异常 \r\n\r\n 通信 \r\n\r\n 小结 \r\n\r\n 第18章 开发和实施角色 \r\n\r\n 企业beau提供者 \r\n\r\n 应用程序组装者 \r\n\r\n 实施者 \r\n\r\n 系统管理员 \r\n\r\n 容器/应用程序服务器厂商 \r\n\r\n 生产制造应用程序的Web接回 \r\n\r\n 故障诊断提示 \r\n\r\n 小结 \r\n\r\n 第19章 JMS和消息驱动beau \r\n\r\n 消息历史简述 \r\n\r\n Java消息服务 \r\n\r\n 点到点 \r\n\r\n JMS API \r\n\r\n 消息驱动beau \r\n\r\n 小结 \r\n\r\n 第20章 J2EE连接器体系结构 \r\n\r\n EIS集成和JCA的角色 \r\n\r\n J2EE连接器体系结构及其元素 \r\n\r\n 黑盒子资源适配器 \r\n\r\n J2EE连接器体系结林 \r\n\r\n 小结 \r\n\r\n 第21章 J2EE应用程序的设计考虑 \r\n\r\n 变化的世界 \r\n\r\n 体系结构和设计 \r\n\r\n 详细要求 \r\n\r\n 对上下文环境的进一步考虑 \r\n\r\n 体系结构的选择和细致调整 \r\n\r\n 型式的应用 \r\n\r\n 开始分析 \r\n\r\n 添加中间层 \r\n\r\n 开始购物 \r\n\r\n 购货订单系统之后 \r\n\r\n 学过的课程 \r\n\r\n 小结 \r\n\r\n 第22章 J2EE和Web服务 \r\n\r\n 什么是Web服务 \r\n\r\n Web服务技术 \r\n\r\n 用于Web服务的J2EE技术 \r\n\r\n 开发Web服务 \r\n\r\n 让服务更聪明 \r\n\r\n 小结 \r\n\r\n 第23章 选择一种J2EE实现 \r\n\r\n 应用程序服务器 \r\n\r\n 实现J2EE技术规范 \r\n\r\n 应用程序服务器市场的竞争 \r\n\r\n 需要评定的因素 \r\n\r\n 开发团体 \r\n\r\n 小结 \r\n\r\n 第24章 J2EE打包和实施 \r\n\r\n J2EE打包综述 \r\n\r\n 配置J2EE包 \r\n\r\n 相关性包的问题 \r\n\r\n 小结 \r\n
\r\n
Subrahmanyam Allamaraju
Subrahmanyam Allamaraju是BEA System Inc. 公司的一位高级工程师. 他负责的是企业/分布式技术. 基于XML的对象模型及相关领域的技术. 如果想了解他的工作. 兴趣及其他方面情况, 清查看网站www. Subrahamanyam. com.
Subrahmanyam感谢Varaa提供了代码示例以及分享经验和教训.
Cedric Beust
欢迎大家学习《J2EE编程指南》的第三版. 与J2EE 1. 1版到J2EE 1. 2之间的变化不同, J2EE 1. 3版与以前版本之间的区别相对较小. 最基本的改变在于关于Servlets(服务器小程序). JSP和EJB的各章, 这些章已经进行了修改, 以反映出相关的技术规范, 例如EJB 2. 0中带来的变化. 此外, 本书还添加了一些新的章节, 以引入JZEE的新特性, 如Connector Ar. chitecture(连接器体系结构), 一些与JZEE核心开发技术关系不太大的章节已经被删除.
J2EE 1. 3版
最新发布的JSR-58版, 又常称为Java 2 Platform Enterprise Edition(Java 2系统平台企业版, J2EE), 代表了Sun Microsystem公司服务器方开发系统平台进入了一个更成熟. 更复杂的技术规范阶段. 除了加入了一些新的子技术规范如JAAS(Java Authentication and Authorization Service, Java验证和授权服务)以及Connector Architecture(连接器体系结构)J2EE技术规范实际上以容器为中心的本性并没有什么明显的改变.
此版本最明显的变化在于对子技术规范的修改, 主要是Servlets. Javaserver Pages(JSP)和Enterprise JavaBeans(EJB). Servlet可以获得事件和过滤功能. JSP可以获得一种新的XML语法并且其自定义标志的机制也得到了增强, 而EJB则在其容器管理一致模型上有了一些明显变化.
目前J2EE1. 3中的API版本有:
· Servlets 2. 3
· Javaserver Pages 1. 2
· Enterprise JayaBeans 2. 0
· JDBC 2. 0 Extension
· Java Message Service 1. 0
· Java Transaction API 1. 0
· JavaMail 1. 2
· Java Activation Framework 1. 0
· Java API for XML Prpeessing 1. 1
· Java Connetor Architecture 1. 0
· Java Authentication and Authorization Service 1. 0
在本书中将介绍所有这些API.
本书在这一版有什么变化
你可能会发现本书中有一定数量的J2EE 1. 3版内容与本书的上一版报相似. 这是因为我们没有对本来很好. 很固定而实用的材料进行大幅度的修改, 只是简单地对J2EE中最新的相关内容进行了调整. 在有些情况下, 我们加入了专门的一章, 但有些情况下我们可能只做了一些不大的改动.
此外, 在本版和上一版中章节方面还有一些明显的变化. J2EE 1. 3版包含了关于Java连接器体系结构. Web服务. 选择一种J2EE实现以及J2EE打包的章节.
有一些原来与学习J2EE应用程序开发核心内容关系不大的内容已经被删除, 如关于国际化方面的内容.
本书适合的对象
本书针对的是专业的Java程序员, 他们虽然可能在使用本系统时经验木多, 但至少都熟悉网络和Web编程的基本概念. 读者应该已经熟悉了Java语言及核心API, 可能是通过阅读
《Java 2编程指献或者是通过其他一些介绍类似内容的教程. 本书将从头开始介绍所有与服务器方Java编程有关的概念和知识.
因此, 希望读者具有一些基本的服务器方Java技术, 因为本书会很快地讲述大范围的知识, 并且在每个领域都并不十分深究其中的细节.
此外, 如果你已经购买并且阅读了本书的前一版本, 那么可能会觉得本版不会对自己的知识带来大见的更新, 因为这里有大压的核心材料内容都与以前版本相似.
本书内容
本书将讨论下列三方面问题:
· 开发者编写企业组件时必须遵循的技术规范规则
· 常见厂商的J2EE技术规范实现形式具有的优点和限制
· 使用J2EE技术进行实际设计的各方面
本书的基本结构如下:
· 本书从了解对企业级Java开发者最新的要求开始, 然后讨论Java(特别是J2EE)如何
· 提升自己以满足这些要求. 你还将真实地感受到J2EE的容器体系结构.
· 准备好要进入J2EE体系结构之后, 我们将从了解一些基础的企业开发技术开始:
· RMI. JDBC和JNDI.
然后, 我们将介绍如何使用Java Servlet开发Web组件, 这样也就更实际地进入了J2EE.
· 理解了Servlet技术之后, 我们将介绍Javaserver Pages如何利用这种技术并且进行扩充, 以便提供更灵活的生成动态Web组件的方式.
· 接下来我们进一步深入企业编程, 介绍Enterprise JavaBeans涉及的复杂组件技术.
· 最后我们介绍~些比较大的J2EE问题, 如设计时的考虑以及如何对J2EE应用程序进行打包.
学习本书需要有哪些准备
本书中的大多数代码都在Java 2 Platform Standard Edition SDK(JDK1. 3)以及Java 2 Platform Entmprise Edition SDK 1. 3 Reference Implementation(企业版SDK1. 3参考实现)的基础上进行过测试. 但是其中有些章节中的参考实现可能并不充分, 你可能还需要其他一些软件.
Web容器
为了运行本书中的Web组件, 你需要有一个支持Servlet 23和JSPI. 2技术规范的Web容器. 我们使用的是Teterence Implementation, 它使用的是Jarkata Tomcat引擎. 你可能需要最新版的Tomcat(可以从http://jakarta. apache. org/tomcat下载), 以便运行一些JsP标志库示例.
EJB容器
在关于EJB的各章中, 你需要有一个支持EJB技术规范2. 0版的EJB容器. 我们使用的是BEA的WebLogic Server 6. 1, 其网址为http://www. bea. com/.
数据库
有许多章还要求学习者能够访问数据库. 在这些章我们使用:
· Cloudscape(这是J2EE RI附带的一个内嵌版本), 其网址为http://www. cloudscape. com/.
其他软件
最后, 还有两章内容需要下列一些软件:
· Sun公司的JND SDK, 包含在JDK1. 3中
· Java Secure Sockets Extension(JSSE) l. 0. l, 网址为http://java. sun. com/products/jsse/
· LDAP服务器, 这是Netscape公司的iPlanet Directory Server版本4.11, 网址为http://www. iplanet. com/
· SMTP和/或POP3服务
· JSP Standard Tag Library(JSP标准标志库), 网址为http://jakarta.apache.org/taglibs
· IBM Web Services Toolkit(IBM Web服务工具箱), 网址为http://www. alphaworks. ibm. com/tech/webservicestoolkit
本书中的代码可以在一台联网的计算机中运行(并且要求能够通过此计算机上的本地树览器看到网址http://localhost)
本书中的全部源代码都可以从下列位置下载:
http://www. wrox. com/
约定
为了帮助读者从本书中获得最大的收益并且能够及时注意到内容的发展, 我们在本书中进行了一些约定.
例如:
黑体字列出了读者不能忘记的重要信息, 它们直接与旁边的文字有关.
楷体字则用于对当前的讨论进行辅助说明.
文本采用的不同样式具有下列含义:
· 在文字介绍中, 我们把重要的词汇加黑显示.
· 我们用Ctrl-A这样的形式来表示键盘上的组合键.
对于代码我们有三种不同的表示方法. 方法和属性的定义如下例所示:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
示例代码如下例所示:
In our code examples, the code foreground style shows new, important,
pertinent code
while code background shows code that's less important in the present context,
or has been seen before.
客户支持
我们总是非常珍视读者的意见, 并且我们希望了解你对于本书的看法:喜欢什么. 不喜欢什么以及你认为我们在将来还应该把什么做得更好. 你可以通过下列电子邮件与我们取得联系:feedback@wrox. com. 请注意要在你的邮件消息中列出相关的书名.
如何下载本书中的示例代码
当你访问Wrox公司的网站http://www. wrox. com/时, 可以简单地采用Search(搜索)功能找到相应的书名, 或者使用书名列表. 单击Codd(代码)列中的Dowload(下载), 或者单击相关书籍详细页面中的Download Code(下载代码)即可实现下载.
在我们的站点中可供下载的文件存储为WinZip格式. 把这样的附件下载到了你自己的硬盘上之后, 你还需要使用像WinZip或者PKUnzip这样的解压缩程序进行解压缩. 当你展开文件的时候, 其中的代码通常会展开到各章自己的文件夹中. 启动展开的过程时, 你需要保证使用的软件(如WinZip. PKUnizp等)设置为使用适当的文件夹名.
勘误和修正
我们尽量保证在文本和代码中没有错误, 但是世界上没有尽善尽美的事物, 错误的出现也是难免的. 如果你在我们的书中发现有错误, 如拼写错误或者一段代码中有错误, 请把意见反馈过来, 我们将不胜感激. 你发送过来这样的勘误消息, 可能会省去其他读者数小时的迷茫, 当然也能够帮助我们提供更高质量的信息. 把这样的信息通过support@wrox. com发送过来, 我们将对你的信息进行核对和检查, 如果正确, 则发表在相关书名的勘误表中, 或者将在本书的以后版本中采用.
如果想查看Web站点中的勘误消息, 可以查看http://WWW. wrox. com/, 简单地通过我们的Advanced Search或者书名列表查找. 单击Book Errata链接, 其位于相应书籍封面图片的下边.
电子邮件支持
如果你想直接就本书中的一些问题查询本书相关内容的专家, 可以发电子邮件给support@wrox. com, 在邮件的主题中列出书名和ISBN号的后4位编号. 典型的电子邮件应包括下列内容:
· 在电子邮件主题中写入书名. ISBN的后4位编号. 与问题相关的页号.
· 在消息正文中写出你的姓名. 联系信息和需要提出的问题.
我们不会向你发送垃圾邮件. 我们需要这些具体的信息以节省你我双方的时间. 当你发送电子邮件消息时, 该消息将经过下列技术支持过程:
· 客户技术支持——你的消息会发送给我们的客户技术支持人员, 他们首先阅读你的消息. 他们掌握着最常见问题的相关文件, 将立即回答所有与书及网站相关的问题.
· 编辑——更深入一些的查询将被转到负责相应书籍的编辑人员手中. 他们具有编程语言的丰富经验或者熟悉特定的产品, 能够详细回答相关主题的技术问题.
· 作者——最后, 如果偶尔出现编辑回答不了的问题(这种情况不太可能出现), 他们将把该问题转给相应的作者. 我们会尽力保护作者免受琐事的干扰, 但我们也愿意把一些特殊的要求转给他们. 所有的Wrox作者都会对他们的书籍提供支持. 他们会给相应的客户和编辑发送电子邮件写出他们的响应消息, 然后所有的读者都可以从中受益.
Wrox公司的技术支持过程只对我们已出版书籍的相关问题负责解答. 不属于一般书籍支持范围的问题将通过我们的http://p2p. wrox. com/论坛中的社团列表进行支持.
p2p. wrox. com
如果想与作者取得联系或者进行平等的讨论, 你可以加入P2P邮件列表. 我们的系统提供了programmer-to-programmer(程序员与程序员)之间的联系, 可以通过邮件列表. 论坛和新闻组联系, 这些都是对我们一对一的电子邮件支持系统的辅助. 如果你向P2P贴出了一个查询, 那么这条消息肯定会被我们邮件列表中众多的Wrox作者及其他业界专家查看. 在p2p. wrox. com, 你会发现许多不同的列表都会对自己有所帮助, 不仅可以帮助你阅读本书, 还可以帮助你开发自己的应用程序. 与本书关系密切的句j2ee和projavaserver列表.
按照下列步骤可以订阅一个邮件列表:
1. 进入http://p2p.wrox.com/
2. 从左侧菜单栏中选择适当的类别
3. 单击你想要加入的邮件列表
4. 按照指导订阅并且填写你的电子邮件地址和密码
5. 对收到的确认电子邮件进行回复
6. 使用订阅管理器加入更多的邮件列表以及设置你自己的电子邮件首选项设置
为什么这个系统提供了最好的支持
你可以选择是加入邮件列表还是每周收到一份摘要. 如果你没有时间或者相关设施来接收邮件列表, 那么可以搜索我们的在线档案. 我们会把垃圾邮件和滥发的邮件删除, 而你的电子邮件地址也将受到专门的Lyris系统的保护. 如果对加入或者离开邮件列表进行查询, 以及其他关于邮件列表的一般查询, 你可以把请求发送到listsupport@p2p. wrox. com.