J2EE考试复习试题_struts2_spring_hibernate

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、填空:
1.Struts 2框架由__webWork______和___xWork_框架发展而来。

XWork是一个标准的Command模式实现,并且完全从web层脱离出来。

Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Navigation Language),IoC(Inversion of Control倒置控制)容器等。

其目的是:创建一个泛化的、可重用且可扩展的命令模式框架,而不是一个特定在某个领域使用的框架。

其特点是:
1、基于一个简单的接口就可以进行灵活且可自定义的配置;
2、核心命令模式框架可以通过定制和扩展拦截器来适应任何请求/响应环境;
3、整个框架通过类型转换和使用OGNL的action属性验证来构建;
4、包含一个基于运行时Attribute和验证拦截器的强大的验证框架。

Xwork和WebWork的关系
WebWork2 被构建在XWork之上,以XWork为基础。

通过使用XWork的命令模式框架和拦截器框架,提供了一个支持Web功能、能快速构建Web应用的命令模式框架。

xwork和Webwork的交互图
2.Struts 2以__过滤器__为核心,采用__拦截器__的机制来处理用户的请求。

3.构建Struts 2应用的最基础的几个类库是_struts2-core__、_commons-logging_、_xwork-core_、__freamarker___以及_ognl_。

4.Struts 2中的控制器类是一个普通的_POJO_。

5.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为___________。

6.在Struts 2表单标签库中,表单标签为___________。

7.ActionSupport类实现了___________接口和___________等接口。

8.通过控制器类中的___________方法来输出校验错误信息。

9. Struts 2以__________为核心控制器,它的初始化方法为__________。

10.Hibernate配置数据库连接的四种属性名是、、、。

11. 在Hibernate XML影射文件中描述主键生成机制,其属性描述了主键的生成策略,至少写出三种策略名、、。

12.基于Hibernate用标注(annotations)描述映射关系,映射实体类中表示主键的属性的标注是___________ ;映射实体类中普通属性的标注是___________;实体属性对应的列用标注___________。

13.Hibernate的会话接口中声明了持久化的操作,删除一个实体的方法是___________,合并一个实体的方法是___________,获得事务处理接口的方法是___________。

14. Hibernate的会话接口同时又是一个工厂类型:创建一个HQL查询接口的方法是___________,创建基于公式(标准)接口的方法是___________。

15. 对象关系映射(ORM)的基本原则是:类型(class)映射___________,属性(property)映射___________,类型的实例或对象(instance | object)映射___________。

16. Hibernate应用缺省的XML格式的配置文件名是___________, 放置在___________下;配置数据库方言的属性名是___________。

17. 在Hibernate中级联操作的属性值至少写出三个___________ 、___________、___________。

18 基于Hibernate用标注(annotations)描述映射关系,实体类型用标注___________ ;实体对应的表用标注___________。

19 Hibernate的会话接口是___________,它由接口___________创建;Hibernate处理事务的接口是___________;封装HQL的接口是___________ 。

20 EJB有三种类型:___________、___________、___________。

21 为配置Jboss作为EJB的运行环境,需要设置___换进变量。

22 Jboss作为EJB的运行环境,EJB应该部署在_____目录
23 无状态的会话Bean的生命周期只有两个阶段____和_____
24 在EJB调用机制中,存根(stub)是在____端产生的
25 禁用默认拦截器的注释是_______
26 注入资源的注释是_______
27 如果在某个特点时间执行某段程序,应使用EJB提供的_______
28 如果实体Bean需要返回客户端,必须实现__________接口
29 如果不想让实体Bean的某些属性映射到表的字段,用_____注释
30 在JPQA查询中,排除相同的对象用___
二、选择:
1) 在三层结构中,数据访问层承担的责任是(B)〔选一项〕
a) 定义实体类
b) 数据的增删改查操作
c) 业务逻辑的描述
d) 页面展示和控制转发
2) 下面关于数据持久化概念的描述,错误的是(D〔选择一项〕
a) 保存在内存中数据的状态是瞬时状态
b) 持久状态的数据在关机后数据依然存在
c) 数据可以由持久状态转换为瞬时状态
d) 将数据转换为持久状态的机制称为数据持久化
状态:瞬时,持久,脱管
3) 下面关于Hibernate的说法,错误的是(C)〔选择一项〕
a) Hibernate是一个“对象-关系映射”的实现
b) Hibernate是一种数据持久化技术
c) Hibernate是JDBC的替代技术
d) 使用Hibernate可以简化持久化层的编码
4) Hibernate配置文件中,不包含下面的(AB)〔选择二项〕
a) “对象-关系映射”信息
b) 实体间关联的配置
c) show_sql等参数的配置
d) 数据库连接信息
5) 在Hibernate关系映射配置中,inverse属性的含义是(B)。

