用案例学Java Web整合开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 和Java相关的工具介绍

1.2.1 JDK 1.6

JDK是(Java开发包Java Development Kit的缩写),也就是通常所说的Java。大家所说的Java的版本就是指JDK的版本。作为Java家族最核心的部分,JDK中包含了Java所有的类库、编译工具、解释环境等,由Sun Macrosystem提供升级、支持和服务。

JDK 1.6是目前Java的最新版本。这个版本的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型、For-Each循环、自动装包/拆包、枚举、可变参数、静态导入。使用这些特性有助于我们编写更加清晰、精练、安全的代码。下面我们简单介绍一下这些新特性。

1)泛型(Generic)

我们在编写程序时,经常遇到两个方法的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型。如果能够在方法中传入通用的数据类型,这样就可以用一个方法实现了。

泛型的出现就是专门解决这个问题的。JDK 1.6中增加的泛型类型,这可以说是Java语言在类型安全方面的一个重要的改进。

2)For-Each循环

For-Each循环的加入简化了集合的遍历,避免了强制类型转换。

3)自动装包/拆包(Autoboxing/unboxing)

自动装包/拆包大大方便了基本类型数据和它们包装类的使用。

自动装包:基本类型自动转为包装类(int >> Integer);

自动拆包:包装类自动转为基本类型(Integer >> int);

在JDK 1.6之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制解决了我们的问题。

4)枚举(Enums)

JDK 1.6加入了一个全新类型的“类”——枚举类型。为此JDK 1.6引入了一个新关键字enmu。枚举类型还提供了两个有用的静态方法values()和valueOf()。我们可以很方便地使用它们。

5)可变参数(Varargs)

在JDK 1.6之前,我们可以用重载来实现,但是这样就需要写很多的重载函数,显得不是很有效。如果使用可变参数的话,我们只需要一个函数就行了,引入可变参数以后,Java的反射包也更加方便使用了。

6)静态导入(Static Imports)

使用静态导入可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态成员无须再给出它们的类名。不过,过度使用这个特性也会在一定程度上降低代码的可读性。

1.2.2 Tomcat

Tomcat是在Sun的JSWDK的基础上发展起来的另一个优秀的JSP服务器,它不但支持Servlet,还提供了Web服务器的功能。可以毫不夸张地说,Tomcat已经成长为目前最主流、使用最广泛、拥有用户数最多的JSP服务器。最重要的是,它还是一个开源和免费的产品。

作为一个开放源代码的软件,Tomcat有着自己独特的优势,可以和目前大部分的主流服务器一起工作,而且有着相当高的运行效率。

Tomcat本身也是一个功能强大的、支持JSP语言的Servlet容器(Servlet容器是一个可以管理、激活、执行Servlet的程序)。

市场上主流的Servlet容器分为如下几类型:

(1)独立的Servlet容器,内置有Web服务器的功能。

这种情况下Servlet容器作为一个Web服务器的角色出现。两者(Web服务器和Servlet容器)合二为一,为基于Java语言的web应用充当服务器。Tomcat的默认模式就是这样作为一个Java服务器,承担着Web服务器和Servlet容器双重身份。

然而,并不是所有的Web应用都使用Java编写而成。因此,出现如下两种容器的模式。

(2)进程内的Servlet容器,Servlet容器作为其他web服务器的插件出现。Web服务器插件在内部地址空间打开一个JVM(Java Virtual Machine)使Java容器得以在内部运行。例如:一个用ASP编写的Web应用,运行在微软的Internet Information Server(微软的Web Server,简称为IIS)中,但其中的某个功能是用JSP或Servlet编写的,因此需要在IIS中内嵌一个Servlet容器插件,来执行这些对JSP或servlet的请求。

进程内容器对于多线程、单进程的服务器非常合适并且能够提供很好的运行速度,但伸缩性有所不足。

(3)进程外的Servlet容器,Servlet容器运行于Web服务器之外的地址空间且作为Web服务器的插件和Java容器实现的结合。Web服务器插件和Java容器JVM使用IPC机制(通常是TCP/IP)进行通信。当一个调用Servlet的请求到达时,插件将取得对此请求的控制并将其传递(使用IPC等)给Java容器进行处理。

进程外容器的反应时间或进程外容器引擎不如进程内容器,但进程外容器引擎具有更好伸缩性、稳定性。

Tomcat既可作为独立的Web服务器和Servlet容器(通常用于开发与调试或小型网站),也可以作为对其他Web服务器的附加组件(如:Apache、IIS和Netscape服务器)。所以在配置Tomcat时,必须决定如何应用它,如果选择第二或第三种模式,需要在Web服务器安装完成后进行配置。

1.2.3 BEA WebLogic

WebLogic是一套基于Java功能强大的电子商务套件,提供了许多功能强大的中间件以方便编程人员编写JSP、SERVLET等电子商务应用,可以为企业提供一个完整的商务应用解决方案。对于开发人员来说,可以在www.bea.com免费下载一套完整的WebLogic,并得到一个限制了IP的license,用于学习和开发基于这个套件的代码。如果需要正式投入使用的话,那么就必须支付一定的费用获取没限制的license。由于这个套件基于这种发布方式,对于一般网站开发人员可以很轻易地得到WebLogic用于学习开发,当然投入使用是另一回事。

