Struts1
struts1请求----actionservlet---找到对应的action--------执行业务处理-----返回一个actionforward,
-=----找到对应的试图对象,将试图对象填充到客户端
struts2
客户端初始化一个请求,请求到达过滤器filter,紧接着filterdispatcher被调用。
产生一个actionmapper,去询问是否有相应的action,有的话,产生一个actionproxy对象
此时从配置管理器。configurationManager中去查询相应的action
次数,actionproxy产生一个actionlnvocation,调用action的方法,并执行,
调用完成之后,actionlnvocation 通过去struts.xml找到与之相对应的返回结果,
将返回结果返回客户端。通常返回结果应该是jsp或者freemacker模板等。
SpringMVC
客户端发起请求,请求交给web。xml配置中的dispatcherservlet,ds产生一个handleMapping对象。
handlemapping去找到相对应的controller, controller去进行业务处理之后,返回一个modelandview对象
modelandview去找到视图解析器,找到对应的试图对象,然后填充到客户端。
SpringMVC-----STRUTS2
从配置:springmvc的可以说是0配置,除了mvc-servlet。xml的配置~~ 其他都是靠注解来完成
struts2,采用传统的配置文件方式,没写一个action就要在struts。xml内配置
springmvc的入口时servlet,而struts2的入口时filter,
struts2 是采用的OOP思想。
springMVC是基于方法设计的,而struts2的基于类设计的,struts2的请求参数是直接注入到类的属性里面去,类中的方法共享这些参数数据
springmvc的话,一个方法变对应一个request上下文,一个方法又对应一个url,这种架构就更容易实现restful了。
springmvc 处理ajax非常方便, 注解一个 @responsebody 就好,返回相应的文本。
更多推荐
Struts1
发布评论