〔选择一项〕
a) 定义在<one-to-many>节点上,声明要负责关联的维护
b) 声明在<set>节点上,声明要对方负责关联的维护
c) 定义在<one-to-many>节点上,声明对方要负责关联的维护
d) 声明在<set>节点上,声明要负责关联的维护
6) 在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是(B。

〔选择一项〕
a) 配置客户和订单关联的cascade属性为save-update
b) 配置客户和订单关联的cascade属性为all
c) 设置多对一关联的inverse属性为true
d) 设置多对一关联的inverse属性为false
7) 下面一对多关联的配置中,存在哪些错误(BD)。

<set name="orders" inverse="false" cascade="true">
<one-to-many class="com.x.entity.Order"
column="customer_id" />
</set>
a) inverse属性不可以设置为false
b) cascade属性不可设置为true
c) class="com.x.entity.Order"应为ty pe="com.x.entity.Order"
d) column属性不可再<one-to-many>节点内设置
8) 执行下面的hql查询,关于返回值的说法,正确的是(B)。

select ername,erid
from er u
where u is not null
a) 语法错误,不能执行
b) 返回一个类型为List的实例
c) 返回一个数组
d) 当返回结果只有一条时,返回一个数组
9) 下面创建Criteria对象的语句中正确的是(D)。

a) Criteria c = query.createCriteria();
b) Criteria c = query.addCriteria();
c) Criteria c = session.createCriteria();
d) Criteria c = session.createCriteria(User.class);
10) 一般情况下,关系数据模型与对象模型之间有哪些匹配关系(ACD多选)
a) 表对应类
b) 记录对应对象
c) 表的字段对应类的属性
d) 表之间的参考关系对应类之间的依赖关系
11) 以下关于SessionFactory的说法哪些正确?BC
a) 对于每个数据库事务,应该创建一个SessionFactory对象
b) 一个SessionFactory对象对应一个数据库存储源。

c) SessionFactory是重量级的对象,不应该随意创建。

如果系统中只有一个数据库存储源,只需要创建一个。

