Java web应用开发概览(转贴)

80酷酷网    80kuku.com

  webWeb开发(Web Development)是JBuilder Professional 和 Enterprise版权的特性. Applet 开发是 JBuilder所有版本开发的一个特性.本节介绍了web开发技术。包含了他们的异同点。讨论了如何决定使用何种技术。我们首先介绍这些技术的概念。

Web应用程序技术

技术描述
Applets 
一种可以被浏览器下载并在浏览器上运行的Java小应用程序。

Servlets 
可以处理客户请求的运行在服务器端的Java应用程序。

JavaServer Pages (JSP) 
一种扩展的servlet技术。JSP重点在于提供一种简单的开发servlet的方法。它们在开发时表现不同,但当第一次运行后,JSP都被Web服务器编译成servlet。

InternetBeans Express 
一种元件库,用于提供简化代表和操作数据库中的数据。此技术用于联接servlet和JSP技术,并简化数据敏感的servlet和JSP的开发。

本文简介给出了这些技术的基本概念。但是如何使用这些技术,它们的好处与缺点是什么?我们将在以下的部分给出解答。

Applets
当Java语言首次可用时,applet造成了很大的纷乱。此时web技术尚未得到很大的发展。而applet那时解决了开发者面对的一些难题。实际上,applet变得如此流行以致今天开发applet是Java学习课程的一个基本内容。结果是,一个通常的错误观念是Java开发者过多地依赖于applet。Applet应在特定的情况下使用,它并非解决所有Web开发问题的神奇解决方法。

使用applets的缺点在于:

*分发与测试是困难的. 
*依赖于客户机的浏览器是否允许Java运行。
*不同的浏览器版本支持不同版本的JDK, 并且一般不是最新的JDK版本。
*applet第一次启动很慢。因为客户机必须将它从服务器上下载. 
*以上的一些问题可以有其它的解决方案(此处不加预讨论)。当考虑使用applet时,应首先考虑是否有其它的Java技术可以实现你的目的。

使用applets的优点在于:

*Applets 可以提供比servlets 和 JSP更加复杂的界面。
*因为 applets 是从服务器上下载并运行在客户机上,web服务器不必支持Java.这一点很重要,尤其是当你为一个站点写一个web应用,而无权控制web服务器时。如你的站点空间由一个外部的ISP提供时。
*Applet可以进行本地校验,而不必在远端的服务器上进行校验。当然你也可以是JavaScript 加上servlet 或 JSP来完成此功能.   
*在applet下载完成后,浏览器致电服务器的连接请求数目将会下降。因为大量的处理将在客户浏览器上完成.   


Servlets

Servlets 是与web服务器集成的Java程序,它运行在服务器端处理来自客户机的请求。它们需要支持JavaServer技术的web服务器。如与Jbuilder一起发行的Tomcat 服务器 (Tomcat 同样可与不支持JavaServer技术的web服务器进行集成,如Micro$oft IIS)。 Java 的servlets可以用于代替Common Gateway Interface (CGI) 程序,或用于以前采用CGI的相同的情形。

采用servlet比 CGI的好处在于:
*减少内存开销
*平台无关
*协议无关
*你可以使用任何开发语言编写的客户程序来向servlet发送请求。客户可以是简单到HTML页。你也可以使用applet作为客户,或用非java语言编写的程序。在服务器端,servlet处理请求,并生成动态的输出,发送给客户。Servlet一般没有用户界面。但你可在客户端可选地提供用户界面。

采用servlet的好处在于:
*你不必担心客户浏览器是否在运行 JDK . Java 甚至可以在客户浏览器中被屏障。所有的Java元素者都在服务器端执行.这使得服务器管理者具有更多的控制能力。
*当servlet 启动后,来自客户浏览器的请求简单的调用运行着的servlet的service()方法. 这意味着客户不会象applet一样花费大量的下载时间而导致性能下降。
*在web服务器上发布servlet是要一样的技巧的,当然也并非不可能的。JBuilder提供了一些工具使得发布变得更加容易。


JavaServer Pages (JSP)
JavaServer Pages (JSP) 是servlet 技术的扩展。.这是一种着重于servlet编写的简化方法,更着重于应用程序的表述方面。

servlet与JSP之间最主要的区别在于: 对于servlets技术,程序的逻辑是保存在 Java 文件中,与作为表现层的 HTML完全分开。 而对于JSP技术, Java 与HTML 被合并在一个后缀为 .jsp 的文件中。

当web服务器处理JSP文件时,首先生成一个servlet,但当你在开发JSP时,你不会看到这个生成的servlet。 实际上,当你在JBuilder的IDE环境中编译并运行JSP时,你会看到生成的servlet所报告的异常与处理信息。这会有一个混乱,因为这些信息不能准确地定位错误或异常发生在JSP的哪行代码,实际上它们只是已生成代码的信息。

与servlet相比,JSP的好处在于:
*写更少的代码。
*易于和已存在的Java beans合并。 
*发布更多简单。更多的发布问题已经自动为你完成。因为JSPs映射到 web服务器的方法与 HTML文件相同。   
*不必在JSP生成的servlet中嵌入java代码。相反,是在HTML中离散地嵌入Java代码。如果有足够仔细的计划,这些java代码块从HTML文件中完整地分离出来,使得JSP更具有可读性。

使用 JSP的缺点在于:
*不可见的、生成的servlet代码可能导致混淆,如前所述。
*由于 HTML 与 Java are 混合在一个文件中, Java开发者与web设计者一起工作时必须足够仔细,以免覆盖另一方的更新。
*合并的java与HTML会导致可读性差,如果你不仔细地遵守统一的编程规范的话,这个缺点将尤其明显。
*JSP与ASP(Active Server Pages)非常相似。最主要的区别在于JSP操作的对象是JavaBeans,具有平台无关性。而ASP操纵的对象是COM对象,只能在Micro$0ft平台上使用。


