在线客服
扫描二维码
下载博学谷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
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
什么是微服务?微服务优缺点分析
微服务是近些年流行起来的热门概念,与传统的的IT架构相比,它有许多的优势。那么到底什么是微服务呢?本文将对微服务优缺点进行分析,让大家全面的了解微服务。
8007
2019-08-13 09:59:51
Java垃圾回收器相关问题解答
相信很许多人在学习Java的时候,都没有搞清楚过Java垃圾回收器。因此本文主要讲述了Java垃圾回收器的定义、性能评估工具、回收算法等等内容,为大家全面解答垃圾回收器的相关问题。
5149
2019-08-20 15:55:44
Java编程语言开发大数据的优势有哪些?
Java编程语言开发大数据的优势:Java语言支持各类组件、Java在物联网方面应用、Java移动领域应用、Java支撑超级计算机设备。GPU成为大多数速度最快的超级计算设备所不可或缺的处理器。Java“一次编写,随处起效”架构技术能够在工作站上开发自己的软件移植到系统当中。
4610
2020-03-30 17:55:17
在IDEA中如何使用Git?详细步骤讲解
在IDEA中如何使用Git?首先我们要安装好IntelliJ IDEA,然后在IDEA中配置Git,才能开始使用Git。下面我们来详细讲解一下在IDEA中使用Git,大概需要十个步骤,分别是在IDEA中创建工程并将工程添加至Git,将文件添加到暂存区,提交文件,将代码推送到远程仓库,从远程仓库克隆工程到本地,从远程拉取代码,版本对比,创建分支,切换分支和分支合并。
9450
2020-04-30 10:34:03
Java编程语言的优势有哪些?
Java编程语言的优势有哪些?Java最大的优点是与平台无关在Windows 9x、Windows NT、Solaris、Linux、MacOS以及其它平台上都可以使用相同的代码。“一次编写到处运行”的特点,使其在互联网上广泛采用。
5415
2021-11-17 16:08:45