d) SessionFactory的load()方法用于加载持久化对象
12) Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用哪个元素映射orders属性?AB
a) <set>
b) <one-to-many>
c) <many-to-one>
d) <property>
13) <set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(D)〔选择一项〕
a) none
b) save
c) delete
d) save-update
14) 以下哪些属于Session的方法?ABD
a) load()
b) save()
c) open()
d) saveOrUpdate()
15) 创建序列时,若未指定Cycle选项,则当当前值大于MaxV alue时将()〔选择一项〕
a) 从MinV alue重新开始循环
b) 重复使用MaxV alue 值
c) 执行出错
d) 使用随机值
16) 以下程序的打印结果是什么?C
tx = session.beginTransaction();
Customer c1=(Customer)session.load(Customer.class,new Long(1));
Customer c2=(Customer)session.load(Customer.class,new Long(1));
Sy stem.out.println(c1==c2);
mit();
session.close();
a) 运行出错,抛出异常
b) 打印false
c) 打印true
d) 编译出错
17) 以下程序代码对Customer的name属性修改了两次:B
tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,
new Long(1));
customer.setName(\"Jack\");
customer.setName(\"Mike\");
mit();
执行以上程序,Hibernate需要向数据库提交几条update语句?(单选)
a) 0
b) 1
c) 2
d) 3
18) 在持久化层,对象分为哪些状态?(ACD多选)
a) 瞬时(Transient)
b) 新建(New)
c) 脱管(Detached)
d) 持久(Persistent)
19) 对于以下程序,Customer对象在第几行变为持久化状态?(B单选)
Customer customer=new Customer();
customer.setName(\"Tom\");
Session session1=sessionFactory.openSession();
Transaction tx1 = session1.beginTransaction(); //line1
session1.save(customer); //line2
mit(); //line3
session1.close(); //line4
a) line1
b) line2
c) line3
d) line4
20) 对于以下程序,Customer对象在第几行变为游离状态?(D单选)
Customer customer=new Customer();
customer.setName(\"Tom\");
Session session1=sessionFactory.openSession();
Transaction tx1 = session1.beginTransaction(); //line1
session1.save(customer); //line2
mit(); //line3
session1.close(); //line4
a) line1
b) line2
c) line3
d) line4
21) 以下哪一种检索策略利用了外连结查询?(C单选)
a) 立即检索
b) 延迟检索
c) 迫切左外连结检索
d) 迫切右外连结检索
22) 假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况(D单选)
Session session=sessionFactory.openSession();
tx = session.beginTransaction();
Customer customer=(Customer)session.get(Customer.class,new Long(1));
mit();
session.close();
Iterator orderIterator=customer.getOrders().iterator();
a) 编译出错
b) 编译通过,正常运行,不显示任何信息
c) 编译通过,正常运行,并显示出结果
d) 编译通过,但运行时抛出异常
23) POJO是A
a) Plain Old Java Object
b) Programming Object Java Object
c) Page Old Java Object
d) Plain Object Java Old
24) POJO的作用是AC
a) 普通的Java对象映射数据库字段
b) 数据访问
c) 对象的赋值
d) 保存客户端对象
25) 实现equals和hashCode最显而易见的作用是A
a) 比较两个对象标识符的值
b) 比较数据库的两条数据
c) 比较两个组建是否部署在同一个应用服务器上
d) 对象与字段的映射
26) 持久化状态前进行合法性检查,需要实现的接口是B
a) ActionListener
b) Lifecycle
c) HttpServletRequest
d) 持久化状态合法检查不需要实现接口
27) 在源代码中嵌入映射信息需要A
a) XDoclet
b) EJB
c) Hibernate
d) Spring
28) 所有的Hibernate,除了了都支持空(null)语义。

A
a) Collection
b) Element
c) Entity
d) NodeList
29) 下面不能生成映射文档无
a) XDoclet
b) Middlegen
c) AndroMDA 建模工具
d) MyEclipse
30) 元素把子对象的一些元素与父类对应的表的一些字段映射起来A
a) Component
b) Element
c) Attribute
d) ActionForm
31) 要实现一个自定义类型,需要实现的接口是或AB
a) erType
b) positeUserType
c) org.hibernate.Session
d) erType
32) ORM是A
a) 对象关系映射
b) 对象实体映射
c) 数据传输对象
d) 数据访问对象
33) JDBC可以做哪三件事ABC
a) 与数据库建立连接
b) 通过JDBC-API向数据库发送SQL语句
c) 通过JDBC-API执行SQL语句
d) 进行实体关系的映射
34) ORM有什么好处A
a) 能进行关系对象的映射
b) 具有控制器功能
c) 能在服务器端保存客户端状态
d) 向DTO一项能传递数据
35) 常见的实体域对象是AB
a) 主动域对象(EJB)
b) JavaBean对象(也称为POJO,Plain Old Java Object)
c) 控制器对象
d) ActionForm
36) 过程域对象在Hibernate中代表C
a) 业务逻辑操作
b) 应用层操作
c) 数据库层操作
d) 组件对象操作
37) 常见的三层分别是ABC
a) 应用层
b) 业务逻辑层
c) 数据访问层
d) 通讯层
38) 对象(实体的实例)对一个特定的Session来说,要么是一个____对象,要么是____对象AB
a) 瞬时
b) 持久化
c) 控制器
d) 数据传输对象
39) 如果你已知某个实例的持久化标识,你可以使用Session的_____方法来获取它A
a) load()
b) loadAll()
c) getAllData()
d) init()
40) 如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询,使用Session的____方法A
a) createQuery()
b) query()
c) queryAll()
d) queryObject()
41) 使用Session的____会把对象的状态从数据库中移除A
a) delete()
b) remove()
c) clear()
d) removeAll()
42) Hibernate通过____接口,____接口和Type层次体系来访问元数据。

