内容简介目录SUN公司的Java 2 Enterprise Edition(J2EE)网络技术是目前使用最广泛的Web应用开发技术。本书首先介绍Tomcat和J2EE的基本概念,然后由浅人深讲解各种编程技术,包括客户层技术、网络层技术(Servlet/JSP)、Struts架构、服务器层技术(EJB)、数据事务与安全、打包与部署等,使读者能更快、更清晰地了解和掌握编程方法,最后运用完整实例进行综合指导。本书由SUNJ2EE技术专家直接用中文撰写,几乎所有程序均由作者亲自编程调试。书中涵盖了J2EE 1.4、Servlet 2.4、JSP2.0等多种技术,内容相当于几本同类书,但更加完整连贯,讲解更着重概念-技能-方法的相辅相成,使读者更容易地掌握技术,更快地融会贯通。本书读者对象为高等院校计算机及软件专业的教师、学生,从事软件开发的编程人员等。 蔡剑北京大学光华管理学院信息系统和电子商务系任教. 曾任美国Sun Microsystems公司Java网络技术和标准研发部技术骨干, 全球互联网WS-I组织Sun公司代表. 参与开发了著名的J2EE平台. Web服务软件和Tomcat网络服务器. 于2002-2003年获选Sun集团未来领袖培训计划. 曾经在全球最大的IT会议JavaOne等国际会议发表演说. 在科研中提出了社会一技术知识集成理论并在IEEE Internet Computing等国际核心学术期刊发表多篇论文. 于美国南加州大学获智能设计系统博士. 计算机工程硕士和智能设计系统硕士学位, 于清华大学获得工学学士学位. 景楠美国南加州大学IMPACT实验室研究助理. 曾在Sun Microsystems公司Java Enterprise Edition研发部门实习工作, 参与了J2EE 1. 4的开发. 在IMPACT实验室, 参与了有关互联网分布知识管理系统的研究, 是STFARS 2. 0互联网知识整合系统的主要开发者之一. 他于美国南加州大学获得计算机硕士学位, 于北京大学获得计算机学士学位.前言 本书第1版出版之后, 发生了很多事. 2003年8月我回国到北京大学光华管理学院任教. 在新的环境下, 一方面我直接接触了中国的一些软件公司的开发和管理人员, 另一方面, 从高科技研发转行到教育和科研领域, 使我能更了解学生的学习动机和习惯. 同时, JavaWeb技术本身在2004年发展很快. J2EEl. 4版已经正式发布, Struts也逐渐被广泛接受, Web服务等技术的研发日趋成熟. 因此, 这本书也"与时俱进", 不断完善, 加入了一些新的内容. 在北京大学光华管理学院开设"/E联网系统开发"课程时, 我的学生使用了第1版作为教材. 我们发现作为JavaWeb应用开发的中级内容教材, 这本书还是比较清楚和方便的. 但是还有一些地方不够清晰和完整, 我们进行了修改和补充. 另外, 网上一些读者也给了很好的建议, 比如认为书的题目可以更准确些. 回国以后, 我发现国内很多技术名词和概念与当初的理解不同, 在第2版中我们做了一些修正, 使其更符合中国读者的习惯. 同时在第2版推出时, 读者可以在酷业网(www. coolyes. com. cn)上进行辅助学习, 这将大大提高对JavaWeb应用开发技术的掌握效果. 中国的IT产业正经历着巨变. 有人说中国软件是"扶不起来的阿斗", 我和硅谷高科技精英丛书的编委们不这么认为. 在这里, 我想请大家分享一些我的研究体会和实践经验. 具体技术本身的掌握固然重要, 但是对于技术发展规律的理解是中国目前高科技人才和企业所缺乏的. 如果仅仅专注于技术细节, 只能是一个好的模仿者和学习者. 但是高科技领域的发展源泉是创新. 能否追赶甚至超过国外的技术决定了我们能否成为高科技的赢家. 我们可以暂时落后, 但是一定要有胆识. 我们要敢于设定远大目标, 更要能够扎扎实实地执行. 当然这是一个漫长而艰苦的过程. 这本书仅仅能够帮助国内的读者理解新的Java技术和概念, 能否将知识转化为能力, 还要靠大家的才智和毅志. 蔡剑 2004年12月20日于北大燕园序 市场经济在过去二十年解放了中国社会的发展潜力, 也使中国人的天分得到了充分发挥. 中国的现代企业正在以其他国家望尘莫及的速度攀登科技阶梯. 例如, 计算机行业在中国的迅速发展将使这个国家快速成为世界上最大的IT生产商和消费者之一. 去年, 中国大学培养了约五百万个科学和工程专业的大学生, 这个数字已经接近美国. 中国政府也正在大力发展几个大软件产业园以提供新的经济增长点. 如果所有这些惊人的高速发展持续下去, 全球工业格局和领导潮流会产生本质的巨变. 要进一步加速中国IT产业的发展, 有两个要素需要被重视. 首先, 我们应该着眼那些新兴的. 能对中国企业提供高增值并实现大规模市场成功的技术. 其次, 我们必须直接地向全球的顶尖资源学习, 这些资源不但能够提供世界先进水平的知识而且能够介绍有关主导技术的实践经验. 当科技发展一日千里时, 我们必须承认在中国IT人才试图迅速地了解和掌握先进技术的过程中存在着"知识鸿沟". 传统的学习和培训方法依赖翻译和编辑的手段, 使用这些传统方法, 当快速不断更新的知识流传到中国时往往有些过时. 因此, 建立知识传递的"快车道"和"跨越鸿沟的桥梁"是很有价值的. "硅谷精英科技丛书"正是这样一条快车道和一座桥梁, 它及时地将全球的先进知识和工业界经验带给中国. 作为世界高科技发展的中心, 美国硅谷非常成功地研发出很多突破性技术, 这些技术成为领先的汀产业的基础. 许多海外的中国科学家和工程师在硅谷高科技公司的研发和管理中扮演了重要的角色. 在事业上取得成功的同时, 他们也希望积极参与祖国的经济和技术发展. 当我先前的学生蔡剑博士和他来自CO-YES学会的同事们邀请了我担当这个丛书的名誉顾问时, 我为他们的使命感和奉献精神而感动. 我很高兴能以我作为一名高科技企业家和学者的20年经验帮助他们. 这套丛书是首部由来自硅谷顶尖IT公司(如Sun, Oracle, Cisco)的中国工程师和研究员用中文编写的系列书籍. 它包括了许多重要题目, 譬如网络应用设计. 数据库系统. 存储网络, 等等. 作者们在西方多年的研发经验, 他们所受的中美高等教育, 以及他们对祖国的强烈的奉献心将为中国的IT专业人才带来独到的价值. 我肯定, 许多中国的技术精英将会喜欢这套丛书并从中受益, 因为中国正在不断努力成为"世界的硅谷". StephenC-Y. Lu(卢志扬), 博士 大尉派克主席教授 美国南加州大学 洛杉矾, 加州 2003年4月 第1章介绍 1. 1Web编程技术的发展 1. 2Web信息系统的形式 1. 3Web信息系统的应用 1. 4系统开发人才的全面素质 1. 5JavaWeb编程技术的特点 1. 6本书纲要和使用方法 第2章J2EE有关基本概念和技术 2. 1J2EE多层Web程序框架 2. 2构件技术 2. 2. 1构件种类 2. 2. 2J2EE的客户 2. 2. 3Web构件 2. 2. 4企业JavaBeans(EJB)构件 2. 3服务技术 2. 3. 1命名技术(JNDI) 2. 3. 2部署技术(deployment) 2. 3. 3数据连接技术(JDBC) 2. 3. 4数据事务技术 2. 3. 5安全技术 2. 3. 6连接框架技术 2. 3. 7Web服务技术 2. 4通信技术 2. 4. 1Web协议 2. 4. 2远程方法调用 2. 4. 3对象管理组协议 2. 4. 4Java通信服务技术 2. 4. 5Java消息技术和邮件技术 第3章客户层技术 3. 1基本技术 3. 2浏览器 3. 2. 1功能概述 3. 2. 2HTML用户信息输入 3. 2. 3用户数据校验 3. 2. 4维护用户会话状态 3. 3Applet客户 3. 4应用程序客户 3. 5无线客户 3. 6客户程序设计考虑 第4章Web层技术(以Tomcat为例) 4. 1概述 4. 1. 1J2EEWeb层基本结构 4. 1. 2Servlet和JSP的优点 4. 1. 3Servlet和JSP运行环境 4. 2Servlet技术 4. 2. 1简单的Servlet例子 4. 2. 2Servlet生命周期 4. 2. 3Servlet编程API 4. 2. 4处理客户请求 4. 2. 5控制会话(session) 4. 2. 6与其他Servlet合作 4. 2. 7过滤器 4. 2. 8事件监听器 4. 2. 9数据库连接 4. 2. 10Servlet 2. 4的新功能 4. 3JSP技术 4. 3. 1JSP基本概念 4. 3. 2JSP语法 4. 3. 3动态网页生成 4. 3. 4开发和使用自制JSP标记 4. 3. 5JSP和XML 4. 3. 6JSTL 4. 3. 7JSP 2. 0的新功能 4. 4Web安全机制 4. 4. 1基本Web安全机制概念 4. 4. 2定义realm 4. 4. 3Web程序的验证和登录方式 4. 4. 4使用SSL连接 4. 5 Web程序部署 4. 5. 1web. xml文件的格式 4. 5. 2Web程序编译和打包 4. 6Web层设计思路及实例 4. 6. 1Web程序的设计考虑 4. 6. 2Web程序实例ICWork 4. 7Struts:灵活的Web应用开发框架 4. 7. 1Struts介绍 4. 7. 2Struts使用方法 4. 7. 3总结 第5章EJB层技术 5. 1基本概念 5. 1. 1EJB定义 5. 1. 2为什么选择EJB 5. 1. 3EJB种类 5. 1. 4EJB的组成 5. 1. 5EJB的命名规则 5. 1. 6何时使用EJB 5. 2EJB入门:一个简单EJB实例的开发 5. 2. 1如何开发一个EJB应用 5. 2. 2远程接口(remoteinterface) 5. 2. 3本地接口(local interface) 5. 2. 4home接口 5. 2. 5本地home接口 5. 2. 6bean类 5. 2. 7部署描述符(deploymentdescriptor) 5. 2. 8EJB服务器配置文件 5. 2. 9EJB-jar文件 5. 2. 10部署bean 5. 2. 11EJB客户Jar文件 5. 2. 12调用EJB 5. 2. 13总结 5. 3会话bean 5. 3. 1会话bean的定义 5. 3. 2会话bean的种类 5. 3. 3会话bean的生命周期 5. 3. 4何时使用会话bean 5. 3. 5会话bean使用方法及实例 5. 4实体bean 5. 4. 1持久性的基本概念 5. 4. 2实体bean定义 5. 4. 3实体bean特性 5. 4. 4实体bean持久性的种类 5. 4. 5实体bean的生命周期 5. 4. 6何时使用实体bean 5. 4. 7一个实体bean例子 5. 5BMP与CMP详解 5. 5. 1EJB 2. 0的特性 5. 5. 2容器管理的持久性 5. 5. 3EJB查询语言 5. 5. 4CMP技术讨论 5. 5. 5BMP技术讨论 5. 5. 6总结 5. 6消息驱动bean 5. 6. 1Java消息服务 5. 6. 2Java消息服务的编写-应用编程接口函数(APl) 5. 6. 3JMS与EJB的集成 5. 6. 4消息驱动bean 5. 6. 5如何开发消息驱动bean 5. 6. 6总结 5. 7EJB 2. 1新特性简介 5. 7. 1对于Web服务的支持 5. 7. 2扩展消息驱动bean 5. 7. 3EJBQL的提高 第6章事务与安全 6. 1事务 6. 1. 1什么是事务管理 6. 1. 2事务管理的必要性 6. 1. 3事务模型 6. 1. 4事务种类 6. 1. 5事务特性 6. 1. 6总结 6. 2EJB安全技术 6. 2. 1为什么需要安全技术 6. 2. 2安全技术的层次 6. 2. 3EIS层的安全机制 6. 2. 4安全身份的建立及传播 第7章J2EE应用程序的打包和部署 7. 1打包组件 7. 2打包J2EE应用程序 7. 2. 1EJB模块 7. 2. 2EJB模块打包准则 7. 2. 3Web模块 7. 2. 4应用客户模块 7. 2. 5资源适配器模块 7. 3部署描述文件 7. 3. 1通用元素 7. 3. 2EJB元素 7. 4使用Ant进行打包部署 7. 5总结 第8章J2EE应用程序国际化与本地化 8. 1程序国际化需求 8. 2J2EE应用程序使用J2SE国际化应用程序接口 8. 2. 1应用资源 8. 2. 2消息格式化 8. 2. 3日期格式化 8. 2. 4文字整理 8. 3Web层的国际化 8. 3. 1管理局域元素和编码机制 8. 3. 2显示组件的设计 8. 3. 3国际化和本地化JSP页面 8. 4EIS层的国际化 8. 4. 1持久性的本地化数据 8. 4. 2数据库模式的国际化8. 5使用XML相关的国际化方法 8. 5. 1使用XSLT生成动态的本地化内容 8. 5. 2应用系统的局部元素通信 8. 5. 3在不同的应用系统之间进行局部元素的通信 8. 6错误信息和日志消息的本地化 8. 6. 1客户消息和应用系统的异常 8. 6. 2系统级别的异常和消息记录 8. 7总结 第9章J2EE程序体系结构设计 9. 1模型-视图-控制体系结构 9. 2J2EE设计模式 9. 2. 1截取过滤器 9. 2. 2视图帮助 9. 2. 3前控制器 9. 2. 4控制器 9. 2. 5视图 9. 2. 6值对象或传输对象 9. 2. 7会话面 9. 2. 8数据访问对象 第10章J2EE应用程序实例:STARS合作支持系统 10. 1STARS系统概述 10. 2STARS系统的设计思想 10. 3如何决定应用系统的层次 10. 4选择本地的或分布式的体系结构 10. 4. 1本地结构和远程结构的比较 10. 4. 2J2EE平台的分布式和本地式结构 10. 4. 3STARS系统结构 10. 5体系结构方面的综合考虑 10. 5. 1视图层 10. 5. 2模型层 10. 5. 3控制层 10. 5. 4将MVC结构应用于Web应用 10. 6在STARS系统中使用到的设计模式 10. 6. 1截取过滤器 10. 6. 2前控制器 10. 6. 3传输对象 10. 6. 4会话面 10. 6. 5数据访问对象 10. 6. 6访问控制器 10. 7总结 附录AHTTP协议 A. 1HTTP协议简介 A. 2HTTP协议的几个重要概念 A. 3HTTP协议的运作方式 附录BUML图解概要 附录C主要相关网址 附录DTomcat安装. 设置和运行 附录ESerrlet编程主要API 附录FEJB编程主要API 附录GTCP Tunnel TOOl 附录HAnt工具安装使用简述 H. 1Ant概况 H. 2Ant安装 H. 3Ant基本用法 参考文献