【Java面试题】五道面试必备JavaEE框架面试题

发布时间:2021-12-30 15:02:06

  笔者把JavaEE的框架面试题整理起来,虽然只有五道,但还是比较经典,而且很难回答,希望对大家有所帮助。

JavaEE框架面题。

  一、简述SpringMVC的工作流程?

  1.向前端控制器DispatcherServlet发送请求。

  2.DispatcherServlet接收一个调用处理映射程序的请求。

  3.处理器映射程序发现特定的处理器,在生成处理器对象和处理器拦截程序(如果有则生成)一起返回到DispatcherServlet。

  4.DispatcherServlet调用处理程序适配器。

  5.HandlerAdapter在适当的情况下调用特定处理器(Controller,也称为后端控制器)。

  6.Controller执行结束返回ModelAndView。

  7.HandlerAdapter向DispatcherServlet返回controller执行结果ModelAndView。

  8.DispatcherServlet向ViewReslover视图解析器传递ModelAndView。

  9.在ViewReslover解析之后返回具体View。

  10.DispatcherServlet基于View进行渲染视图(即将将模型数据填充到视图中)。

  11.DispatcherServlet对用户进行响应。

  SpringMVC和Struts2的主要差异是什么?

  1.springmvc的入门是一个servlet,即前端控制器,struts2ports是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映射框架,sql上的mybatis映射表现出来,而Hibernate则体现于实体类的设计。

  mybatis学习困难,Hibernate困难,但一旦掌握了Hibernate的开发周期,基本上就不用写sql了。

  适用场景:Hibernate适合数据量小的项目,如果在百万级表中缓存在Hibernate查询,会占用大量内存,这会导致服务器内存溢出。mybatis适用于大量数据项。Hibernate一般查询效率也比mybatis低,它涉及了实体类和hql到sql的转换问题。如项目功能均为增删改查的常用模式,适合Hibernate,开发简单,但若表关系关联复杂,查询频繁,适合mybatis。

  这些都是JavaEE框架面试问题五个问题的全部内容了,大家要把握好,来应付面试官的提问哟。

上一篇 【Java面试题】Overload与Override的区别
下一篇 【Java面试题】Java课程设计题目有哪些?