AB
a) ClassMetadata
b) CollectionMetadata
c) Metadata
d) CollectionMeta
43) HQL不支持聚合函数有D
a) count(*)
b) avg(…)
c) count(…)
d) count(?)
44) ____和____子句都不支持算数表达式。

AB
a) group by
b) order by
c) compute by
d) insert by
45) 除了____和____外,查询语句都是大小写不敏感得到。

AD
a) Java类
b) POJO类
c) 映射文件
d) 属性名称
46) from Cat as cat,不仅仅返回____的实例,而且还返回____的实例AC
a) Cat
b) Cat父类
c) Cat子类
d) Cat实现接口
47) ____代表升序,____代表降序AC
a) asc
b) ansi
c) desc
d) description
48) 对原生SQL查询的控制是通过___接口进行的。

A
a) SQLQuery
b) Session
c) List
d) Query
49) ____和____元素是用来连接关联以及将查询定义为预先初始化各个集合的。

A
a) <return-join>
b) <load>
c) <join>
d) <load-collection>
50) 一个命名查询可能会返回一个标量值,你必须使用___元素来指定字段的别名和Hibernate类型。

a) <return-scalar>
b) <init-result>
c) <return>
d) <scalar>
51) 假设实体映射时有一个____的关联指向另外一个实体,在查询时必须也返回那个实体,否则会导致发生一个”column not found”的数据库错误。

D
a) many-to-one
b) many-to-many
c) one-to-many
d) one-to-one
52) 你可以把结果集映射的信息放在外部的____元素中,这样就可以在多个命名查询间,或者通过setResultSetMapping()API来访问。

A
a) <resultset>
b) <result>
c) <mapping>
d) <description>
53) 使用Hibernate的QBC查询,要使用SQL中的类似select count(*) from tablename方法求出记录数,必须使用哪一个类。

B
a) Restrictions
b) Projections
c) Criteria
d) Criteron
54) 在Hibernate中,关于数据库的方言,下面哪个说法是正确的D
a) 可以不写数据库方言
b) 数据库方言没有作用,可以随便写
c) 有通用的数据库方言可以使用
d) 数据方言对应于每个数据库,主要用于产生SQL语句
55) 下面不属于持久化的是A
a) 把对象转换称字符串的形式通过网络传输,在另一端接收到这个字符串后能把对象还原出来
b) 把程序数据从数据库中读出来
c) 从XML配置文件中读取程序的配置信息
d) 把程序数据保存为文件
56) 下面不是Hibernate映射文件中包含的内容。

(AB选两项)
a) 数据库连接信息
b) Hibernate属性参数
c) 主键生成策略?
d) 属性数据类型
57) 下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是E
public static void imain(String[] args){
SessionFactory sf=new Configration().configure().buildSessionFactory();
Session session=sf.openSession();
Medal medal=new Medal();
medal.setOwner(“totong”);
medal.setType(“Gold medal”);
session.save(user);
session.close();
}
a) 配置文件配置有误
b) 没有在配置文件中包含对映射文件的声明
c) 配置文件配置有误
d) 没有对持久化操作捕捉异常
e) 没有开启事务
58) 下列属于多对一关系的是__D
a) 书和作者
b) 手机和生产厂家
c) 用户和发布的出租信息
d) 士兵和班长
59) 已知wage.getItem().size()的值是1。

