Java高手真经(高级编程卷):Java Web高级开发技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

一、本书学习目标

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