在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
Spring MVC是spring框架的一个模块,是基于MVC的轻量级Web框架。Spring是目前Web开发中的一个很重要的部分。尤其在企业招聘相关开发者的时候,有大量的笔试和面试题目都与springMVC有关,下面是小编为大家整理的关于springMVC的一些面试题!

一、SpringMVC有什么优点?
SpringMVC是一个典型教科书式的MVC框架,对于初学者而言是非常好的。其他优点可以概括为:
1、SpringMVC可以支持各种试图技术,而不仅仅局限于JSP;
2、与Spring框架集成(如IoC容器、AOP等);
3、清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver);
4、支持各种请求资源的映射策略;
二、SpringMVC的主要组件有什么?
(1)前端控制器 DispatcherServlet。接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。
(2)处理器映射器HandlerMapping。根据请求的URL来查找Handler。
(3)处理器适配器HandlerAdapter。在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler。
(4)处理器Handler。编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。
(5)视图解析器 ViewResolver。进行视图的解析,根据视图逻辑名解析成真正的视图(view)。
(6)视图View。View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf等等)。
三、SpringMVC和Struts2的区别有哪些?
1、springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。
2、springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
3、Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。
四、SpringMVC的使用流程
(1)用户发送请求至前端控制器DispatcherServlet;
(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;
(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
(4)DispatcherServlet 调用 HandlerAdapter处理器适配器;
(5)HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);
(6)Handler执行完成返回ModelAndView;
(7)HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
(9)ViewResolver解析后返回具体View;
(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
(11)DispatcherServlet响应用户。
面试仅仅是进入企业的敲门砖,对于Java开发者而言,真正的实战技术才是职场晋升的保障。想学习更多SpringMVC相关实战技能,可以通过博学谷《Java开发全终端实战租房项目》学习,课程中包含目前主流后端技术框架SpringBoot、SpringMVC、Mybaits、Dubbo等来实现一个完整的租房项目。让你不仅仅掌握技术知识,更重要的是拥有实战能力。课程链接https://www.boxuegu.com/promote/detail-1234.html
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
十种超实用Java测试框架库
老话说得好:工欲善其事,必先利其器。测试是应用程序生命周期里至关重要的一步,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况。因此,本文例举了十种超实用的Java测试框架库,希望可以帮到大家。
7946
2019-07-05 17:47:32
面向对象是什么?有哪些特征?
提起Java,大家都知道它是一门典型的面向对象的编程语言。但是对于面向对象,可能还有许多人并不清楚。那么面向对象是什么?有哪些特征呢?本文就来带大家好好认识一下面向对象。面向对象是一种软件的开发方法,它的特征归纳起来就是三点,即封装、继承和多态。下面是关于面向对象的深入介绍:
6822
2019-10-31 10:10:10
Java培训班在线教育怎么样?零基础能学好吗?
Java培训班在线教育怎么样?零基础能学好吗?随着IT在线教育的发展,博学谷的课程无论是在教学方式还是在课程内容上,都实现了极大的突破和升级,一改传统线上教育只对学员单向输出的不足。以博学谷Java在线就业班的课程为例,该教程专门为零基础学员打造,因此课程难度循序渐进,逐步深入,只要愿意付出努力好好学习,即使是零基础学完该课程也能进阶为Java高手。
5863
2020-01-06 15:26:07
Spring Cloud Gateway工作原理是什么?
Spring Cloud Gateway工作原理是Gateway 接收客户端请求。客户端请求与路由信息进行匹配,匹配成功的才能够被发往相应的下游服务。请求经过 Filter 过滤器链,执行 pre 处理逻辑,如修改请求头信息等。请求被转发至下游服务并返回响应。响应经过 Filter 过滤器链,执行 post 处理逻辑。向客户端响应应答。
10506
2020-02-20 15:30:31
基于Java的游戏设计之植物大战僵尸
植物大战僵尸这款游戏相信大家或多或少都玩过,那么大家有没有想过自己尝试着做一下植物大战僵尸的游戏设计呢。本文将基于Java语言为大家展示如何开发出植物大战僵尸游戏的简易版本,主要内容包括规则、对象、功能和背景音乐的相关内容设计,如果大家对此有兴趣的话,就接着看下去吧!
10162
2020-04-20 11:59:20