BEA WebLogic Server 8.1是业界最好的应用服务器,它能够使IT部门降低应用基础架构的复杂程度和成本,从而将IT资产转化成一种重要的业务优势。

BEA WebLogic Server 8.1提供了一种全新的方法,以开发、集成、保护和管理服务器端的Java应用。

● 提高开发人员生产效率。

● 充分利用现有资源与现有基础结构即取即用的互操作性,既统一了企业环境,又使成本降低。

● 适应性强的安全架构,安全管理员无须应用编码,就能轻松的设计和实现各种运行时(Runtime)安全策略。

● 简化管理,应用管理员能够简化并实现自动化运行,从而能够观察和掌握应用和基础结构。

● 简单、快速部署。

● 每分钟、每秒钟可处理的事务更多。

● 良好的可扩展性。

● 更加详尽、完善的日志记录(log)。

1.2.4 Oracle iAS

Oracle iAS的英文全称是Oracle Internet Application Server,即Internet应用服务器,Oracle iAS是基于Java的应用服务器,通过与Oracle数据库等产品的结合,Oracle iAS能够满足Internet应用对可靠性、可用性和可伸缩性的要求。

Oracle iAS最大的优势是其集成性和通用性,它是一个集成的、通用的中间件产品。在集成性方面,Oracle iAS将业界最流行的HTTP服务器Apache集成到系统中,集成了Apache的Oracle iAS通信服务层,可以处理多种客户请求,包括来自Web浏览器、胖客户端和手持设备的请求,并且根据请求的具体内容,将它们分发给不同的应用服务进行处理。在通用性方面,Oracle iAS支持各种业界标准,包括JavaBeans、CORBA、Servlets以及XML标准等,这种对标准的全面支持使得用户很容易将在其他系统平台上开发的应用移植到Oracle平台上。

1.2.5 Eclipse和MyEclipse

Eclipse是目前最好用的、使用最广泛的Java开发工具。和另一个主流的Java开发工具JBuilder相比,Eclipse是一个开放源代码的、基于Java的、可扩展的集成开发环境(IDE)。

就Eclipse本身而言,它只是一个框架和一组服务,用于通过插件、组件构建开发环境。Eclipse所附带的标准插件集包括Java开发工具(Java Development Tools, JDT),可以像VB一样通过拖曳实现页面的布局,从而有效地提高开发效率,并弥补Java环境一直以来在可视化编程方面的不足。

Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源代码项目,它其实是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源代码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受到人们的关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。

虽然大多数用户很乐于将Eclipse当做Java IDE来使用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境(Plug-in Development Environment, PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言。例如,支持诸如C/C++、COBOL和Eiffel等编程语言的插件已经可用或预计会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

基于Eclipse的应用程序的突出例子是IBM的WebSphere Studio Workbench,它构成了IBM Java开发工具系列的基础。例如,WebSphere Studio Application Developer添加了对JSP、Servlet、EJB、XML、Web服务和数据库访问的支持。

MyEclipse企业级工作平台(MyEclipse Enterprise Workbench,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大地提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSF、CSS、JavaScript、SQL、Hibernate。

在结构上,MyEclipse的特征可以被分为7类:

1. J2EE模型

2. Web开发工具

3. EJB开发工具

4. 应用程序服务器的连接器

5. J2EE项目部署服务

6. 数据库服务

7. MyEclipse整合帮助

对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。

简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。

1.2.6 JBuilder

JBuilder是Borland公司开发的针对Java的开发工具,使用JBuilder将可以快速有效地开发各类Java应用,它使用的JDK与Sun公司标准的JDK不同,它经过了较多的修改,以便开发人员能够像开发Delphi应用那样开发Java应用。

JBuilder的核心有一部分采用了VCL技术,使得程序的条理非常清晰,就算是初学者,也能完整地看完整个代码。JBuilder另一个特点是简化了团队合作,它采用的互联网工作室技术使不同地区甚至不同国家的人联合开发一个项目成为了可能。

简单介绍一下JBuilder的特点:

1. JBuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB(Enterprise JavaBeans)的应用。

2. 用户可以自动生成基于后端数据库表的EJB Java类,JBuilder同时还简化了EJB的自动部署功能。此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言,Interface Definition Language)和控制远程对象。

3. JBuilder支持各种应用服务器。JBuilder与Inprise Application Server紧密集成,同时支持WebLogic Server、EJB 1.1和EJB 2.0,可以快速开发J2EE的电子商务应用。

4. JBuilder能用Servlet和JSP开发和调试动态Web应用。

5. 利用JBuilder可创建(没有专有代码和标记)纯Java2应用。由于JBuilder是用纯Java语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。

6. JBuilder拥有专业化的图形调试界面,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。JBuilder环境开发程序方便,它是纯Java的开发环境,适合企业的J2EE开发,缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,比较吃内存,这时运行速度显得较慢。