码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Web常见面试问题

时间:2018-04-29 01:25:57      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:patch   listen   对象传输   映射   listener   值栈   前端   loader   servlet   

一、Web容器初始化过程

先初始化listener,然后是filter,然后是servlet。

技术分享图片

二、Spring MVC项目中IOC容器关系

Web容器启动时通知ContextLoaderListener初始化根IOC容器,默认为WebApplicationContext实例,存放除Web层外Bean对象,然后DispatcherServlet初始化WebMVC上下文,建立自己的IOC容器,作为根IOC容器的子容器。

技术分享图片

三、DispatherServlet的工作过程

技术分享图片

 技术分享图片

 

流程 
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响应用户
四、Spring MVC设计优点
技术分享图片

五、SpringMVC与Struts2的主要区别?

springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。
springmvc是基于方法开发,传递参数是通过方法形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。 
Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request对象内容进行解析成方法形参,将响应数据和页面封装成ModelAndView对象,最后又将模型数据通过request对象传输到页面。 Jsp视图解析器默认使用jstl。
 

Spring Web常见面试问题

标签:patch   listen   对象传输   映射   listener   值栈   前端   loader   servlet   

原文地址:https://www.cnblogs.com/doit8791/p/8970009.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!