对比Sturts2和SpringMVC

常见web框架中Struts2SpringMVC独占鳌头,SpringMVCStruts有什么不同?

我们可以从各个方面进行对比:

:框架的思想设计上

SpringMVC控制器是基于方法上拦截,是单例的.Struts2控制器是基于类上拦截,是多例的,多例会带来一定内存消耗.

:配置文件上执行流程:

Struts2是通过前端过滤器StrurtPrepareAndExecutionFilter接受到请求后在过滤器中完成一部分的代码.SpringMVC的前端过滤器DispatcherServlt接收到客户端请求后接着将请求映射处理器HandlerMapping,映射处理器会根据xml配置,注解进行查找handler,接着映射处理器HandlerMapping将找到的Handler返回给前端控制器DispatcherServlet,接着前端控制器调用处理适配器对Handler进行执行,Handler执行完给处理适配器HandlerAdapt返回ModelAndView,处理适配器接着将ModelAndView返回给前端过滤器,前端过滤器请求视图解析器进行视图解析,解析成真正的视图(jsp)然后返回View给前端过滤器,前端过滤器进行视图渲染.将模型数据填充到request域中,最后向客户响应结果.

:核心组件上

Struts2的核心组件是StrurtPrepareAndExecutionFilter中的拦截器和Action.

SpringMVC的核心组件有过滤器DispatcherServlt,映射处理器HandlerMapping,,处理适配器HandlerAdapt,处理器Handler,视图解析器ModleAndVIew.

:参数传递上

SpringMVC通过方法入参传递参数,Struts2通过类的成员变量来传递参数.

ps图:

欢迎阅读,路过的大神请多指教!

猜你喜欢

转载自blog.csdn.net/LCF_lxf_ldy/article/details/79242368