常见web框架中Struts2和SpringMVC独占鳌头,SpringMVC和Struts有什么不同?
我们可以从各个方面进行对比:
一:框架的思想设计上
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图:
欢迎阅读和留言,路过的大神请多指教!
领取专属 10元无门槛券
私享最新 技术干货