要想使执行session.update(wage)时自动执行session.update(wage.getItems().get(0)),必须配置D
a) <set name=”items” inverse=”true” cascade=”none”>…</set>
b) <set name=”items” inverse=”false” cascade=”none”>…</set>
c) <set name=”items” inverse=”true” cascade=”all”>…</set>
d) <set name=”items” inverse=”false” cascade=”save-update”>…</set>
60) 已知系统中的tbl_user表对应的实体类是User,下列HQL语句中正确的是(AD选两项)
a) from User
b) select * from tbluser
c) select User from User
d) from User u where u.unam e=”15”
61,关于spring说法错误的
a.spring是一个轻量级JAVA EE的框架集合
b.spring包含一个“依赖注入”模式的实现
c.使用spring可以实现声明事务
d.spring提供了AOP方式的日志系统
62,依赖注入说法正确的
a.依赖注入的目标是在代码之外管理程序组建间的依赖关系
b.依赖注入即是“面向接口”的编程
c.依赖注入是面向对象技术的替代品
d.依赖注入的使用会增大程序的规模
63,关于AOP错误的
a.AOP将散落在系统中的“方面”代码集中实现
b.AOP有助于提高系统可维护性
c.AOP已经表现出将要替代面向对象的趋势
d.AOP是一种设计模式,Spring提供了一种实现
64,关于spring AOP错误的
a.首先要编写方面代码,实现MethodBeforeAdvice接口
b.AOP采取拦截方法调用方式实现,可以在调用方法前,后,抛出异常时拦截
c.AOP采取代理的方式实现,常用代理对象的类别为org.springframework.aop.framework.ProxyFactoryBean
d.AOP可以在对目标(target)不做任何修改的情况下增加程序功能
65.不属于Action接口中定义的字符串常量的是___________。

A.SUCCESS B.FAILURE
C.ERROR D.INPUT
66.在控制器类中一般需要添加相应属性的___________和___________。

A.setter方法B.as方法C.getter方法D.is方法
67.控制器需要在___________配置文件中进行配置。

A.web.xml B.struts.xml C.struts2.xml D.webwork.xml
68.不属于Struts 2表单标签库的是___________。

A.<s: textfield > B.<s: textarea > C.<s: submit > D.<select>
69.在JSP页面中可以通过Struts 2提供的___________标签来输出国际化信息。

A.<s: input > B.<s: texts > C.<s: submit > D.<s:text>
70.资源文件的后缀名为___________。

A.txt B.doc C.property D.properties
71. AJAX术语是由哪家公司或组织最先提出的[ C ]
A. Google
B.IBM
C.Adaptive Path
D.Dojo Foundation
72. 以下哪一个Web应用不属于Ajax应用[ A ]
A. Hotmail
B.GMaps
C.Flickr
D.Windows Live
73. 以下哪个技术不是Ajax技术体系的组成部分[ B ]
A. XMLHttpRequest
B. DHTML
C. CSS
D.DOM
74. XMLHttpRequest对象有几个返回状态值[ C ]
A. 3
B. 4
C.5
D. 6
75. 下列哪些方法或属性是Web标准中规定的[ C ]
A. all()
B.innerHTML
C.getElementsByTagName()
D.innerT ext
76. 以下哪一个CSS属性不属于W3C的CSS2规范[ D ]
A.list-sty le-position
B.min-height
C.float
D.text-overflow
77. 下列哪个工具不能用来调试浏览器中的JavaScript [ B ]
A.MS Visual InterDev
B.Eclipse
C.MS Script Debugger
D.Mozilla V enkman
78 xhr.status : Http协议的响应状态表示服务器出错是[ B ]
A 200
B 404
C 500
79. 关于JavaScript中的函数和对象,下列说法不正确的是:[ C ]
A. 每一个函数都有一个prototype对象。

B. 函数就是一个特殊类型的对象。

C. 函数附属于它所附加到的对象上,只能通过该对象访问。