InternetBeans Express
InternetBeans Express 技术集成了 servlet 与 JSP 技术,为你的应用程序增加了价值,并简化了servlet 与 JSP 的开发任务。InternetBeans Express 是一个元件集合、一个生成与响应web应用的表示层JSP标签库。 它使用静态的模板页,从活动的数据模型中插入动态内容,并把它们发送给客户。然后它将客户的改变改写到数据模型中。这使得创建数据敏感的servlet和JSP更加容易。

InternetBeans Express 含有内建的 DataExpress DataSets 和 DataModules支持。它还可以来通用的数据模型及EJB一起使用。





决定在web应用中使用何种技术:
现在你已经概览了相当的web技术,你如何决定在web 应用中使用何种技术?下面是一些技巧也许会有所帮助:

*你是否需要一个复杂的用户界面?如果你的界面比数据录入元素(文本域,无线按钮,组合框,列表框,发送按钮,等等)、图象更加复杂,你可能使用applet。
*如果你要完成大量的服务器端的处理,应选用servlet 或 JSP。
*如果你要避免用户下载大量的代码来加整应用的启动,应选用servlet 或 JSP。
*如果你想控制应用的JDK版本,或你关心不允许Java在浏览器中使用的用户,应选用servlet 或 JSP。
*如果你在查找CGI的替代器,使用更少的内存开销,应选用servlet 或 JSP。
*如果你需要与ASP相似的实现,并要求实现平台无关性,应选用JSP。
*如果你需要复杂的用户界面,但你还要一些servlet或JSP的特性,考虑联合applet和servlet,可以在客户浏览器中使用applet,而在服务器端使用servlet。
*如果你使用servlet或JSP,并想要使之数据敏感,应选用 InternetBeans Express。
*Servlet与JSP十分相似,其选用的原则很大部分在于个人的爱好。

记住:很多web应用会联合使用两种或多种这些技术。





基本的web应用的开发过程
不论选用何种web技术,开发web应用及使之在web服务器上运行的基本步骤如下:

*设计应用程序
决定你的应用程序的结构及采用的技术。决定应用程序的功能、外观。这一阶段,你可能想创建一个WebApp.   

*在JBuilder IDE中配置你的web服务器 
你可以可选地在JBuilder IDE中设置你的web服务器,这样你才能编译、运行、调试你的应用程序,并以后发布到相同的web服务器的环境中。如果你跳过此步骤,JBuilder会自动使用捆绑发行的Tomcat,进行编译、运行和调试。

*开发应用程序
编写应用程序的代码,不论你的应用程序由applets, servlets, 或 JavaServer Pages构成,使用 JBuilder的工具可以简化开发的任务。

*编译应用程序
在JBuilder IDE中编译应用程序. 

*运行应用程序
在JBuilder IDE中运行应用程序.不必分发,此时你可以预览应用程序。在此阶段,你可以作应用程序的本地测试。

*发布应用程序
发布应用程序到web服务器.发布的特定步骤与你所选用的 web 服务器紧密相关。

*测试应用程序
测试运行在web服务器上的应用程序。这会帮助你发现应用程序的发布问题、或应用程序本身的问题。你应该使用与web服务器不同的机器上的客户浏览器进行测试。你可以尝不同的类型的浏览器,因为应用程序在不同的浏览器中的表现可能会有细微的不同。





Web应用 vs. 分布式应用
你可能会考虑选用分布式应用而不是Web应用。这两者都是client/server编程。此处给出这两种技术的区别之处:
*一般而言,分布式应用从已有的系统中管理和检索数据,已有的系统可能存在于运行不同操作系统的大量的计算机中。分布式应用使用应用服务器,如Borland Applicatoin Server,来进行应用程序管理。分布式应用程序不必基于java,实际上,分布式应用程序可以包含不同的程序,而与其实现的语言无关。

*分布式应用经常配置在一个公司的内部网中。你可以使得客户可以通过Internet访问你的分布式应用,但是你必须联合使用分布式应用和web应用。

在分布式应用中使用的技术有Common Object Request Broker Architecture (CORBA)和 Remote Method Invocation (RMI):

CORBA的主要好处是客户机与服务器可以用不同的程序开发评议编写。这种可能性的由来在于对象是由Interface Definition Language (IDL)定义的, 并且对象、客户、和服务器之间的通讯处理是由Object Request Brokers (ORBs)来实现的.

Remote Method Invocation (RMI) 使得你可以创造 Java-Java 的分布式应用程序。这种技术下,远程的java对象可以直接调另一个JVM(可能在另一台机器上)上的java对象。


Web应用可以使得有权使用Internet的人访问它。你可以将它放在防火墙后,并使它只能在你的公司内部网中起作用。

Web应用需要在客户机端拥有游览器,而服务器端拥有web服务器。例如,applet下载到多个客户平台并在客户浏览器提供的JVM平台上运行。Servlet和JSP运行在Java允许的可以提供JSP/Servlet特性的web服务器上。

web应用可以是大型的分布式应用的一个部分。而分布式应用也可以是企业级的、或者说J2EE应用的一个部分。关于J2EE应用示例和支持文档,参见在 http://java.sun.com/j2ee/blueprints/中的 Java 2 Platform, Enterprise Edition Blueprints . 特定的章节名为 "The Client Tier" 和 "The Web Tier."



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: