在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
小编整理了有关JavaEE框架面试题,虽然只有五道,但是却是比较经典且难以回答的问题,希望可以帮到大家。
一、简单的谈一下SpringMVC的工作流程?
1、用户发送请求至前端控制器DispatcherServlet
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、DispatcherServlet调用HandlerAdapter处理器适配器
5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、Controller执行完成返回ModelAndView
7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9、ViewReslover解析后返回具体View
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户
二、SpringMVC与Struts2的主要区别?
1、springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。
2、springmvc是基于方法开发,传递参数是通过方法形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
3、Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request对象内容进行解析成方法形参,将响应数据和页面封装成ModelAndView对象,最后又将模型数据通过request对象传输到页面。Jsp视图解析器默认使用jstl。
三、什么是mybatis接口绑定有什么好处?
接口映射就是在IBatis中任意定义接口,然后把接口里面的方法和SQL语句绑定,直接调用接口方法就可以,这样比起原来了SqlSession提供的方法可以有更加灵活的选择和设置.
四、mybatis动态sql如何实现的?
MyBatis里面的动态Sql一般是通过if节点来实现,通过OGNL语法来实现,但是如果要写的完整,必须配合where,trim节点,where节点是判断包含节点有内容就插入where,否则不插入,trim节点是用来判断如果动态语句是以and 或or开始,那么会自动把这个and或者or取掉。
五、mybatis与Hibernate区别?
二者都是orm映射框架,mybatis映射体现在sql上,Hibernate体现在实体类设计上。
mybatis学习难度小,Hibernate难度大,但是一旦掌握Hibernate开发周期短,基本不用写sql。
适合场景:Hibernate适合数据量小的项目,如果百万级别的表,用Hibernate查询缓存在session里,占用内存较大,可能导致服务器内存溢出。mybatis适合数据量大的项目。Hibernate普通查询效率也要低于mybatis,涉及到实体类和hql到sql的转换问题。如果项目功能都是增删改查常用模式,适合Hibernate,开发容易,但是如果表关系关联复杂,经常关联查询,适合mybatis。
以上就是JavaEE框架面试题五问的全部内容啦,大家要掌握好,以应对面试官的提问哟。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java开发工程师面试准备
Java开发工程师面试准备,首先找一个好模板,可以参考一些优秀简历,借鉴优质的内容,将自身的优势展示出来,做好面试前的准备,不要平时很认真工作,面试前因为没有时间准备充分而吃亏。除此之外还要在专业技能Java开发方便做功夫。
7641
2019-04-24 19:54:48
Java基础面试题 Object类中Hashcode 和 equals区别与联系是什么?
equals Object 类中默认的实现方式是 : return this == obj 。那就是说,只有 this 和 obj 引用同一个对象,才会返回 true。Hashcode这个方法返回对象的散列码,返回值是 int 类型的散列码。
8420
2019-06-03 16:36:48
Java工程师常见面试题:线程和进程的区别
在Java工程师面试的过程中,线程和进程的相关问题经常被面试官提到。同时线程和进程的区别也是Java开发学习工作中非常重要的知识点。那线程和进程有什么区别呢?和小编一起学习一下吧。
6393
2019-07-02 16:26:59
Java开发工程师面试准备攻略
本文主要和大家分享一下,Java开发工程师面试要做哪些准备。一般来讲,Java岗位的面试准备主要集中在两方面。一方面是面试前的简历制作,另一方面是多做Java开发相关的面试题。前者是为了获得更多的面试机会,后者是为了在面试中通过面试官的考核,从众多求职者中脱颖而出。那么,我们就来详细看看下面这份Java开发工程师面试准备攻略吧!
4996
2020-01-10 15:38:13
Java的线程并发库介绍
对于Java程序员而言,了解并掌握多线程是极其重要的,因为多线程在工作中的使用场景实在是太常见了。而仅仅掌握了Java中的传统多线程机制还是不够的,下面给大家介绍一下Java的线程并发库,主要包括java.util.concurrent包 、java.util.concurrent.atomic包和java.util.concurrent.lock包。
4856
2020-04-24 10:48:56