分享
 
 
 

J2EE1.4的多层Web框架技术

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Sun的java 2 EnterPRise Edition(J2EE)平台已经成为使用最广泛的Web程序设计技术,最近几年,J2EE Web程序的开发已经成为信息系统的要害。

J2EE1.4的多层Web框架技术

J2EE为多层Web应用系统提供了容器平台。在这里,容器概念实际是指应用服务器提供的特定功能的软件模块,用户所开发的程序构件要在容器内运行,构件和容器的关系有些像计算机插件和主板的关系;程序构件在部署时被安装在容器里,容器是能提供基本功能的底层平台,它们之间通过接口进行通信;一般Web程序开发者只要开发出满足其需要的程序构件并能安装在容器中就够了,程序构件的安装过程包括设置各个构件在J2EE应用服务器中的参数以及设置J2EE应用服务器本身。这些设置决定了在底层由J2EE服务器提供的多种服务(譬如安全、交易治理、JNDI查寻和远程调用等)。

J2EE应用框架使同样的程序构件在一个Web程序之内能够根据其部署的方式实现不同的功能。例如,同样的Enterprise JavaBean可以采用不同等级的数据库数据存取安全设置,J2EE容器还负责治理某些基本的服务,譬如构件的生命周期、数据库连接资源共享、数据持久性(data persistency)。

图1 多层次结构Web程序框架

正如图1所描述的,J2EE 1.4应用平台由以下几种类型的程序容器(container)组成:Enterprise JavaBeans(EJB)容器负责所有EJB的运行,EJB根据功能可以分为session bean(通常称为会话bean,称之为会话期间bean更确切),entity bean(实体 bean),message-drivenbean(消息驱动bean)。这一层主要负责数据处理以及和数据库或其他Java程序的通信,它对应多层结构的业务层和数据访问层,Web容器治理所有jsp,JSTL和servlet等Web构件的运行,这些构件主要负责程序和Web的通信,这一层对应多层结构中的表示层。应用客户端容器负责所有Web程序在客户端构件的运行;Applet容器可以看作非凡的应用客户端容器。它负责在Web浏览器和Java插件(Java Plug-in)上运行Java Applet程序(Applet是一种简化并具有安全保护的Java小程序),应用客户端容器和Applet程序容器基本对应多层结构中的用户接口层;每种容器内都使用相关的各种Java Web编程技术,这些技术包括三类:

J2EE各种不同的应用构件(如Servlet,JSP,EJB),它们构成了应用的主体。

J2EE平台提供的应用服务(如JDBC,JTS,JNDI),这些服务保证并促进构件的良好运行。

J2EE的应用通信技术(如RMI,JMS,JavaMail)在平台底层实现机器和程序之间的信息传递。

1、构件技术

"构件"这一概念是指在应用程序中能发挥特定功能的软件单位。简单地说,就是几种特定的Java程序,这些程序有固定的格式和编写方法,它们的功能和使用方式在一定程度上被标准化了;最基本的Java构件是在Java标准版(Java 2 Standard Edition)中的JavaBean,它是按照特定格式编写的Java类文件。JavaBeans包括实例变量(Instance Variable()和get(),set()的方法来访问实例变量的数据。这种格式大大简化了程序设计。J2EE的构件在JavaBeans基础上进行了拓展。由于Web编程比较复杂,J2EE提供了更多应用构件,主要包括三类:客户端的Applet和程序客户;Web容器内的JSP,Servlet,JSTL等构件;企业Java Beans容器内的EJB构件和资源连接构件。

1)J2EE的客户

J2EE Web应用可以和多种客户端程序连接。这些客户主要包括以下部分:Web客户端包括动态生成的网页(包含各种各样的类型标注语,如Html,xml等),以及在客户机上运行的Web浏览器。Web浏览器(如Internet EXPlorer,Netscape)以标准格式显示从服务器传递来的网页。不管J2EE应用服务器早怎样生成这些网页的,它们被传递给浏览器时已经是HTML或XML格式,浏览器只是正确地显示给用户。所以,有时Web客户端被称为"瘦客户",瘦客户不承担复杂的数据检索和计算任务,这些复杂而耗时的操作在J2EE服务器端Web容器和EJB容器内进行。这样保证了"客户-服务器"结构的优势,降低了Web流量。

Applet是基于Java的小型客户端构件。它一般在Web浏览器上运行,通过HTTP协议和服务器进行通信。从服务器传给浏览器的网页可能包括嵌入的Applet程序;这些Applet程序在浏览器所安装的Java虚拟机(Java virtual machine)上执行。这要求客户机的浏览器事先安装Java Plug-in和有关安全许可文件。

Web客户端程序和Applet各有优点。Web客户程序(就是用网页)更简单和普遍,因为它不需要安装Java Plug-In,也无须操心客户程序运行的安全问题。并且,Web客户程序使编程和网页设计分离,这样保证了程序设计的模块化。会作漂亮的网页的人员因而不需要了解Java编程语法。Applet更适合复杂的客户界面。

