在线客服
扫描二维码
下载博学谷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 中一般认为有23 种设计模式,这听上去很多,然而Java设计模式不需要所有的都会,我们只需要掌握常用的几种设计模式。 Java设计模式分为三大类: 创建型模式、结构型模式、行为型模式。小面详细来讲解Java设计模式中的七种结构型模式。
6306
2019-07-10 11:49:30
JavaEE开发培训班怎么样?
历经了23年,Java依旧傲居编程语言排行榜,舍我其谁,可以说集万千优势于一身的Java到目前是世界上最受程序员欢迎的编程语言,它广阔的就业前景也吸引着每一个人。不少想学JavaEE开发的小伙伴都有这样的疑问:JavaEE开发培训班怎么样?本文针对这个问题详细为大家解答。
5697
2019-07-22 09:41:10
零基础如何学习Java编程语言?
Java编程语言一直都是世界范围内使用率最为广泛的编程语言,因为其同行用、安全性、高效性和平台移植性等特点,被企业广泛的应用。尤其近几年大数据与人工智能的概念持续火爆。Java语言更加凸显其优势,其职业发展前景更加更阔。那对于零基础的同学如何学习Java编程语言呢?
3674
2019-10-28 18:49:03
Java开发游戏抽奖算法有哪些?
Java开发游戏抽奖算法有哪些?抽奖算法根据需求而定,游戏抽奖算法在指定奖品的集合中,每个奖品根据对对应概率进行抽取。Java开发游戏抽奖算法主要有随机数一一对应、离散法Alias算法等
5730
2020-02-19 16:26:26
Java工程师避免内卷,看这篇就够了!
大家可能也都感觉到Java程序员也越来越来卷了,特别是初中级Java工程师更卷了;大家都有着类似的工作经历,你会的技术我也会。所以,如何破解这种职业瓶颈? 那就看谁更能卷了,谁能更快的学习,快速进入到高级、甚至架构师的行列,谁就能拥有话语权,在Java这个方向立稳脚跟。
1278
2022-09-16 10:44:41