D. 同一个函数可以被附属到多个对象上。

80. 创建一个对象obj,该对象包含一个名为"name"的属性,其值为"value" 。

以下哪一段JavaScript代码无法得到上述的结果[ B ]
A.var obj = new Object(); obj["name"] = "value";
B.var obj = new Object(); = "value";
C.var obj = {name : "value"};
D.v ar obj = new function() { = "value";}
81.在对象XMLHttpReque的属性streadState值为表示异步访问服务器通信已经完成[ D ]
A. 1
B. 2
C. 3
D. 4
82. EJB是:[ B ]
A. 服务器端产品
B. 服务器端组件开发架构
C. 特殊类型的JavaBean
D. 用于实现商业逻辑
83. EJB架构主要使用的设计模式是:[ AC ]
A. Proxy 代理
B. Strategy
C. Delegate 委派
D. Responsibility Chain
84. EJB的类型主要有:[ CDF ]
A. Command Bean
B. Data Access Bean
C. Session Bean
D. Entity Bean
E. Java Bean
F. Message-Driven Bean
85. EJB3.0中Session Bean的组成可以包括:[ ACEFGI ]
A. Home interface
B. A thread class
C. Remote interface
D. Primary key class
E. Local home interface
F. Local interface
G. ejb-jar.xml
H. application.xml
I. Bean class
86.EJB3.0中Entity Bean的组成可以包括:[ ACDEFGI ]
A. Home interface
B. web.xml
C. Remote interface
D. Primary key class
E. Local home interface
F. Local interface
G. ejb-jar.xml
H. ejb.xml
I. Bean class
87. Session Bean按是否跟踪客户状态分:[ BE ]
A. State Session Bean
B. Stateless Session Bean
C. BMT Session Bean
D. CMT Session Bean
E. Stateful Session Bean
88. Entity Bean根据数据持久性的处理方式分:[ BC ]
A. BMT Entity Bean
B. BMP Entity Bean
C. CMP Entity Bean
D. CMT Entity Bean
89. Entity Bean的事务处理方式可采用:[ C ]
A. BMP
B. BMT
C. CMT
D. CMP
90. Session Bean和Message-Driven Bean的事务处理方式可采用:[ B ]
A. BMT和CMP
B. BMT和CMT
C. BMP和CMP
D. BMP和CMT
91. 申明方式的事务处理的属性有:[ ACDFGH ]
A. Supports
B. Should
C. NotSupported
D. Required
E. Maybe
F. RequiresNew
G. Mandatory
H. Never
92. Local interface引入的目的是:[ B ]
A. 本地客户程序才能调用EJB
B. 为了性能
C. 解决Session Bean与Enity Bean之间的交互
93. Message-Driven Bean的Bean Class必须实现[ BC ] ;bean class中服务方法的签名是[ A ]
A. onMessage
B. MessageListener
C. MessageDrivenBean
94. EJBContext是EJB与EJB Container沟通的桥梁,在EJBContext中定义了与安全相关的两个方法是[ CE ], 与事务相关的三个方法是[ BFH ] , 与定时服务相关的方法是[ G ]。

A. getEJBLocalHome
B. getRollbackOnly
C. getCallerPrincipal
D. getEJBHome
E. isCallerInRole
F. setRollbackOnly
G. getTimerService
H. getUserTransaction
95. 有状态Session Bean的bean class中实现了两个方法[ C ]和[ A ] 用来完成状态的swap in/out。

A. ejbActivate()
B. ejbCreate()
C. ejbPassivate()
D. ejbLoad()
E. ejbStore()
F. ejbPostCreate()
96 Entity Bean的bean class中实现了两个方法[ DE ] 来同步内存与数据库的数据。

A. ejbActivate()
B. ejbCreate()
C. ejbPassivate()
D. ejbLoad()
E. ejbStore()
F. ejbPostCreate()
97. 在Entity Bean的关系管理中,[ B ]关系需要casecade delete(级连删除), [ A ] 不能用级连删除。

