springmvc原理:
1、用户发起请求到控制器 DispatcherServlet(前端控制器)
2、前端控制器去handlerMapper查找Handler对象
3、HandlerMapper返回HandlerExecutorChain 执行链(包含两部分内容:Handler ,拦截器集合)
4、前端控制器,通过HandlerAdapter 适配器执行 Handler对象
5、Handler处理具体的业务逻辑
6、Handler处理完业务逻辑之后,返回ModelAndView 其中的View是视图名称
7、将ModelAndView返回前端控制器
8、前端控制器,通过ModelAndView 中的视图名称。在视图解析器中查找视图
9、返回真正的View 视图对象
10、渲染视图
11、返回用户响应
Struts2原理:
两者之间的区别:
1、SpringMVC的入口是Servlet,Struts2的入口是Filter,两者的实现机制不同,SpringMVC的可信是Servlet,Struts2的核心是Filter。
2、SpringMVC基于方法设计,传递参数时通过方法形参,其实现的单例模式(也可以改为多例,推荐用单例),Struts2基于类设计,传递参数时通过类的属性,只能是多例实现,性能上SpringMVC更高一些。
3、参数传递方面,Struts2是用类的属性接收的,也就是在多个方法间共享,而SpringMVC基于方法,多个方法间不能共享。