浅析struts2和springMVC的异同

2017-12-29 10:55陈张成都师范学院
数码世界 2017年4期
关键词:拦截器调用过滤器

陈张 成都师范学院

浅析struts2和springMVC的异同

陈张 成都师范学院

struts2和springMVC都是java web开发比较主流的框架,目前企业中使用springMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题。

WEB框架 struts2 springMVC

1 springMVC简介

spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring框架提供了构建Web应用程序的全功能MVC模块。Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

2 springMVC的执行流程

第一,用户向服务器发送请求,请求被Spring前端控制Servelt DispatcherServlet捕获;

第二,DispatcherServlet对请求URL进行解析,得到请求资源标识符。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象,最后以HandlerExecutionChain对象的形式返回;

第三,DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter;

第四,提取Request中的模型数据,填充Handler入参,开始执行Handler。在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

HttpMessageConveter:将请求消息转换成一个对象,将对象转换为指定的响应信息;

第五,Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象;

第六,根据返回的Model AndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet;

第七,ViewResolver结合Model和View,来渲染视图;

第八,将渲染结果返回给客户端。

3 struts2执行流程

一个请求在Struts2框架中的处理大概分为以下几个步骤:

第一,客户端浏览器发送请求;

第二,这个请求经过一系列的过滤器(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助);

第三,接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action;

第四,如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy;

第五,ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类;

第六,ActionProxy创建一个ActionInvocation的实例;

第七,ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器的调用;

第八,一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。

4 struts2和springMVC的比较

①核心控制器:对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是处理所有的请求,然后对那些特殊的请求统一的进行处理,spring mvc核心控制器是Servlet,而Struts2是Filter。

②控制器实例:Spring Mvc会比Struts快一些(理论上)。

③管理方式:大部分的公司的核心架构中,就会使用到spring,而spring mvc又是spring中的一个模块,所以spring对于spring mvc的控制器管理更加简单方便。

④参数传递:Struts2中自身提供多种参数接受,其实都是通过进行传递和赋值,而SpringMvc是通过方法的参数进行接收。

⑤学习难度:Struts更加很多新的技术点,比如拦截器、值栈及OGNL表达式,学习成本较高,spring mvc比较简单,很较少的时间都能上手。

总体来说,springMVC对初学者来说相比较struts2更加容易上手,与spring的集成更加流畅和方便。

[1]王冠宇,赵冬生.基于J2EE下的JSF与Struts框架比较分析[J].微机发展,2005年12期

[2]陈平.基于Spring的轻量级Web框架的研究与设计[D].江苏大学,2005年

[3]孙卫琴.精通struts[M].电子工业出版社,2004年8月50-70

[4]曾云飞.基于Struts框架的电子政务研究和实现[M].东北大学出版社,2005

陈张,成都师范学院,计算机科学与技术,本科。

猜你喜欢
拦截器调用过滤器
多动能拦截器协同制导规律的研究及仿真
英国MARSS公司推出新型反无人机拦截器
以色列“天锁”公司展出新式反无人机拦截器
三步拆卸洋马YH880/1180 收割机变速箱内过滤器
核电项目物项调用管理的应用研究
提高中央空调高效过滤器使用寿命的几点思考
系统虚拟化环境下客户机系统调用信息捕获与分析①
污染控制—燃料电池的使能技术
新型纳米材料过滤器
利用RFC技术实现SAP系统接口通信