前言
一、本书学习目标
Java Web即Java EE,它是面向企业级的网络系统,其中的“企业级”和“网络”(分布式)代表了Java Web开发的核心目标。在Java EE最新的规范中提供了进行企业级开发的框架组件EJB,并同时提供了多种分布式服务开发技术方案,以及多种企业应用的业务解决方案。这3个层次的技术内容如下图所示。
本书将针对这3个层次的技术进行详细讲解。
● Java Web企业级开发技术EJB:EJB是企业级的JavaBean组件,用于进行分布式系统的开发,它包括三大核心组件。
➢ 会话Bean:使用JNDI发布分布式服务,并讲解会话Bean的扩展开发,包括生命周期、拦截器、依赖注入、定时器。
➢ 消息驱动Bean:用来处理分布式消息JMS,包括队列消息和发布/订阅消息。
➢ 实体Bean:采用JPA作为技术基础,包括实体管理器、对象映射、JPQL查询。
● Java Web分布式开发技术:讲解基于EJB的各种分布式服务技术,包括JTA(Java事务管理)、JAAS(Java验证和授权服务)、JNDI(Java命名和目录服务)、JavaMail(Java邮件服务)、JMS(Java消息服务)、WebService(Web服务)、JMX(Java管理体系))、JCA(Java连接器架构)等。
● Java Web开源技术与框架:讲解企业应用中各种业务模型处理技术,包括工作流、规则引擎、搜索引擎、缓存引擎、任务调度、身份认证、报表服务、系统测试、集群、负载平衡和故障转移等。以上内容实际上也是进行分布式架构设计的完美诠释。
二、本书学习课程安排
本书的内容总体上分为4个部分,从开发环境的准备,到企业级开发组件EJB,再到各种分布式技术,最后讲解各种业务开源技术与框架。各部分内容安排如下:
以上章节几乎覆盖了Java Web高级开发的所有技术内容,并将讲解中的源代码都打包放在光盘中。每一章的正文内容和上机操作都根据内容多少和重要性规定了学习和上机的时间(分钟),总的正文学习时间为1520分钟(约25.3小时),上机时间为930分钟(约15.5小时)。这是对于讲课培训给出的参考时间,读者自学时需要至少2倍的时间集中学习。
三、本书范例程序
本书以“企业信息管理系统”的设计开发为主线,在EJB等多种框架技术的讲解中结合了该系统的实战开发过程,共形成了5个完善的系统,每一个系统程序都以“emis01(EJB+MySQL).zip”形式命名,括号中为该程序包所使用的技术。每一个样例包都可以作为开发时的原型包进行扩展开发,也可以作为公司、学校教学的参考案例。
本书所有的测试代码和实例都打包放在光盘中的source目录下,共包括21个程序包:
(1)准备程序(2个程序包)
eclipse.zip //01.Eclipse入门样例 database.zip //02.数据库文件
(2)入门样例(14个程序包)
EJBTest.zip //03.EJB入门样例——HelloWorld EJBTestJava.zip //03.Java测试客户端 EJBTestJSP.zip //03.JSP测试客户端 SessionBeanTest.zip //04.会话Bean开发样例 MDBTest.zip //05.消息驱动Bean开发样例 EntityBeanTest.zip //06.实体Bean开发样例 ORMTest.zip //07.实体对象映射ORM开发样例 JPQLTest.zip //08.实体查询语言JPQL开发样例 JAASTest.zip //12.JAAS验证与授权服务开发样例 JNDITest.zip //13.JNDI命名和目录服务开发样例 JavaMailTest.zip //15.JavaMail邮件服务开发样例 WebServiceTest.zip //16.Web服务开发样例 DroolsTest.zip //20.Drool规则引擎开发样例 AcegiTest.zip //24.Acegi安全验证开发样例
(3)企业信息管理系统案例(5个程序包)
emis01(EJB+MySQL).zip //09.服务器端——EJB+MySQL架构实现 emis02(Struts 2+Spring+EJB).zip //10.客户端——Struts 2+Spring+EJB架构实现 emis03(EJB+MySQL+JTA).zip //11.事务——为服务器端增加JTA事务管理功能 emis04(EJB+MySQL+JTA+JAAS).zip //12.安全——为服务器端增加JAAS安全验证功能 emis04(Struts 2+Spring+EJB+JAAS).zip //12.安全——为客户端增加JAAS安全验证功能
这些样例程序包都是在Eclipse 3.4中开发的,你可以直接使用Eclipse的导入功能导入这些程序包。导入的方法:首先将要运行的程序包解压缩到Eclipse的工作目录(如D:\eclipse\workspace),单击Eclipse左侧的项目工作区空白处,然后单击鼠标右键,在弹出的快捷菜单中选择“导入”,然后在弹出的“导入”窗口中选择“从现有项目到工作空间中”,并选择刚才解压缩后的程序目录,单击“确定”按钮即可导入到Eclipse中。
四、光盘使用说明
在光盘software目录下仅包含了本书所需要软件安装包的下载存放目录,并在software\readme.txt中详细记录了每一个软件的官方网站、所需版本和该版本的下载链接地址,请读者在学习本书前到指定的网址下载各个软件。
说明:考虑到版权问题,我们只提供了这些软件的下载链接地址。这些下载地址在本书写作时都已经经过了验证确认,有些链接也许需要你注册登录后才能够下载。如果下载的链接地址不存在,则表明该网站已经移除了该链接,请你在指定的官方网站上找到下载的页面来下载对应版本的文件。
本书所用软件、使用版本、下载地址列表:
(1)JDK
本书使用版本:1.6.0 官方网站:http://java.sun.com/ 下载页面:http://java.sun.com/javase/downloads/index.jsp 下载文件:jdk-6u10-beta-windows-i586-p.exe
(2)Tomcat
本书使用版本:6.0.18 官方网站:http://tomcat.apache.org/ 下载页面:http://tomcat.apache.org/download-60.cgi 下载地址:http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.zip 下载文件:apache-tomcat-6.0.18.zip
(3)Eclipse
本书使用版本:3.4 官方网站:http://www.eclipse.org/ 下载页面:http://www.eclipse.org/downloads/ 下载地址:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/ release/ganymede/SR1/eclipse-jee-ganymede-SR1-win32.zip 下载文件:eclipse-jee-ganymede-SR1-win32.zip
(4)MySQL
本书使用版本:5.1.22 官方网站:http://www.mysql.com/ 下载页面:http://dev.mysql.com/downloads/mysql/5.1.html 下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-noinstall-5.1.22-rc-win32.zip /from/pick#mirrors 下载文件:mysql-noinstall-5.1.22-rc-win32.zip SQL-Front客户端 本书使用版本:3.3 官方网站:http://www.sql-front.com/ 下载页面:http://www.sql-front.com/download.html 下载地址:http://www.omnipotus.com/download/SQL-Front_Setup.exe 下载文件:SQL-Front_Setup.exe
(5)JBossAS
本书使用版本:5.0.0 官方网站:http://www.jboss.org/ 下载页面:http://www.jboss.org/jbossas/downloads/ 下载地址:http://www.jboss.org/downloading/?projectId=jbossas&url=https://sourceforge.net/ project/showfiles.php?group_id=22866&package_id=16942&release_id=645033 下载文件:jboss-5.0.0.GA.zip JBoss Tools 下载页面:http://www.jboss.org/tools/download/index.html SVN地址:http://download.jboss.org/jbosstools/updates/development
(6)JDBC驱动
MySQL5 JDBC驱动 下载页面:http://dev.mysql.com/downloads/connector/j/5.0.html 下载文件:mysql-connector-java-5.0.8.tar.gz 驱动包文件:mysql-connector-java-5.0.8-bin.jar Oracle9i JDBC驱动 文件位置:D:\oracle\ora92\jdbc\lib 驱动包文件:classes12.jar SQLServer2000 JDBC驱动 下载页面:http://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502-461A- B138-2AA54BFDC03A&displaylang=en 下载文件:mssqlserver.tar 驱动包文件:mssqlserver.jar,msbase.jar,msutil.jar
(7)Struts 2
本书使用版本:2.0.9 官方网站:http://struts.apache.org/ 下载页面:http://struts.apache.org/2.0.9/index.html 下载地址:http://archive.apache.org/dist/struts/binaries/struts-2.0.9-all.zip 下载文件:struts-2.0.9-all.zip
(8)Spring
本书使用版本:2.0.6 官方网站:http://www.springframework.org/ 下载页面:http://www.springframework.org/download 下载地址:http://downloads.sourceforge.net/springframework/spring-framework-2.0.6.zip 下载文件:spring-framework-2.0.6.zip
(9)Sitemesh
本书使用版本:2.2 官方网站:http://www.opensymphony.com/sitemesh/index.html 下载页面:http://www.opensymphony.com/sitemesh/download.action 下载地址:https://sitemesh.dev.java.net/files/documents/887/43018/sitemesh-2.3.zip 下载文件:sitemesh-2.3.zip
(10)Axis
本书使用版本:1.4.1 官方网站:http://ws.apache.org/axis2/ 下载页面:http://ws.apache.org/axis2/download/1_4_1/download.cgi 下载地址:http://apache.mirror.phpchina.com/ws/axis2/1_4_1/axis2-1.4.1-bin.zip 下载文件:axis2-1.4.1-bin.zip
(11)jBPM
本书使用版本:4.0.0.Alpha2 官方网站:http://www.jboss.org/jbossjbpm/ 下载页面:http://www.jboss.org/jbossjbpm/jbpm_downloads/ 下载地址:http://www.jboss.org/downloading/?projectId=jbossjbpm&url=http://downloads.sourceforge.net/jbpm/jbpm-installer-4.0.0.Alpha2.zip 下载文件:jbpm-installer-4.0.0.Alpha2.jar
(12)Drools
本书使用版本:4.0.7 官方网站:http://www.jboss.org/drools/ 下载页面:http://www.jboss.org/drools/downloads.html 下载地址:http://download.jboss.org/drools/release/5.0.0.25561.CR1/drools-5.0.0.CR1-bin.zip 下载文件:drools-5.0.0.CR1-bin.zip
(13)Lucene
本书使用版本:2.4.1 官方网站:http://lucene.apache.org/ 下载页面:http://www.apache.org/dyn/closer.cgi/lucene/java/ 下载地址:http://apache.etoak.com/lucene/java/lucene-2.4.1.zip 下载文件:lucene-2.4.1.zip
(14)OSCache
本书使用版本:1.2.10 官方网站:http://www.opensymphony.com/oscache/ 下载页面:http://www.opensymphony.com/oscache/download.action 下载地址:https://oscache.dev.java.net/files/documents/629/61427/oscache-2.4.1-full.zip 下载文件:oscache-2.4.1-full.zip
(15)Ehcache
本书使用版本:1.6.0 官方网站:http://ehcache.sourceforge.net/ 下载页面:http://sourceforge.net/project/showfiles.php?group_id=93232 下载地址:http://sourceforge.net/project/downloading.php?group_id=93232&filename=ehcache-1.6.0-beta3-distribution.tar.gz 下载文件:ehcache-1.6.0-beta3-distribution.tar.gz
(16)Quartz
本书使用版本:1.6.5 官方网站:http://www.opensymphony.com/quartz/ 下载页面:http://www.opensymphony.com/quartz/download.action 下载地址:https://quartz.dev.java.net/files/documents/1267/128858/quartz-1.6.5.zip 下载文件:quartz-1.6.5.zip
(17)Acegi
本书使用版本:1.6.5 官方网站:http://acegisecurity.org/ 下载页面:http://acegisecurity.org/downloads.html 下载地址:http://sourceforge.net/project/downloading.php?group_id=104215&filename=acegisecurity-1.0.7.zip 下载文件:acegisecurity-1.0.7.zip
(18)Eclipse BIRT
本书使用版本:2.3.2 官方网站:http://eclipse.org/birt 下载页面:http://download.eclipse.org/birt/downloads/ 下载地址:http://www.eclipse.org/downloads/download.php?file=/birt/downloads/drops/R-R1-2_3_2_1-200904141342/birt-report-framework- 2_3_2_1.zip&url=http://download.actuatechina.com/eclipse/birt/downloads/drops/R-R1-2_3_2_1-200904141342/birt-report- framework-2_3_2_1.zip&mirror_id=385 下载文件:birt-report-framework-2_3_2_1.zip
(19)JFreeChart
本书使用版本:1.0.13 官方网站:http://www.jfree.org/jfreechart/ 下载页面:http://www.jfree.org/jfreechart/download.html 下载地址:http://sourceforge.net/project/downloading.php?group_id=15494&filename=jfreechart-1.0.13.zip 下载文件:jfreechart-1.0.13.zip
(20)Cewolf
本书使用版本:1.0 官方网站:http://cewolf.sourceforge.net/new/index.html 下载页面:http://sourceforge.net/project/showfiles.php?group_id=57282 下载地址:http://sourceforge.net/project/downloading.php?group_id=57282&filename=cewolf-1.0-bin-src.zip&a=76040319 下载文件:cewolf-1.0-bin-src.zip
(21)CheckStyle
本书使用版本:5.0 官方网站:http://checkstyle.sourceforge.net/ Eclipse插件地址:http://eclipse-cs.sourceforge.net/update
(22)PMD
本书使用版本:4.2.5 官方网站:http://pmd.sourceforge.net/ Eclipse插件地址:http://pmd.sf.net/eclipse
(23)FindBugs
本书使用版本:1.3.8 官方网站:http://findbugs.sourceforge.net/ Eclipse插件地址:http://findbugs.cs.umd.edu/eclipse
(24)JUnit
本书使用版本:4.6 官方网站:http://www.junit.org/
(25)EasyMock
本书使用版本:2.4 官方网站:http://easymock.org/ 下载页面:http://easymock.org/Downloads.html 下载地址:http://prdownloads.sourceforge.net/easymock/easymock2.4.zip 下载文件:easymock2.4.zip
(26)JMeter
本书使用版本:2.3.2 官方网站:http://jakarta.apache.org/jmeter/index.html 下载页面:http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi 下载地址:http://apache.etoak.com/jakarta/jmeter/binaries/jakarta-jmeter-2.3.2.zip 下载文件:jakarta-jmeter-2.3.2.zip
(27)Ant
本书使用版本:1.7.1 官方网站:http://ant.apache.org/ 下载页面:http://ant.apache.org/bindownload.cgi 下载地址:http://apache.etoak.com/ant/binaries/apache-ant-1.7.1-bin.zip 下载文件:apache-ant-1.7.1-bin.zip
(28)Maven
本书使用版本:2.1.0 官方网站:http://maven.apache.org/ 下载页面:http://maven.apache.org/download.html 下载地址:http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-2.1.0-bin.zip 下载文件:apache-maven-2.1.0-bin.zip
(29)CruiseControl
本书使用版本:2.8.2 官方网站:http://cruisecontrol.sourceforge.net 下载页面:http://cruisecontrol.sourceforge.net/download.html 下载地址:http://sourceforge.net/project/downloading.php?group_id=23523&filename=CruiseControl-2.8.2.exe&a=73471087 下载文件:CruiseControl-2.8.2.exe
(30)CruiseControl
本书使用版本:2.8.2 官方网站:http://cruisecontrol.sourceforge.net 下载页面:http://cruisecontrol.sourceforge.net/download.html 下载地址:http://sourceforge.net/project/downloading.php?group_id=23523&filename=CruiseControl-2.8.2.exe&a=73471087 下载文件:CruiseControl-2.8.2.exe
五、致谢
参与本书技术调研和程序调试的有:李金刚、刘剑、陈景春、周同、刘中敏、陈万珍、李瑞霞、李建海。本书在编写过程中得到了Apache软件组织和Sun公司在技术上的大力支持,飞思科技产品研发中心负责监制工作,在此表示衷心感谢!尽管我们尽了最大努力,但本书难免会有不妥之处,欢迎各界专家和读者朋友批评指正。
本书专业论坛交流答疑:www.100tt.net
编著者
飞思科技产品研发中心
联系方式
咨询电话:(010)6813454588254160
电子邮件:support@fecit.com.cn
服务网址:http://www.fecit.com.cn http://www.fecit.net
通用网址:计算机图书、飞思、飞思教育、飞思科技、FECIT