Java SSH框架笔试试题及详细答案_第1页
Java SSH框架笔试试题及详细答案_第2页
Java SSH框架笔试试题及详细答案_第3页
Java SSH框架笔试试题及详细答案_第4页
Java SSH框架笔试试题及详细答案_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaSSH框架笔试试题及详细答案考试说明:满分100分,考试时长90分钟,题型包含选择题、填空题、简答题、编程题,考察Struts2、Spring、Hibernate核心知识点及整合实操能力一、单项选择题(共15题,每题2分,共30分)1、SSH框架中,负责业务逻辑层管理、事务控制的核心框架是()A、Struts2B、SpringC、HibernateD、MyBatis2、Struts2的核心控制器是()A、ActionServletB、DispatcherServletC、FilterDispatcherD、ActionContext3、Hibernate中,以下不属于持久化对象状态的是()A、瞬时态B、持久态C、托管态D、游离态4、Spring容器初始化的默认配置文件名称是()A、spring.xmlB、applicationContext.xmlC、beans.xmlD、context.xml5、Struts2中,默认的配置文件是()A、struts.xmlB、struts2.xmlC、config.xmlD、action.xml6、Hibernate的一级缓存的作用域是()A、SessionFactoryB、SessionC、全局D、应用服务器7、Spring中依赖注入的核心作用是()A、实现页面跳转B、解耦组件依赖C、操作数据库D、管理请求参数8、Struts2Action的默认实例化方式是()A、单例B、多例C、静态实例D、懒加载实例9、Hibernate中save()和persist()方法的主要区别是()A、save支持瞬时态对象,persist不支持B、save会立即返回主键,persist不一定C、persist会更新数据,save只新增D、无本质区别10、SpringAOP中,在方法执行前后都执行的通知是()A、前置通知B、后置通知C、环绕通知D、异常通知11、SSH整合中,Spring通过()管理Hibernate的SessionA、SessionFactoryB、HibernateTemplateC、TransactionManagerD、DaoSupport12、Struts2中获取请求参数,最推荐的方式是()A、request.getParameter()B、属性驱动C、模型驱动D、ActionContext获取13、Hibernate二级缓存的默认状态是()A、开启B、关闭C、部分开启D、按需开启14、Spring中Bean的默认作用域是()A、prototypeB、singletonC、requestD、session15、Struts2拦截器的执行顺序说法正确的是()A、先配置的后执行B、先配置的先执行C、随机执行D、仅执行默认拦截器二、填空题(共10空,每空2分,共20分)1、SSH三大框架分别是________、________、________。2、Spring的核心两大特性是________和________。3、Hibernate中________缓存是线程私有的,________缓存是线程共享的。4、Struts2的架构基于________模式,核心是拦截器机制。5、Spring事务管理中,________传播级别是默认级别,支持当前事务。三、简答题(共4题,每题8分,共32分)1、简述SSH三大框架各自的职责与分层对应关系。2、简述Hibernate中瞬时态、持久态、游离态三种对象状态的区别及转换方式。3、简述Spring依赖注入的三种实现方式及各自优缺点。4、简述Struts2的执行流程(从请求发起至响应结束)。四、编程实操题(共1题,18分)基于SSH框架,实现用户新增功能,要求完成:1、User实体类编写(包含id、username、password、age属性);2、Hibernate实体映射配置;3、DAO层接口及实现类;4、Service层接口及实现类(添加事务控制);5、Struts2Action处理请求,完成数据保存与页面跳转。参考答案及详细解析一、单项选择题答案及解析1、B解析:Spring是容器框架,核心负责组件管理、依赖注入、事务控制,统筹整个SSH项目;Struts2负责表现层,Hibernate负责持久层。2、C解析:Struts2核心控制器为FilterDispatcher(过滤器),拦截所有用户请求;ActionServlet是Struts1核心控制器,DispatcherServlet是SpringMVC核心控制器。3、C解析:Hibernate对象三种状态:瞬时态、持久态、游离态(托管态),无托管态单独分类。4、B解析:Spring默认加载类路径下的applicationContext.xml配置文件。5、A解析:Struts2固定默认配置文件为struts.xml,放置在src根目录下。6、B解析:一级缓存绑定Session对象,单个会话有效,会话关闭缓存清空。7、B解析:依赖注入(DI)核心是解除组件之间的硬编码依赖,实现组件解耦,便于维护和扩展。8、B解析:Struts2Action为多例对象,每次请求都会创建新的Action实例,避免线程安全问题。9、B解析:save()方法无论事务是否提交,都会立即返回实体主键;persist()仅在事务提交后才生成主键,适合持久化数据,更规范。10、C解析:环绕通知可包裹目标方法,在方法执行前、执行后、异常时均可自定义逻辑,功能最全。11、B解析:SSH整合中,通过HibernateTemplate简化Session操作,Spring统一管理Session生命周期。12、C解析:模型驱动可以直接封装实体对象,代码简洁、参数封装规范,是Struts2推荐的参数接收方式。13、B解析:Hibernate二级缓存默认关闭,需要手动配置开启,适用于查询频繁、修改少的数据。14、B解析:SpringBean默认单例(singleton),整个容器中仅创建一个实例。15、B解析:Struts2拦截器遵循先进先出、后进后出原则,配置顺序即为执行顺序。二、填空题答案1、Struts2、Spring、Hibernate2、依赖注入(DI)、面向切面编程(AOP)3、一级、二级4、MVC5、REQUIRED三、简答题详细答案1、SSH三大框架职责与分层对应(1)Struts2:对应表现层(Web层),核心职责是接收前端请求、参数封装、调用业务层、控制页面跳转,基于拦截器处理请求校验、数据封装等通用逻辑;(2)Spring:对应业务层(Service层),作为项目核心容器,负责管理所有组件(Action、Service、DAO)的创建与依赖注入,统一管理事务、日志、权限等切面逻辑,实现组件解耦;(3)Hibernate:对应持久层(DAO层),是ORM持久化框架,封装JDBC操作,实现对象与数据库表的映射,简化数据库增删改查操作,屏蔽底层SQL细节。2、Hibernate对象三种状态区别及转换(1)瞬时态(Transient):对象无主键值、未被Session管理、数据库无对应记录,new关键字创建的对象默认是瞬时态;(2)持久态(Persistent):对象有主键值、被当前Session管理、数据库存在对应记录,Session关闭前对象属性修改会自动同步到数据库;(3)游离态(Detached):对象有主键值、数据库有对应记录,但不再被Session管理,属性修改不会自动更新数据库。状态转换:瞬时态→持久态(save/persist);持久态→游离态(close/evict/clear);游离态→持久态(update/saveOrUpdate);持久态/游离态→瞬时态(delete)。3、Spring依赖注入三种方式及优缺点(1)构造器注入:通过类构造方法注入依赖。优点:保证对象初始化完成后依赖齐全、线程安全;缺点:多依赖时构造方法臃肿。(2)setter方法注入:通过set方法注入依赖。优点:适合多依赖、可选依赖,配置灵活;缺点:对象初始化可能存在依赖缺失,无法保证依赖完整性。(3)注解注入(Autowired/Resource):通过注解自动装配依赖。优点:代码简洁、配置量少;缺点:耦合度略高于XML配置,依赖关系不直观。4、Struts2完整执行流程1、客户端浏览器发起HTTP请求,请求被Struts2核心过滤器FilterDispatcher拦截;2、过滤器加载默认拦截器栈,依次执行参数封装、请求校验、编码设置等拦截器;3、根据struts.xml配置文件,匹配请求路径对应的Action;4、创建Action实例,执行Action中的业务处理方法(默认execute());5、Action执行完毕返回逻辑视图码,框架根据配置匹配物理视图(JSP/跳转地址);6、拦截器后置逻辑执行完毕,服务器响应结果返回浏览器,请求结束。四、编程实操题完整答案1、User实体类java

