J2EE简答题及答案.doc
文本预览下载声明
1、简述J2EE的四层模型。
运行在客户端机器上的客户层组件
运行在J2EE服务器上的Web层组件
运行在J2EE服务器上的业务逻辑层组件
运行在EIS服务器上的企业信息系统层软件
2、什么是对象持久化?
即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。
3、简述一下ORMAPPING,为什么我们使用它?
ORM(Object Relational Mapping)是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据中。本质上就是将数据从一种形式转换到另外一种形式。
原因:用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射以及对象的持久化问题。
4、简述一下如何使用Hibernate实现对象持久化的过程(可画图或用伪码描述)
STEP 1:创建Configuration对象。在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析
STEP 2: 创建SessionFactory对象。通过创建好的Configuration对象可以创建一个sessionFactory对象的实例,同时是生成Session对象实例的工厂,他在整个应用中应该是唯一的。
STEP 3:创建Session对象。?Session对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比JDBC中的Connection对象丰富很多。
STEP 4:开始一个事务。在Java中定义一个事务操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤
STEP 5:进行持久化操作。在这个步骤中可以读取或者保存Java对象。
STEP 6:结束事务。在操作完成之后还要进行显式的结束事务的操作。
STEP 7:关闭Session。类似于释放数据库的连接。
5、为什么要实现序列化?
1、序列化以某种存储形式使自定义对象持久化
2、序列化将对象转换为可传输方式从一个地方传递到另一个地方
3、序列化使程序更具维护性
6、比较一下sessionFactory中的opensession()和getcurrentsession()方法。
1、getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
2 、getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭
7、比较一下session中的load()和get()方法,以及如何保证每次都是从数据库读取而不是在缓存中读?
load()和get()方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。
其区别在于:如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException。
Load方法可返回实体的代理类实例,而get方法永远直接返回实体类。
load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。
8、Action接受用户参数输入,主要有哪几种方式?我们常用的是哪一种?
1.Action属性接收参数;
2.Domain modal(域模型)接收参数;
3.Modal driven接收参数。
常用第一种跟第二种
9、在struts中实现一个action有哪几种方式?最常用的是哪种?
1.定义一个普通的类,类中只要有一个public String execute()方法且返回一个字符串即可。
2.定义一个类,实现Action接口,xwork2.Action这个包的
3继承xwork2.ActionSupport这个类。
最常用的是第三种
10、在struts.xml中Result的type常用的有四种类型
1)dispatcher 2)redirect 3)chain 4)redirectAction
哪些是服务器跳转?哪些是客户端跳转?
dispatcher和chain是服务器端跳转,所以客户端只发起一次请求
redirect和redirectAction是客户端跳转,所以客户端发起两次请求。
11、j2ee是技术还是平台还是框架?它主要包含哪些技术,列举并简单描述2到3个技术?
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。J2EE也是一个框架,包括JDBC、JNDI
显示全部