A. Aggregation 聚合
B. Composition 组合
98. 在编写Message-Driven Bean的实践中,我们使用如下的编程努力来防止有毒消息的产生[ BC ]
A. 用Container管理事务
B. 用Bean管理事务
C. 不抛出异常
D. 只抛出RuntimeException
99 在weblogic(相当于JBOSS或GLASSFISH)上可以部署的模块有[ BCD ]
A. Javabean module
B. Web module
C. Enterprise application module
D. EJB module
E. Resource adapter moudle
100. weblogic与EJB相关的部署描述文件有[ ABD ]
A. ejb-jar.xml
B. weblogic-ejb-jar.xml
C. weblogic.xml
D. weblogic-cmp-rdbms-jar.xml
三、简答
1.Spring框架的优点都有什么?
Spring是分层的架构,你可以选择使用你需要的层而不用管不需要的部分
Spring是POJO编程,POJO编程使得可持续构建和可测试能力提高
依赖注入和IoC使得JDBC操作简单化
Spring是开源的免费的
Spring使得对象管理集中化合简单化
2.描述一下Spring中实现DI(Dependency Injection)的几种方式
方式一:接口注入,在实际中得到了普遍应用,即使在IOC的概念尚未确立时,这样的方法也已经频繁出现在我们的代码中。

方式二:Type2 IoC: Setter injection对象创建之后,将被依赖对象通过set方法设置进去
方式三:Type3 IoC: Constructor injection对象创建时,被依赖对象以构造方法参数的方式注入
Spring的方式
3.简述你对IoC(Inversion of Control)的理解
一个类需要用到某个接口的方法,我们需要将类A和接口B的实现关联起来,最简单的方法是类A中创建一个对于接口B的实现C的实例,但这种方法显然两者的依赖(Dependency)太大了。

而IoC的方法是只在类A中定义好用于关联接口B的实现的方法,将类A,接口B和接口B的实现C放入IoC 的容器(Container)中,通过一定的配置由容器(Container)来实现类A与接口B的实现C的关联。

4. 简述AOP核心?
1)Aspect(切面)切面,是对交叉业务逻辑的统称。

2)Joinpoint(连接点)连接点,指切面可以织入到目标对象的位置(方法,属性等)。

3)Advice(通知)通知,指切面的具体实现。

4)Pointcut(切入点)切入点,指通知应用到哪些类的哪些方法或属性之上的规则。

5)Introduction(引入)引入,指动态地给一个对象增加方法或属性的一种特殊的通知。

6)Weaving(织入)织入,指将通知插入到目标对象。

7)Target(目标对象)目标对象,指需要织入切面的对象。

8)Proxy(代理对象)代理对象,指切面织入目标对象之后形成的对象。

5. EJB包括(SessionBean,EntityBean)说出他们的生命周期?
SessionBean:Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean 的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。

当客户机调用了@PreDestroy修饰的方法时候,它就结束了。

当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例。

EntityBean:Entity Beans能存活相对较长的时间,并且状态是持续的。

只要数据库中的数据存在,Entity beans就一直存活。

而不是按照应用程序或者服务进程来说的。

即使EJB容器崩溃了,Entity beans也是存活的。

Entity Beans生命周期能够被容器或者Beans自己管理。

6.如何在Spring的applicationContext.xml里面使用JNDI而不是datasource?
可以使用”org.springframework.jndi.JndiObjectFactoryBean”来实现。

示例如下:
<bean id=”dataSource”>
<property name=”jndiName”>
<value>java:comp/env/jdbc/appfuse</value>
</property>
</bean>
7.Spring里面如何配置数据库驱动?
使用”org.springframework.jdbc.datasource.DriverManagerDataSource”数据源来配置数据库驱动。

示例如下:
<bean id=”dataSource”>
<property name=”driverClassName”>
<value>org.hsqldb.jdbcDriver</value>
</property>
<property name=”url”>
<value>jdbc:hsqldb:db/appfuse</value>
</property>
<property name=”username”><value>sa</value></property>
<property name=”password”><value></value></property>
</bean>
8.Spring里面applicationContext.xml文件能不能改成其他文件名?
ContextLoaderListener是一个ServletContextListener, 它在你的web应用启动的时候初始化。