publicclassUser{

privateIntegerid;

privateStringusername;

privateStringpassword;

privateIntegerage;

//无参构造(Hibernate必需)

publicUser(){}

//getter、setter方法

publicIntegergetId(){returnid;}

publicvoidsetId(Integerid){this.id=id;}

publicStringgetUsername(){returnusername;}

publicvoidsetUsername(Stringusername){this.username=username;}

publicStringgetPassword(){returnpassword;}

publicvoidsetPassword(Stringpassword){this.password=password;}

publicIntegergetAge(){returnage;}

publicvoidsetAge(Integerage){this.age=age;}

}2、User.hbm.xml映射文件xml

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEhibernate-mappingPUBLIC

"-//Hibernate/HibernateMappingDTD3.0//EN"

"/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mappingpackage="com.entity">

<classname="User"table="tb_user">

<idname="id"column="id">

<generatorclass="native"/>

</id>

<propertyname="username"column="username"not-null="true"/>

<propertyname="password"column="password"not-null="true"/>

<propertyname="age"column="age"/>

</class>

</hibernate-mapping>3、DAO层接口与实现类DAO接口:UserDaojava

publicinterfaceUserDao{

//新增用户

voidsaveUser(Useruser);

}DAO实现类:UserDaoImpl(继承HibernateDaoSupport)java

importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;

importorg.springframework.stereotype.Repository;

@Repository

publicclassUserDaoImplextendsHibernateDaoSupportimplementsUserDao{

@Override

publicvoidsaveUser(Useruser){

this.getHibernateTemplate().save(user);

}

}4、Service层接口与实现类(事务控制)Service接口:UserServicejava

publicinterfaceUserService{

voidaddUser(Useruser);

}Service实现类:UserServiceImpljava

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.stereotype.Service;

importorg.springframework.transaction.annotation.Transactional;

@Service

publicclassUserServiceImplimplementsUserService{

@Autowired

privateUserDaouserDao;

@Override

@Transactional//开启事务

publicvoidaddUser(Useruser){

userDao.saveUser(user);

}

}5、Struts2Action类java

importcom.entity.User;

importcom.service.UserService;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.stereotype.Controller;

importcom.opensymphony.xwork2.ActionSupport;

@Controller

publicclassUserActionextendsActionSupport{

//模型驱动封装参数

privateUseruser=newUser();

@Autowired

privateUserServiceuserService;

//新增用户方法

publicStringaddUser(){

us

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论