由于Applet更接近Java编程,许多专业人员更擅长利用Java丰富的功能(API)来进行客户端编程。假如使用得法,Applet界面会更快速和灵活。比如,美国一家非常受欢迎的股票交易公司Datek就推出了使用Applet为界面的网上股票交易工具,无须用户点击图标和按键,它能够随时更新股票的交易分析数据和曲线。

客户应用程序是指在客户机上运行的J2EE程序。它为用户提供了丰富的界面(如JavaSwing,AWT)和复杂的操作。客户应用程序直接访问在服务器EJB容器内的EJB程序。当然,J2EE客户应用程序也可像Applet客户那样以HTTP连接和服务器的Servlet通信。与Applet不同的是,客户应用程甀不同等??据????取安全设置,J2EE容器还负责治理某些基本的服务,譬如构件的生命周期、数据库连接资源共享、数据持久性(data persistency)。

序一般需要在客户端进行安装,而Applet是在Web上下载,无须专门安装。一般来说,客户应用程序适合在企业内部网中使用,Applet适合在WWW上使用。

Java Web Start客户是基于JFC/Swing API的,适合J2EE程序使用的客户应用,它基于比较新的Java Web Start技术。这种技术主要提供了网上的快捷程序下载和安装方式。Java Web Start兼有Applet和客户应用程序的优点,但设置起来有些复杂。

无线客户基于移动信息设备定型技术(Mobile Information Device Profile)。Java微型版(Java 2 Micro Edition)提供了MIDP的API和有限连接设备配置(Connected Limited Device Configuration)技术。这些技术可以使无线设备(如手机,PDA)同J2EE程序进行通信。

2)Web构件

Web构件是在J2EE Web容器上运行的软件程序。Web容器主要支持多层结构的表示层。它的功能是在HTTP协议上对Web请求(request)进行响应(response)。这些所谓响应其实就是动态生成的网页。用户每在浏览器上点击一个链接或图标,实际上是通过Web向服务器发出请求。J2EE平台的Web构件对这些请求进行处理后回复给客户相应的HTML或XML文件。

J2EE Web构件包括servlet,Java Server Page(JSP)和Java Server Pages Standard Tag Library(JSTL)。

Servlet是Java动态处理HTTP请求和生成网页的类(class)。每个servlet就是一个在J2EE应用服务器Web容器(又称Web服务器)里的程序构件。这种构件有效地利用了Web服务器的HTTP通信功能。Web服务器负责将Web请求传递给servlet。

Web服务器内部根据用户要求的统一资源定位器(URL,即通常所说的网址)查找到对应的servlet,然后将servlet处理生成的HTML或XML文件以HTTP形式反馈给客户。Web程序开发人员主要编写servlet类程序无须关心Web服务器的运作细节,编写servlet的程序员用servlet API进行以下工作:初始化和结束servlet;连接servlet的运行环境;接收或传递Web请求,发送Web反应;维护和治理客户会话(session);和其他Web构件协同工作;使用过滤器对Web请求和响应进行处理;实现Web安全治理。

JSP可以说是servlet的变形,它像是文本格式的servlet,它的写法有些像写网页,这样就为应用开发者(非凡是不熟悉Java语言的)提供了方便,JSP在Web容器内会被自动编译为servlet,编写JSP比编写servlet程序更简洁;一个JSP文件包括两类成分:生成HTML或XML模板和处理动态内容的JSP元素。JSP开发者假如只改变网页外观,他们只要对JSP内的模板进行编辑而不用改动JSP元素。JSP元素主要用于生成动态内容或调用底层EJB构件,Servlet编程将二者混在一起,而JSP就清楚多了,JSTL将常用的JSP功能封装成为简单的标签(tag)。熟悉HTML网页编程的人知道,网页是由各种有标签的文字组成的,各种标签(如表格、字体)的写法基本固定。JSTL采用了相似的概念设计JSP。例如,设计者不必自己用JSP写一个能连接数据库的JSP文件,可以用现成的JSTL标签来进行数据库连接。这种JSTL标签是最优化和标准化的,任何种类的Web服务器都会支持,这样就省去了不少JSP的麻烦;JSTL目前提供基本的JSP功能,仍在不断扩充中。

3)企业JavaBeans(EJB)构件

EJB容器用于实现企业业务操作的程序,它在多层结构中处于业务层和数据访问层。这里我们引入"业务逻辑"这个概念。在J2EE编程中,业务逻辑指非凡企业领域对数据的处理需求,譬如银行业务、零售或财务等,简单说就是企业程序中的数据结构和算法。业务逻辑因企业的业务性质而异,它由EJB构件在J2EE Web程序中实现,EJB构件能够从客户端或Web容器中收到数据并将处理过的数据传送到企业信息系统来存储,EJB还能够从数据库检索数据并送回到客户端;由于EJB依靠J2EE容器进行底层操作,使用EJB构件编写的程序具有良好的扩展性和安全性。

J2EE 1.4版有三种EJB构件:session bean(会话bean),entity bean(实体bean)和message-drivenbea

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有