缺省情况下,它会在WEB-INF/applicationContext.xml文件找Spring的配置。

你可以通过定义一个<context-param>元素名字为”contextConfigLocation”来改变Spring配置文件的位置。

示例如下:<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/xyz.xml</param-value>
</context-param>
</listener-class>
</listener>
9.如何在web应用里面配置spring?
在J2EE的web应用里面配置spring非常简单,最简单的只需要把spring得ContextLoaderListener添加到你的web.xml文件里面就可以了,示例如下:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
10.Spring里面如何定义hibernate mapping?
添加hibernate mapping 文件到web/WEB-INF目录下的applicationContext.xml文件里面。

示例如下:<property name=”mappingResources”>
<list>
<value>org/appfuse/model/User.hbm.xml</value>
</list>
</property>
11.简述Struts 2框架的诞生和发展过程。

12.简述Struts 2框架中控制器的特征,以及如何在配置文件struts.xml文件中配置。

13.简述Struts 2框架包含哪些表单标签,分别对应HTML标签中的哪些标签。

14.简述如何实现JSP页面国际化及校验错误信息国际化。

15 说出bean工厂创建bean的三种方式?
1) 通过构造方法直接创建:
<bean id=”xxx” class=”bean class name”>
2)通过静态工厂方法创建:
<bean id=”xx” class=”factory class name” factory-method=”xx”>
3)通过非静态工厂方法创建:
<bean id=”factory” class=”factory class name”>
<bean id=”xx” factory-bean=” factory” factory-method=”xx”>
16 叙述StatefulBean和StatelessBean的区别?
Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的Stateful Session Bean 的实体。

Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫Stateless Session Bean 的时候,EJB Container 并不会找寻特定的Stateless Session Bean 的实体来执行这个method。

换言之,很可能数个使用者在执行某个Stateless Session Bean 的methods 时,会是同一个Bean 的Instance 在执行。

从内存方面来看,Stateful Session Bean 与Stateless Session Bean 比较,Stateful Session Bean 会消耗J2EE Server 较多的内存,然而Stateful Session Bean 的优势却在于他可以维持使用者的状态。

17 EJB与JAVA BEAN的区别?
Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。

但通常情况下,由于Java Bean是被容器所创建(如T omcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。

Java Bean 实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。

Enterprise Java Bean 相当于DCOM,即分布式组件。

它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。

但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB 客户从不直接访问真正的EJB组件,而是通过其容器访问。

EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。

客户通过容器来访问真正的EJB组件。

18 ajax有什么组成,各组件作用是什么?
由JavaScript、CSS、DOM、XMLHttpRequest组成。

JavaScript:将所有的东西绑定在一起。

CSS:级联样式表
DOM:进行动态显示及交互。

XMLHttpRequest:进行异步数据查询、检索。

19.请说出Hibernate中持久化对象的生命周期以及各种状态直接的区别,并描述相互之间是如何转换的。

Hibernate中持久化对象的生命周期有临时态、持久态和游离态三种。

处于临时态的对象主键值为空,并且未与session关联,数据未保存到数据库中
处于持久态的对象与session关联起来,持久化后对象中的数据被保存到数据库中,并且主键值按照.hbm.xml文件中配置的生成方式生成相应的值
处于游离态的对象脱离了session的管理,是持久化后的一种状态,主键值按照.hbm.xml文件中配置的生成方式生成相应的值
当new一个新的对象时,该对象处于临时态
当该对象被当作session的参数使用的时候,该对象处于持久态
事务提交,session关闭后,该对象处于游离态
20.spring和hibernate的事务管理方式有什么不同?
hibernate的事务管理方式仅仅就是托管给JDBC(如果用JTA那么就是JTA),而JDBC的一切行为包括。

相关文档
最新文档