欢迎来到天天文库
浏览记录
ID:39365665
大小:178.50 KB
页数:9页
时间:2019-07-01
《javaWEB开发ssh面试题总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JavaWEB开发框架面试题tangbi整理题目1:Hibernate工作原理及为什么要用?原理:hibernate,通过对jdbc进行封装,对java类和关系数据库进行mapping,实现了对关系数据库的面向对象方式的操作,改变了传统的jdbc+sql操作数据的方式,从而使开发人员可以话更多精力进行对象方面的开发1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory为
2、什么要用:1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作3.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。题目2:什么是Hibernate延迟加载?延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟
3、加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。题目3:Hibernate中类之间的关联关系有几种?(如:一对多、多对多的关系)many-to-one、one-to-many、many-to-many、one-to-one题目4:说下Hibernate的缓存机制一、hibernate一级缓存(1)hibernate支持两个级别的缓存,默认只支持一级缓存;(2)每个Session内部自带一个一级缓存;(3)某个Session被关闭时,其对应的一级缓存自动清除;二、hibernate二级缓存(1)二级缓存
4、独立于session,默认不开启;题目5:Hibernate的查询方式本地SQL查询、Criteria、Hql题目6:如何优化Hibernate?1.使用双向一对多关联,不使用单向一对多2.不用一对一,用多对一取代3.配置对象缓存,不使用集合缓存题目7:Struts工作机制?为什么要使用Struts?工作机制:Struts的工作流程:在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象当ActionServlet接收到一
5、个客户请求时,将执行如下流程.-(1)检索和用户请求匹配的ActionMapping实例,如果不存在就返回请求路径无效信息;-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;-(5
6、)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;为什么要用:1.JSP、Servlet、JavaBean技术的出现给我们构建强
7、大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱。2.基于Struts开发的应用:不用再考虑公共问题专心在业务实现上结构统一,易于学习、维护新手也可写出好程序题目10:为什么要用spring?Spring是一个轻量级的IOC和AOP框架。IOC(控制反转)意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转AOP(面向切面),它将那些影响多个类的行为封装到可重用的模块中,面向对象是把问题从同类事物中抽象出来,面向切面是把问题从不同类问题中抽象出来。1.hibernate中get()与load()区别
8、 请注意如果没有匹配的数据库记录,load()方法可能抛出无法恢复的异常(unrecoverableexception)。如果类的映射使用了代理(proxy),load()方法会返回一个未初始化的代理,直到你调用该代理的某方法时才会去
此文档下载收益归作者所有