JAVA网页编程之基于EJB手艺的商务预订体系的开辟
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。手艺已愈来愈多地使用到年夜型收集体系开辟中,本文中,笔者将先容EJB(EnterpriseJavaBeans)的界说、基于EJB手艺的使用体系布局模子和EJB组件的内容和分类,最初分离基于EJB的布局模子和EJB组件开辟了一个商务预订体系。
EJB从手艺上而言不是一种“产物”,而是一种手艺标准。SUN公司对EJB的界说是:EJB的布局是开辟和设置基于组件的散布式商务使用程序的一种组件布局。用EJB布局开辟的使用程序是可伸缩的、事件型的、多用户平安的。这些使用程序大概只需编写一次,却能够在撑持EJB标准的义务服务器平台长进行设置。总的来讲,EJB是一个组件事件监控的尺度服务器真个组件模子。
基于EJB手艺的体系布局模子
EJB布局是一个服务端组件布局,是一个条理性布局,其布局模子如所示。该布局模子在一般情形下可分为客户层、营业逻辑层和数据层,上面笔者对此作一复杂先容。
<br>:基于EJB的使用布局模子
客户层次要是用来满意对全部体系的各类会见需求并处置以下事情:
吸收用户的输出,还能够对用户的输出举行剖析反省并作响应的处置;
显现由服务器端高层传来的运转了局。
客户层一般是由客户历程构成,这些历程由扫瞄器静态地创立和打消。
营业逻辑层这是全部体系最关头的部分。营业逻辑层在一般情形下会分为两层,其高层是哀求吸收层(一样平常称之为Web层),用于吸收从扫瞄器传来的哀求并将哀求交给底层举行处置,同时将哀求处置了局发送给扫瞄器。这些历程次要由JSP页面、基于Web的Applets和显现HTML页面的Servlets构成。底层是哀求处置层(一样平常称之为EJB层),包含监听历程、处置历程和数据库操纵历程,卖力处置哀求吸收层传来的客户哀求并对它举行处置,同时将哀求了局传送给哀求吸收层,假如必要的话还必要将处置了局交给数据层举行存储。
数据层次要是为营业逻辑层供应数据服务,如存储营业逻辑层处置了局、前往营业逻辑层检索的数据了局,同时也是为了完成屏障数据源的变更,从而完成当数据库产生变更时我们只需修正毗连数据源的语句就能够。
EJB组件的分类
一般情形下,服务真个EJB组件有两种基础范例:EntityBean(实体Bean)和SessionBean(会话Bean)。
<br>
:商务预订体系的构架
EntityBean是为了实际天下的对象制作的模子,这些对象一般是数据库的一些耐久纪录。EntityBean为那些能够表告竣名词的商务观点创建模子,它既形貌了实在天下对象的形态,也形貌了它们的举动,同时同意开辟者封装与详细观点有关的数据和商务划定规矩。SessionBean是一种经由过程HomeInterface创立并对客户端毗连专有的EnterpriseBean,Sessionbean实例一样平常不与别的客户端共享。SessionBean是客户端使用程序的一个扩大,并卖力办理全部历程或义务。SessionBean能够办理EntityBean之间的交互,形貌它们怎样一同事情来完成一个特别义务。
EntityBean依据办理耐久性的体例能够分为容器办理的Bean和利用Bean办理的Bean。容器办理的Bean由EJB容器主动办理它们的耐久性,容器晓得Bean实例的字段是如何映照到数据库中往,并主动办理拔出、更新和删除数据库中与实体有关的数据;利用Bean办理耐久性的Bean必要明白地完成一切这些事情。Bean的开辟者必需编写代码操纵数据库,EJB容器只告知Bean实例甚么时分能够在数据库中平安地拔出、更新和删除数据,除此以外,它不供应任何其余匡助。Bean实例本人完成一切的耐久性事情。
SessionBean依据是不是有形态可分为无形态Bean和有形态Bean。无形态SessionBean偏向于通用并可反复利用;有形态SessionBean是客户使用程序的扩大,它代表客户完成义务并保护客户的相干形态。
商务预订体系的开辟
客舱预订体系是在J2EE平台上开辟的基于EJB组件手艺的商务预订体系,其次要流程是用户登录今后,将被顺次率领着经由过程主顾选择页和导航选择页,并将为主顾选择一个可取得的客舱(从TraveAgentBean处取得可供选择的客舱列表,TravelAgentBean的listAvailableCabin()办法由天生此网页的Servlet挪用,客舱列表将用于装载到用户扫瞄器的网页上创立HTML列表框),当用户选择一间客舱并提交了选择时,一个HTTP哀求将会发送到EJB服务器(WebsphereApplicationServer),服务器接到此哀求后,将其分拨给ReservationServlet,此Servlet挪用TravelAgent.BookPassage()办法做实践的预订,BookPassage()办法前往的标签信息将用于创立另外一个送回用户扫瞄器的网页。假如预订乐成,则由ProcessPaymentServlet往挪用ProcessPaymentBean中的付出办法,从而完成对客户的免费历程。其详细构架见。
预定体系中的EJB组件次要包含以下几个部分:
CabinBean:实体Bean,主键是CabinPK,是用来封装实际天下中的航船客舱的一个实体Bean。
CustomerBean:实体Bean,主键是CustomerPK,是用来封装实际天下中必要预订航船客舱的消耗者的一个实体Bean。
CruiseBean:实体Bean,主键是CruisePK,是用来封装实际天下中航船航路的一个实体Bean。ReservationBean:实体Bean,主键是CruiseID,CabinID,它代表了数据库中稳定的一笔记录,即一个预订,它纪录了预订体系的汗青事务,次要是用来避免两重预订,即两个客户预订不异航路的不异客舱,发生这类成绩的缘故原由是由于客户选择客舱和航路的时候与挪用bookPassage()办法的时候之间有一段距离工夫。TravelAgentBean:有形态会话Bean,一个卖力预订飞行舱位事情流的会话Bean,它封装了完成一条航路的一个预订操纵的历程并在全球的游览代办署理的客户端使用程序中利用。TravelAgentBean不但满意消耗者预订单子的必要,还可供应在飞行中残剩客舱的动静。为了完成此义务,Bean必要晓得预订是由哪一条航路、客舱,和客户构成,搜集到这些信息后,由bookPassage()办法来完成处置预订历程,它为客户账户的计费卖力,在准确航路的准确船只上预订选择的客舱,并经由过程Ticket类来为客户发生一张单子。在这里,我们需利用CreditCard类存储有关客户信誉卡的相干信息,同时,ListAvailableCabins()办法用来显现可用的还没有被预订的客舱。
ProcessPaymentBean:无形态会话Bean,它是在事件体系中向消耗者免费的历程。它界说了支票、现金和信誉卡付出体例的三个事件办法,即ByCheck()、ByCash()和ByCredit()。
商务预订体系的程序代码示例
全部商务预订体系的开辟是在IBMVisualAgeforJava上面开辟完成的,在该IDE开辟情况中,实体Bean绝对会话Bean要简单开辟很多,以下就以TravelAgentBean为例,先容EJB组件的开辟历程:
1.TravelAgent远程接口
它供应了设置客户但愿预订的航路和客舱ID的办法。别的,还设置boolPassage()办法来对客户的预订举行计费,并为客户发生一张单子。详细代码以下:
packagecom.titan.travelagent;
importjava.rmi.RemoteException;
importjavax.ejb.FinderException;
importcom.titan.cruise.Cruise;
importcom.titan.customer.Customer;
importcom.titan.processpayment.CreditCard;
publicinterfaceTravelAgentextendsjavax.ejb.EJBObject
{
publicvoidsetCruiseID(intcruise)throwsRemoteException,FinderException;
publicintgetCruiseID()throwsRemoteException,IncompleteConversationalState;
publicvoidsetCabinID(intcabin)throwsRemoteException,FinderException;
publicintgetCabinID()throwsRemoteException,IncompleteConversationalState;
publicintgetCustomerID()throwsRemoteException,IncompleteConversationalState;
publicTicketboolPassage(CreditCardcard,doubleprice)throwsRemoteException,IncompleteConversationalState;
}
2.TravelAgentHome接口
TravelAgentHome接口代码以下:
puckagecom.titan.tracelagent;
importjava.rmi.RemoteException;
importjavax.ejb.CreateException;
importcom.titan.customer.Customer;
publicinterfaceTravelAgentHomeextendsjavax.ejb.EJBHome{
publicTravelAgentcreate(Customercust)throwsRemoteException,CreateException;}
3.TravelAgent Bean类
它必要完成TravelAgent的远程接口和Home接口中的一切举动,限于篇幅,本文将不再先容实在古代码,感乐趣的读者可本人加以完成。
经由过程以上步骤,我们就完成了一个商务预定体系的EJB组件的开辟。
java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 是一种使网页(Web Page)产生生动活泼画面的语言 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种为 Internet发展的计算机语言 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 是一种突破用户端机器环境和CPU 是一种为 Internet发展的计算机语言
页:
[1]