1.SpringMVC
a.前端发送request请求
b.容器根据web.xml获得前端控制器DispatcherServlet
c.前端控制器调取HandleMapping获取Controller对应的方法
d.前端控制器调用HandleAdpter后端处理器,处理逻辑返回结果ModelAndView
e.前端控制器调取ViewResovler解析视图,显示页面
2.Struts2
a.前端发送request请求
b.容器根据web.xml获得前端控制器DispatcherFilter或StrutsPrepareAndExecuteFilter(老版本)
c.前端控制器读取ActionMapper获取Action信息
d.前端控制器调用ActionProxy读取Struts.xml获取action或interceptor stack
e.ActionProxy调用ActionInvocation,并将request请求参数传入
f.ActionInvocation处理相关逻辑,并产生result返回,产生HttpResponse响应
区别:
1.SpringMVC是面向方法级别的拦截,Struts2是面向类级别的拦截,相比SpringMVC更加高效
2.Structs2 request相当于全局变量,整个类共享;而SpringMVC方法独享