阅读以下关于Web应用系统开发的问题,在答题纸上回答问题1至问题3。
A公司承担了某企业应用系统的开发任务,用户要求系统最终应发布到Web上供企业员工及企业客户使用。项目组在进行方案论证时,首先肯定了该系统需使用B/S结构,但在系统应采用的底层平台上产生了分歧,一方认为应采用微软.NET平台,一方认为应采用Java企业版平台。经过认真讨论,结合两种平台的特点及项目的实际需求,项目组最终决定采用Java企业版平台作为系统开发运行的基础平台。
【问题1】(9分)
请在以下平台特点(1)~(9)中,选择出.NET平台与Java企业版平台各自具备的优势填入表5-1的(a)~(f)项中,选择出两个平台共有的特点填入表5-1的(g)~(i)项中。
(1)良好跨平台可移植性支持
(2)易于部署与配置
(3)多程序设计语言支持
(4)良好的Web多层应用开发支持
(5)丰富的多厂商外部支持
(6)良好的O/R(对象/关系)映射支持
(7)针对特定平台的优化支持
(8)良好的源代码以外的可定制性支持
(9)良好的Web服务支持
表5-1 .NET平台与Java平台的优势对比
【问题2】(8分)
MVC(Model-View-Controller)模式是Web应用系统开发中常用的一种软件架构模式。请分别针对基于EJB的重量级框架和基于Struts等的轻量级框架,说明MVC模式中的各组件应采用何种构件实现。
项目组在进行需求调研时,发现用户界面部分的变动可能会比较频繁,因此需要降低系统界面与业务逻辑之间的耦合度。MVP(Model-View-Presenter)模式是由MVC模式派生出的一种设计模式,其主要目的是降低MVC模式中模型(Model)与视图(View)的耦合度,请用300字以内文字,从组件耦合度、组件分工及对开发工程化支持等三方面说明MVP模式与MVC模式的主要区别。
【问题3】(8分)
因为系统中大量业务逻辑涉及企业的核心商业数据,为保证系统数据一致性,完善的事务(Transaction)控制是系统实现时必需考虑重要因素之一。请用200字以内文字说明事务的基本特征,并简单描述EJB规范中提供的两种事务控制的基本方法。
正确答案及解析
正确答案
解析
【问题1】
(a)~(c):(2)、(3)、(7),以上三个答案顺序可调换;
(d)~(f):(1)、(5)、(8),以上三个答案顺序可调换;
(g)~(i):(4)、(6)、(9),以上三个答案顺序可调换;
【问题2】
在基于EJB的重量级框架中,实现的构件分别为:
模型(Model):由EJB构件实现
视图(View):由JSP构件实现
控制器(Controller):由Servlet构件实现
在基于Struts等的轻量级框架中,实现的构件分别为:
模型(Model):由Java Bean构件实现
视图(View):由JSP构件实现
控制器(Controller):由Servlet构件实现
MVP模式与MVC模式的主要区别为:
(1)在组件耦合度方面:在MVP模式中,视图并不直接使用模型,它们之间的通信通过Presenter进行,从而实现了视图与模型的分离,而在MVC模式中,视图直接与模型交互。
(2)在组件分工方面:在MVP模式中,视图需要处理鼠标及键盘等触发的界面事件,而在MVC模式中这通常是由控制器完成的工作;在MVP模式中,系统核心业务逻辑组织集中在Presenter中,而在MVC模式中,相应的控制器通常只完成事件的分发。
(3)在开发工程化支持方面:MVP模式可更好地支持单元测试,而在MVC模式中,由于模型与视图绑定,因此难以实施相应的单元测试;在MVP模式中,Presenter基于约定接口与视图和模型交互,可更好地支持组件的重用。
【问题3】
事务的基本特征包括:
原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性:在事务开始之前和事务结束以后,数据的完整性限制没有被破坏。
隔离性:两个事务的执行是互不干扰的,两个事务时间不会互相影响。
持久性:在事务完成以后,该事务对数据所作的更改便持久地保存在数据库之中,并且是完全的。
EJB规范支持的两种事务控制方法为:
容器维护的事务(Container Managed Transaction,CMT):由EJB容器根据部署描述符或EJB构件注释中指定的事务属性自动控制事务的边界,容器维护的事务是方法级的,即默认将一个方法当作一个事务执行,当方法执行的过程中发生系统级异常,容器会自动将事务回滚,从而将方法前面执行的结果恢复。
Bean维护的事务(Bean Managed Transaction,BMT):由程序员在EJB的源代码中控制事务执行的边界,事务的边界通过Java事务接口(Java Transaction API,JTA)进行控制,Bean维护的事务可以跨越方法的边界。
你可能感兴趣的试题
E-mail地址由分隔符“()”分为前后两部分,分别指明用户名及邮件
-
- A.//
- B.\\
- C.@
- 查看答案
某 html 文档中有如下代码,则在浏览器中打开该文档时显示为( )。
<form>
Listl:
<input type="text" name="List1" />
<br / >
List2:
<input type="text" name="List 2 " />
< /form>
-
- A.见图A
- B.见图B
- C.见图C
- D.见图D
- 查看答案
设有商品关系P(商品名,条形码,供应商号,价格,数量), “条形码”唯一标识关系P中的每一个元组,商品名不能为空,供应商号是关系P的外键。另有供应商关系S(供应商号,供应商名,地址,电话)。关系 P 中的商品名是唯一的。建立商品关系 P 的 SQL语句如下所示:
CREATE TABLE P( 商品名CHAR(30)( ),
条形码CHAR(30) ( ) ,
供应商号 CHAR(5) ,
价格 CHAR(20) ,
数量CHAR(20)
( )(供应商号) REFERENCES S(供应商号));
查询供应商及价格小于等于 2500 元且大于等于 1280 元的“电冰箱”的数量的SQL语句为:
SELECT商品名,供应商名,价格,数量
FROM P
WHERE商品名= ’电冰箱’ AND ( ) ;
将供应商号“12021”所供应的商品价格上涨3%的SQL语句为:
UPDATE P
( )
WHERE 供应商号= ’12021’;
查询供应商地址包含“西安”的供应商名及电话的SQL语句为:
SELECT供应商名,电话
FROM S
WHERE ( );
-
- A.NULL
- B.UNIQUE
- C.NOT NULL
- D.NOT NULL UNIQUE
- 查看答案
函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为( );若以传引用方式调用g,则函数f的返回值为( )。
-
- A.3
- B.4
- C.6
- D.7
- 查看答案
-
- A.见图A
- B.见图B
- C.见图C
- D.见图D
- 查看答案