2023年Java框架面试题总结.pdf
《2023年Java框架面试题总结.pdf》由会员分享,可在线阅读,更多相关《2023年Java框架面试题总结.pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录 Struts篇.错误!未定义书签。1.Struts的工作流程.错误!未定义书签。2.Struts的工作流程分解.错误!未定义书签。3.Struts控制器组件的组成.和控制器的重要功能.错误!未定义书签。4.S tru ts中的几个关键对象的作用(说说几个关键对象的作用).错误!未定义书签。5.S tru ts工作流程图(用例图).错误!未定义书签。6.说说MVC设计模式和它的优点.错误!未定义书签。7.说说s tru ts是如何实现MVC的?.错误!未定义书签。8.S tru ts优点与缺陷.错误!未定义书签。9.s tru s t的A ction是不是线程安全的?假如不是 有什么方式可
2、以保证A ction的线程安.错误!未定义书签。10.T ile s框架是什么?.错误!未定义书签。11.stru t si.x和struts 2的区别.错误!未定义书签。12.Struts的常用标签库及用法.错误!未定义书签。Struts html标签库.错误!未定义书签。Struts bean标签库.错误!未定义书签。Struts Logic标签库.错误!未定义书签。13、JSP中动态INCLUDE与静态INCLUDE的区别?.错误!未定义书签。Ajax篇.错误!未定义书签。1.ajax是什么.错误!未定义书签。2.ajax实现的原理.错误!未定义书签。3.ajax框架的基本流程.错误!未
3、定义书签。4.dwr的实现原理.错误!未定义书签。5.ajax开发环节.错误!未定义书签。Spring篇.错误!未定义书签。基础知识.错误!未定义书签。1.对 IOC的理解.错误!未定义书签。2.依赖注入的三种实现形式?.错误!未定义书签。3.S etter注入和构造方法注入比较.错误!未定义书签。4.对 AOP的理解,以及AOP在项目中是如何使用的?.错误!未定义书签。5.AOP的概念和术语.错误!未定义书签。6.Spring中有五中不同的告知:.错误!未定义书签。7.Spring bean的生命周期:.错误!未定义书签。8.Bean的作用域.错误!未定义书签。9.Spring自动代理.错误
4、!未定义书签。10.Spring事务特点.错误!未定义书签。11.谈谈Spring事务的理解.错误!未定义书签。12.编程式事务和声明式事务如何选择?.错误!未定义书签。二.Spring应用.错误!未定义书签。13.spring中的BeanFactory与 ApplicationContext的作用和区别?.错误!未定义书签。1 4.S p r i n g 里面a p p l i c a t i o n C o n t e x t.x m l 文献能不能改成其他文献名?.错误!未定义书签。1 5.s p r i n g 中c o m m o n s-l o g g i n g,j a r 的作
5、用.错误!未定义书签。1 6.s p r i n g 中读取x m l 配置文献、获取b e a n 的几种方式.错误!未定义书签。1 7.S p r i n g 启动参数 c o n t e x t C o n f i g L o c a t i o n 和 C o n t e x t L o a d e r L i s t e n e r 理解.错误!未定义书签。1 8.S p r i n g 框架在w e b 容器是如何启动的?.错误!未定义书签。H i b e r n a t e 篇.错误!未定义书签。1.Hibernate优缺陷?.错误!未定义书签。2.Hibernate工作原理及为
6、什么要用?.错误!未定义书签。3.Hibernate是如何延迟加载?.错误!未定义书签。4.Hibernate中如何实现类之间的关系?(如:一对多、多对多的关系)错误!未定义书签。5.说下Hibernate的缓存机制.错误!未定义书签。6.什么样的数据适合放到二级缓存中?.错误!未定义书签。7.Hibernate的查询方式.错误!未定义书签。8.如何优化Hibernate?.错误!未定义书签。9.说说Hibernate中的update。和 saveOrUpdate()的区别.错误!未定义书签。10.说说Hibernate中的session的 load。和 get()的区别。.错误!未定义书签。
7、11.谈谈Hibernate中inverse的作用.错误!未定义书签。12.hibernate中对象的三种状态.错误!未定义书签。13.在数据库中条件查询速度很慢的时候,如何优化?.错误!未定义书签。1 4.在 hibernate中进行多表查询,每个表中各取几个字段,也就是说查询出来的结果集并没有一个实体类与之相应,如何解决这个问题?.错误!未定义书签。i B a t i s篇.错误!未定义书签。1.i B a t i s的优缺陷?.错误!未定义书签。2.i B a t i s与H i b e r n a t e区别(比较)?.错误!未定义书签。3.i B a t i s与传统J D B C比
8、较.错误!未定义书签。4.H i b e r n a t e和i B a t i s的映射关系.错误!未定义书签。5.i B a t i s动态标签有哪些?.错误!未定义书签。6.i B a t i s中使用l i k e ,f i l e d N a m e#%时,有什么问题?.错误!未定义书签。7.i B a t i s中#与$的区别?.错误!未定义书签。框架问题.错误!未定义书签。1.SSH框架的配置文献加载顺序.错误!未定义书签。2.Sp r i n g框架在w e b容器是如何启动的?.错误!未定义书签。3.W e b s e r v i c e +s p r i n g 2.0 +
9、i B a t i s项目的加载顺序.错误!未定义书签。4.a p p f u s e框架机制.错误!未定义书签。5.i B a t i s与H i b e r n a t e如何选择?.错误!未定义书签。参考:i B a t i s与H i b e r n a t e比较。.错误!未定义书签。Struts 篇1.Struts的工作流程当客户端向浏览器发送HTTP请求时,所有浏览器请求都被提交给ActionServlet解决。假如用户提交表单,则会将表单中的数据放入到Action Form 中。ActionServlet根据struts_config.xml文献中预先配置好的设立选择将请求转发
10、到哪个action对象,action对象从actionForm对象中获取数据,但后调用业务逻辑组件,完毕业务功能。2.Struts的工作流程分解W eb应用假如采用struts框架,在 w eb 应用启动时就会加载并初始化ActionServlet,ActionServlet从 slruts_config.xml文献中读取配置信息,基本执行环节如下:(1)所有浏览器请求都被提交给ActionServlet解决(2)ActionServlet根据struts_config.xml文献中预先配置好的设立,选择应当将请求转发到哪个action对象.(3)当用户提交表单时,一个配置好的ActionFo
11、rm对象将被创建,并被填入表单中的相称数据.(4)Action对象从ActionForm对象中获取数据.(5)Action对象调用业务逻辑组件完毕业务功能.3.Struts控制器组件的组成.和控制器的重要功能Struts控制器组件重要涉及:ActionServlet组件:充当Struts框架的中央控制器.RequestRrocessor组件:充当每个子应用模块的请求解决器.Action组件:负责解决一项具体的业务.Struts控制器组件重要完毕以下任务:接受用户请求.根据用户请求,调用合适的模型组件来执行相应的业务逻辑.获取业务逻辑执行结果.根据当前状态以及业务逻辑执行结果,选择合适的视图组件
12、返回给用户.4.S tru ts中的几个关键对象的作用(说说几个关键对象的作用)ActionServlet类控制导航流.ActionServlet根据URI来决定哪个Action类被用于解决请求,Action可以校验输入,并访问业务层以便从数据库检索信息.Action需要知道页面提交了哪些内容,所以由ActionServlet根据请求URI来决定将请求参数绑定到哪个ActionForm中并传入Action.Action 在完毕业务逻辑后,返回一个 ActionForward 对象,ActionServlet 根据 ActionForward对象中的途径来调用页面完毕响应.Struts将这些信息
13、绑定在一个ActionMapping对象中,一个 ActionMapping相应一个请求URI,当请求途径到达的时候,ActionServlet就会查询ActionMapping对象,ActionMapping对象将告诉ActionServlet哪个Action类会被调用,哪个ActionForm类被用于传递页面数据以及哪些 ActionForward将被用于转向.有关 Action,ActionForm,ActionForward 等信息,通过 struts-config.xml 配置文献来定义.5.S tru ts工作流程图(用例图)注:Servlet容器在启动时,或者用户初次请求Acti
14、onServlet时加载ActionServlet类.6.说说MVC设计模式和它的优点MVC是一种设计模式,.它强制性的把应用程序的输入,解决和输出分开.MVC把应用程序提成三个核心模块:模型(Model),视图(View)和控制器(Controller).他们分别解决不同的任务.视图是用户看到并与之交互的界面.视图向用户显示相关的数据,并能接受用户的输入数据,但是它不进行任何实际的业务解决.模型是应用程序的主体部分.模型表达业务数据和业务逻辑.一个模型能为多个视图提供数据.由于同一个模型可以被多个视图重用,所以提高了应用的重用性.控制器接受用户的输入并调用模型和视图去完毕任务.MVC的解决逻
15、辑如下:一方面控制器接受用户请求,并决定应当调用哪个模型来进行解决,然后模型根据用户请求进行相应的业务逻辑解决,并返回数据.最后控制器调用相应的视图来格式化模型返回的诗句,并通过视图呈现给用户.MVC的优点:(1)在 MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表达层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性.(2)M V C的三个模块互相独立,改变其中的一个不会影响其他两个,所以根据这种设计思想能构造良好的松耦合的构件.(3)控制器可以用来连接不同的模型和视图去完毕用户的需求,也可认为构造应用程序提供强有力的手段.
16、给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行解决,然后选择适当的视图将结果显示给用户.7.说 说 s tru ts 是如何实现MVC的?Struts采用JSP作为MVC的视图,控制器由ActionServlet和 Action类来实现.控制器负责视图和模型之间的交互,模型由实现业务逻辑的JavaBean或 EJB组件构成,然后说说Struts的工作流程.8.S tru ts优点与缺陷Struts是开源软件,使开发者能更进一步的了解其内部实现机制。Struts优点:业界”标准(很多成功案例),学习资源丰富。Struts的优点重要集中体现在两个方面:Taglib和页面导航
17、。a、运用Struts提供的taglib可以大大节约开发时间。b、维护扩展比较方便。通过一个配置文献,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。c、表现与逻辑分离d、表单验证解决了请求数据的验证问题,增强了系统健壮性。e、便于团队开发Struts缺陷:a、大量的使用标签,对于初学者难度较大。b、ActionForms使 用 不 便、无 法 进 行 单 元 测 试(StrutsTestCase只能用于集成)9.stru st的Action是不是线程安全的?假如不是 有什么方式可以保证Action的线程安全?假如是,说明因素不是.为了保证action的线程安全,最佳的办法就
18、是不要在action里定义实列变量.10.Tiles框架是什么?Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。11.strutsl.x 和 struts 2 的区别本文将从Struts!和 Struts2的各个方面进行比较特性S t r u t s 1Struts 2Action 类S tru tsl的action需要去继承一个抽象基类。一-个普遍问题就是S tru tsl是面向抽象类编程来代替接口编程Struts2的action可以实现一个Action接口,也可以同时实现一些其他的接口来添置一些附加的,常用的服务。Struts2提供一个基类ActionSupp
19、ort实现了一些常用的接口。虽然Action接口不是必须的。任何附带execute方法的POJO对象都可以作为Struts2的action 对象。线程模型S tru tsl的action是单例的并且必须是线程安全的,由于该类会只有唯-个引用来为action解决所有的请求。单例策略会限制S tru tsl的action的功能以及需要扩展的额外的功能(Thesingleton strategy placesrestrictions on what can bedone with Struts 1 Actions andrequires extra care todevelop)。Strutsl 的
20、 action 必须是线程安全的并且是同步的。Struts2的Action对象是针对每一个请求的,所以自然也就不存在线程安全问题了。(事实上,)Servlet的依赖Strutsl 的 Act ion 依赖于 ServletAPI,由于当Action被调用的时候HttpServletRequest 和HttpServletResponse 对象是通过 execute方法进行解决的。Struts2的Action和容器的连接并不紧密。通常servlet上下文被描绘成简朴的Map映射,允许Action被单独测试。当然,假如需要的话Struts2的Action也可以通过访问初始的request和resp
21、onse来完毕一些功能。然而,其他的一些架构元素导致减少或者删除了直接访问request和response的需求。易测试性测试S tru tsl的Action有一个大隙碍就是execute方法是直接暴露于 servlet API 的。Struts2的Action可以很容易的通过设立属性调用方法来进行测试。当然依赖注入的支持也使得测试变得简朴。输入解决Strutsl 使用一个 ActionForni 对象来获取用户的输入。和action同样,所有的ActionForm都必须继承自一个基类。由于其他的javaBean不能被用作ActionForm,开发者通常要写一些多余的类来获取用户输入。Dyna
22、Bean可以被用做生成ActionForm类的一个选择,但是开发者需要对现有的javaBean进行重写。Struts2使用Action属性作为输入属性,除掉了对于输入对象的需求。输入属性可以是一个拥有他自己的属性的对象。Action属性是通过标签和web页面交互。Struts2 也支持 ActionForm 模型,就是POJO的Form对象和POJO的Actiono多数的对象类型,涉及商业逻辑对象和领域对象都可以作为输入/输入对象。模式驱动特性简化了标签和POJO输入对象的关系。表达式语言S tru tsl和 JSTL结合,所以他可以使用JSTL的ELoStruts2也支持JSTL,但是这个框
23、架也支持更加强大的表达式语言OGNL表现层和类型值的绑定S tru tsl使用标准的JSP机制将对象绑定到page context来进行访问。Struts2 使用ValueStack”技术,所以标签不用将视图和表现的对象结合就可以得到值.ValueStack策略允许通过一系列也许具有相同属性名字但是不同属性类型的的类型来完毕视图的重用,类型转换Strutsl 的 ActionForm 通常都是String 类型。Strutsl 通过Commons-Beanut i 1 s 实现类型转换。Struts2使用OGNL实现类型转换,框架包含了对基础和公共类型的转换器。验证Strutsl 支持通过 A
24、ctionForm 中的 validate方法实现手工验证。也可以通过扩展通用的验证框架进行验证。对于同一个类可以有不同的验证,但是不能关联到子对象的验证。Struts2也支持通过validate方法进行手工验证以及Xwork验证框架进行验证。Xwork验证框架支持将验证链接到子属性,子属性使用了为属性类型和验证上下文定义的验证。Action执行的控制S tru tsl支持为每一个模块分派请求解决(生命周期),但是一个模块中的所有Action必须分享相同的生命周期。S truts?支持通过拦截器栈为每个Action创建不同的生命周期。通常对于不同的Action根据需要都要有相应的栈被创建和使用
25、。12.Struts的常用标签库及用法常见的struts标签库有struts htm l标签库,struts bean标签库,struts Logic标签库,StrutsTemplate 标签库,Struts Nested 标签库.HTML标签 用来创建可以和Struts框架和其他相应的HTML标签交互的HTML输入表单B ean标签 在访问JavaBeans及其属性,以及定义一个新的bean时使用Logic标签 管理条件产生的输出和对象集产生的循环Template标签 随着Tiles框架包的出现,此标记已开始减少使用Nested标签 增强对其他的Struts标签的嵌套使用的能力以下分别讲解s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 Java 框架 试题 总结
限制150内