一、单选题
1.下面关于数据持久化概念的描述,错误的是(D)
A、保存在内存中数据的状态是瞬时状态
B、持久状态的数据在关机后数据依然存在
C、数据可以由持久状态转换为瞬时状态
D、将数据转换为持久状态的机制称为数据持久化
2.Java Web应用中往往通过设置不同作用域的属性来达到通讯的目的。如果某个对象只在
同一请求中共享,通过调用哪个类(C)的setAttribute方法设置属性。
A、HttpServletRequest
B、ServletRequestListener
C、HttpSession
D、ServletContext
3.POJO的作用是(C)
A、普通的Java对象映射数据库元组
B、数据访问
C、对象的赋值
D、保存客户端对象
4.在三层结构中,数据访问层承担的责任是(B)
A、定义实体类
B、数据的增删改查操作
C、业务逻辑的描述
D、页面展示和控制转发
5.下列哪个接口用于获取关于数据库的信息(D)
A、Statement
B、PreparedStatement
C、Connection
D、DatabaseMetaData
6.JDBC包含多个类,其中Java.sql.ResultSet类属于(C)
A、JDBC控制类
B、JDBC类
C、JDBC接口类
D、JDBC异常类
7.以下关于SessionFactory的说法哪些正确(B)
A、对于每个数据库事务,应该创建一个SessionFactory对象。
B、一个SessionFactory对象对应一个数据库存储源。
C、SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,需要创建多个。
D、SessionFactory的load()方法用于加载持久化对象。
8.以下哪些不属于Session的方法(C)
A、load()
B、save()
C、open()
D、saveOrUpdate()
9.在持久化层,对象分为的状态不包括(B)
A、瞬时(Transient)
B、新建(New)
C、脱管(Detached)
D、持久(Persistent)
10.实现equals和hashCode最显而易见的作用是(A)
A、比较两个对象标识符的值
B、比较数据库的两条数据
C、比较两个组建是否部署在同一个应用服务器上
D、对象与字段的映射
11.在三层结构中,数据访问层承担的责任是(B)
A、定义实体类
B、数据的增删改查操作
C、业务逻辑的描述
D、页面展示和控制转发
12.Hibernate配置文件中,不包含下面的(A)
A、“对象-关系映射”信息
B、数据关联的配置
C、show_sql等参数的配置
D、数据库连接信息
13.下面创建Criteria对象的语句中正确的是(D)
A、Criteria c = query.createCriteria();
B、Criteria c = query.addCriteria();
C、Criteria c = session.createCriteria();
D、Criteria c = session.createCriteria(User.class);
14.以下关于SessionFactory的说法哪些正确(B)
A、对于每个数据库事务,应该创建一个SessionFactory对象。
B、一个SessionFactory对象对应一个数据库存储源。
C、SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,需要创建多个。
D、SessionFactory的load()方法用于加载持久化对象。
15.在持久化层,对象分为的状态不包括(B)
A、瞬时(Transient)
B、新建(New)
C、脱管(Detached)
D、持久(Persistent)
16.POJO的作用是(C)
A、普通的Java对象映射数据库元组
B、数据访问
C、对象的赋值
D、保存客户端对象
17.资源文件的后缀名为(D)
A、txt
B、doc
C、property
D、properties
18.在Hibernate中,关于数据库的方言,下面哪个说法是正确的(D)
A、可以不写数据库方言
B、数据库方言没有作用,可以随便写
C、有通用的数据库方言可以使用
D、数据方言对应于每个数据库,主要用于产生SQL语句
19.以下哪项不是常见的三层(D)
A、应用层
B、业务逻辑层
C、数据访问层
D、通讯层
20.下面关于数据持久化概念的描述,错误的是(D)
A、保存在内存中数据的状态是瞬时状态
B、持久状态的数据在关机后数据依然存在
C、数据可以由持久状态转换为瞬时状态
D、将数据转换为持久状态的机制称为数据持久化
21. Java Web应用中往往通过设置不同作用域的属性来达到通讯的目的。如果某个对象只在同一请求中共享,通过调用哪个类的setAttribute方法设置属性( C )
A、HttpServletRequest
B、ServletRequestListener
C、HttpSession
D、ServletContext
22. executeUpdate返回的类型是(A )
A、int
B、ResultSet
C、boolean
D、受影响的记录数量
23.Oracle数据库的JDBC驱动程序类名及完整包路径为(D)
A、jdbc.driver.oracle.OracleDriver
B、jdbc.oracle.driver.OracleDriver
C、driver.oracle.jdbc.OracleDriver
D、oracle.jdbc.driver.OracleDriver
24. JSP中可使用一些隐含对象,通过什么可以访问浏览器输入的参数(A)
A、param
B、requestScope
C、sessionScope
D、applicationScope
二、填空题
1.Struts 2框架由__WebWork_________和____XWork_______框架发展而来。
2.Struts 2以__过滤器_________为核心,采用____拦截器_______的机制来处理用户的请求。
3.构建Struts 2应用的最基础的几个类库是_____struts2-core______、____xwork_______、____freemaker_______、__ognl_________以及____commons-logging_______。
4.Struts 2中的控制器类是一个普通的____POJO_______。
5.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为____<%@ uri=”/struts-tags” prefix=”s”%>_______。
6.在Struts 2表单标签库中,表单标签为____
9. Struts 2以___FilterDispatcher_______为核心控制器,它的初始化方法为__init(FilterCongiffilterConfig)________。
10.Hibernate配置数据库连接的四种属性名是connection.driver_class、https://www.docsj.com/doc/b911142202.html,ername、connection.password、connection.url。
11. 在Hibernate XML影射文件中描述主键生成机制,其属性描述了主键的生成策略,至少写出三种策略名identity、native、increment。
12.基于Hibernate用标注(annotations)描述映射关系,映射实体类中表示主键的属性的标注是___@Id________ ;映射实体类中普通属性的标注是___@Column________;实体属性对应的列用标注____@Entity_______。
13.Hibernate的会话接口中声明了持久化的操作,删除一个实体的方法是__delete(obj)_________,合并一个实体的方法是____merge_______,获得事务处理接口的方法是_getTransaction()__________。
14. Hibernate的会话接口同时又是一个工厂类型:创建一个HQL查询接口的方法是____createQuery_______,创建基于公式(标准)接口的方法是__createCriteria_________。
15. 对象关系映射(ORM)的基本原则是:类型(class)映射___表________,属性(property)映射____列_______,类型的实例或对象(instance | object)映射___一条记录________。
16. Hibernate应用缺省的XML格式的配置文件名是___hibernate.cfg.xml________, 放置在__classpath_________下;配置数据库方言的属性名是____dialect_______。
17. 在Hibernate中级联操作的属性值至少写出三个_______save-update____ 、_____none______、_____delete______。
18 基于Hibernate用标注(annotations)描述映射关系,实体类型用标注__@Entity_________ ;实体对应的表用标注___@Table________。
19 Hibernate的会话接口是__Session_________,它由接口___SessionFactory________创建;Hibernate处理事务的接口是___Transaction________;封装HQL的接口是___Query________ 。
三、简述题
1.谈谈你对MVC的理解?
MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。
MVC中的模型、视图、控制器它们分别担负着不同的任务。
视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。
模型: 模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性
控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结果。
MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。
2.项目中为什么使用SSH?
使用Struts是因为struts是基于MVC模式的,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts有着丰富的taglib,如能灵活运用,则能大大提高开发效率。
使用Hibernate:因为hibernate为Java应用提供了一个易用的、高效率的对象关系映射框架。hibernate是个轻量级的持久性框架,功能丰富。
使用Spring:因为spring基于IoC(Inversion of Control,反向控制)和AOP构架多层j2ee 系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;采用IoC使得可以很容易的实现bean
的装配,提供了简洁的AOP并据此实现事务管理(TranscationManagment),等等。
3.Spring在项目中如何充当粘合剂?
在项目中利用spring的IOC(控制反转或依赖注入),明确地定义组件接口(如UserDAO),开发者可以独立开发各个组件, 然后根据组件间的依赖关系组装(UserAction依赖于UserBiz,UserBiz依赖于UserDAO)运行,很好的把Struts(Action)和hibernate(DAO的实现)结合起来了。spring的事务管理把hibernate对数据库的操作进行了事务配置。
4.项目中如何体现Spring中的切面编程,举例说明?
面向切面编程:主要是横切一个关注点,将一个关注点模块化成一个切面。在切面上声明一个通知(Advice)和切入点(Pointcut); 通知: 是指在切面的某个特定的连接点(代表一个方法的执行。通过声明一个https://www.docsj.com/doc/b911142202.html,ng.JoinPoint类型的参数可以使通知(Advice)的主体部分获得连接点信息。)上执行的动作。通知中定义了要插入的方法。切入点:切入点的内容是一个表达式,以描述需要在哪些对象的哪些方法上插入通知中定义的方法。
项目中用到的Spring中的切面编程最多的地方:声明式事务管理。
a、定义一个事务管理器;
b、配置事务特性(相当于声明通知。一般在业务层的类的一些方法上定义事务);
c、配置哪些类的哪些方法需要配置事务(相当于切入点,一般是业务类的方法上)。
5.Action是单实例还是多实例,为什么?
Action是单实例的。当多个用户访问一个请求的时候,服务器内存中只有一个与之对应的Action类对象。因为当服务器第一次加载struts的配置文件的时候,创建了一个Action后,每发送一个请求,服务器都会先去检索相应的范围内(request,session)是否存在这样一个action 实例,如果存在,则使用这个实例,如果不存在,则创建一个Action实例。
6.Hibernate与jdbc的联系?
Hibernate是jdbc的轻量级封装,包括jdbc的与数据库的连接(用hibernate.property的配置文件实现当然本质是封装了jdbc的forname),和查询,删除等代码,都用面向对象的思想用代码联系起来,hibernate通过hbm配置文件把po类的字段和数据库的字段关联起来比如数据库的id,在po类中就是pravite Long id; public Long getId() ;public setId(Long id);然后hql语句也是面向对象的,它的查询语句不是查询数据库而是查询类的,这些实现的魔法就是xml文件,其实hibernate=封装的jdbc+xml文件。
7.Spring的事务如何配置?
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
8.Hibernate与spring的联系?
Hibernate中的一些对象可以给Spring来管理,让Spring容器来创建hibernate中一些对象实例化。例如:SessionFactory,HibernateTemplate等。
Hibernate本来是对数据库的一些操作,放在DAO层,而Spring给业务层的方法定义了事务,业务层调用DAO层的方法,很好的将Hibernate的操作也加入到事务中来了。
9.在Struts框架下,在web.xml文件中如何配置ActionSetvlet?
1)spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2)DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3)DispatcherServlet请请求提交到目标Controller
4)Controller进行业务逻辑处理后,会返回一个ModelAndView
5)Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6)视图对象负责渲染返回给客户端。