strut2和springmvc的比较

struts2:

面向切面编程的思想在Strut2中也有了很好的体现。最重要的体现就是拦截器的使用。拦截器就是一个一个的小功能单位,用户可以将这些拦截器合并成一个大的拦截器,也就是拦截器栈。只要配置为默认。所有action都可以使用

这些拦截器使用struts2相对servlet

1.参数封装更方便。可以使用属性驱动或者模型驱动实现。

2.文件上传只需要注意form表单的要求。提供对应的file属性和fileName即可完成文件上传

3.其拦截器封装了国际化和输入校验功能,实现更简洁。编写响应配置文件即可。但是使用较少。校验使用JS代码校验给用户体验更好。例如信息的效果展示。

4.获取servletAPI更加简便。可以直接使用ActionContext.getContext()/getSession()/getApplication().操作相应的域。也可以直接使用servletActionContext.getRequest()/getResponse()/getServletContext()来操作

  1. 基于MVC架构,框架结构清晰,开发过程中只需要关注业务层的数据获取封装到对应的POJO中再根据对应的result返回到对应的view展示。

6.struts2拥有独自的一套taglib标签库。从struts2的值栈获取数据使用非常方便。但是该标签与struts2框架耦合紧密。如果需要项目改造页面改动将十分麻烦。工作量巨大。 7。struts2的action是多实例的,因此再与spring整合的时候需要配置为多例。否则值栈数据会混乱。action和页面取值将会错误

springMVC 1、用户发送请求至前端控制器DispatcherServlet

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

5、执行处理器(Controller,也叫后端控制器)。

6、Controller执行完成返回ModelAndView

7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器

9、ViewReslover解析后返回具体View

10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户

truts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入

struts2实际上是通过setter getter方法与request打交道的

struts2中,一个Action对象对应一个request上下文

spring3 mvc不同,spring3mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去

在spring3mvc中,一个方法对应一个request上下文

spring3mvc的方法之间基本上独立的,方法之间不共享变量 ,

而struts2虽然方法之间也是独立的,但Action变量是共享的 这不会影响程序运行,却给我们编码 读程序时带来麻烦

由于Struts2需要针对每个Request进行封装,把Request,Session等Servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全。所以在原则上,是比较耗费内存的

转载于:https://my.oschina.net/u/2929819/blog/760128

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值