J2EE企业级架构试题+答案

更新时间:2024-01-06 07:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、选择题

1、以下哪些框架属于ORMapping框架技术(C)

(常见的ORM框架包括Hibernate、iBATIS、TopLink、Castor JDO、Apache OJB等)

a)Struts b)Spring c)Hibernate d)MyBATIS 2、下面针对Hibernate框架描述错误的是(D)

a)Hibernate框架是一个ORMapping框架,可以完成对象与表之间的映射关系 b)Hibernate的映射关系只能由XML来完成

c)Hibernate框架中用来作为数据库连接操作的核心对象是Session

d)Hibernate中使用HQL语句可以完成针对数据的添加,修改,删除和查询功能 3、以下针对Struts2框架描述错误的是(C)

a)Struts2框架中接收参数是在Action类中完成的。 b)编写Struts2的Action类必须继承ActionSupport类 c)Struts2的分发操作只能使用!来完成

d)Struts2框架存在重大漏洞,在2.3以后的版本中才被修复 4、以下框架或技术中与Struts2功能类似的框架是(D)

a)Hibernate b)JDBC c)JSP/Servlet d)Spring MVC 5、以下针对Spring框架描述正确的是(D)

a)Spring框架是一个单独使用的框架,不需要结合其他框架技术来应用 b)SpringMVC是前端框架,功能类似Struts框架

c)SpringMVC需要编写xml配置文件来对Action类进行配置,自己编写的Action类必须继承

ActionSupport类

d)Spring框架结合Hibernate开发时,需要保留hibernate.cfg.xml配置文件,并在里面配置数据库

连接相关的配置,由Hibernate来管理连接的关闭和事务处理。

6、以下关于IoC理解正确的是(C)

a)控制反转 b)一定要用接口 c)通过来设置注入 d)通过来设置注入 7、对Hibernate的支持主要用到了Spring的哪个模块?(C)

a)Spring Core b)Spring IoC c)Spring ORMapping d)Spring Web MVC 8、以下哪个不属于Hibernate中Session的方法?(D)

a)save() b)delete() c)update() d)open()

二、简答题

1、列出Hibernate中常用的主键生成方式,并说明他们的作用(至少4种) 1)assigned:通过程序添加。

2)sequence:通过Oracle的序列生成主键值

3)native:通过数据库表中自带的关键字生成主键值,例如:MySQL,SQLServer,DB2,HSQL等 4)increment:自增长,通过程序实现自增长功能。 5)UUID:生成一个32的位随机值作为主键。

2、说明Hibernate中对象的三种状态以及三种状态之间的转换方式

在Hibernate的API里,Session对象描述中存在pojo操作的三种状态的概念,这三种状态分别是:

1)瞬时态:对象在数据库中没有对应的数据

2)持久态:数据库里有对应的数据,同时被当前存在的Session对象操作过。

3)游历态:数据库里有对应的数据,但Session对象不存在了。

三种状态之间通过Session的方法可以转化,具体的转换方法: 1)瞬时态 ? 持久态:save(),saveOrUpdate() 2)持久态 ? 瞬时态:delete() 3)持久态 ? 游离态:close()

4)游离态 ? 持久态:update(),saveOrUpdate()

3、Hibernate中的三种查询方式分别是什么

Hibernate提供了三种查询方式:

1)Session查询:提供了按主键查询的方法,get和load方法 2)Query查询:使用HQL语句完成查询,还支持SQL语句的使用。 3)Criteria查询:通过一些其他类提供的方法,动态拼写出查询条件。

4、提高Hibernate性能的方法有哪些?

Hibernate提高性能的方法有哪些? 1)缓存 2)懒汉式加载 3)SQL语句查询 4)Fetch=“select” 5)

5、Spring中的IoC和AOP分别指的是什么?

Spring的核心框架主要包含两个技术,分别用来处理工厂类,以及事务处理和连接管理的。 两大核心概念

1)IoC:控制反转,在现在的开发中,如果想建立对象并设置属性,是需要先new对象,再通过setter或构造方法设置属性。而使用Spring的IoC后,则是先通过配置声明属性的值或关系,再通过Spring框架建立对象,建立好的对象中就自动设置好了配置的属性。此功能可以替代工厂类。在IoC 中还提出了DI(依赖注入),表示将一个Spring中配置好的类,设置到另一个Spring配置的类中,作为属性使用。

2)AOP:面向切面编程,特点是在不修改原有代码的基础上,为项目加入一个新的功能。Filter过滤器就是一个典型的AOP设计。Spring中则是使用Interceptor拦截器来实现动态代理设计的功能。在这里主要实现的就是连接的关闭,以及事务的提交和回滚操作,使用这个AOP的功能后,Service的实现类中就不再需要自己编写try?catch?finallly等操作,由Spring自动完成。

6、Struts2框架执行的工作原理是什么?(执行流程) 基本简要流程如下:

1、客户端浏览器发出HTTP请求。

2、根据web.xml配置,该请求被FilterDispatcher接收。

3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。 4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。 6、返回HTTP响应到客户端浏览器。

Struts工作机制:

Struts的工作流程:

在web应用启动时就会加载初始化ActionServlet,ActionServlet从 struts-config.xml文件中读取配置信息,把它们存放到各种配置对象 当ActionServlet接收到一个客户请求时,将执行如下流程.

-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息; -(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到

ActionForm对象中;

-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法; -(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的

ActuibErrors对象, 就表示表单验证成功;

-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相

应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;

-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给

ActionForward对象指向的JSP组件;

-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;

三、项目架构

如果你是一个项目组的负责人,现在需要进行一个Struts2 + Spring + Hibernate联合开发的项目,并描述你要完成的工作。(尽可能详细) 四、编程题

1、当前项目中已经针对了新闻(News)和新闻类型(NewsType)进行了一对多的关系映射,请编写代码,完成根据新闻类型编号,查询所有该类型下新闻的DAO方法 类结构: News中的属性:

private Integer id; 新闻编号 private String title; 新闻标题 private String content; 新闻内容

private NewsType newsType; 所属新闻类型 NewsType中的属性

private Integer tid; 类型编号 private String tname; 类型名称 private Set news; 该类型下的所有新闻 DAO方法,请补充完整: public List findByTid(int tid) { List all = null;

Session session = HibernateSessionFactory.getSession(); // 将下面的代码补充完整

return all; }

2、编写一个Spring的配置,描述下面的类

public class NewsDAOImpl extends HibernateDaoSupport implements INewsDAO{ // 代码略

}

本文来源:https://www.bwwdw.com/article/xppx.html

Top