SPRING MVC_4

来源:互联网 发布:10月最新m2数据 编辑:程序博客网 时间:2024/06/16 20:13

springmvcstruts性能高,为什么?

 

1.restful

2.共享变量

3线程安全

4.设计思想

 

 

流程

-----------------

1.入口

2.拦截器

 

1. AJAX

2. 验证

----------------------

 

拉关系

 

 

1Struts2是类级别的拦截,

一个类对应一个request上下文,

 

SpringMVC是方法级别的拦截,

一个方法对应一个request上下文,

而方法同时又跟一个url对应,

 

所以说从架构本身上SpringMVC就容易实现restful url,

而struts2的架构实现起来要费劲,

因为Struts2中Action的一个方法可以对应一个url,

而其类属性却被所有方法共享,

这也就无法用注解或其他方式标识其所属方法了。

 


2、SpringMVC的方法之间基本上独立的,

独享request、response数据,

请求数据通过参数获取,

处理结果通过ModelMap交回给框架,

方法之间不共享变量,

 

而Struts2搞的就比较乱,

虽然方法之间也是独立的,

但其所有Action变量是共享的,

这不会影响程序运行,

却给我们编码读程序时带来麻烦,

每次来了请求就创建一个Action,

一个Action对象对应一个request上下文。

 


3、由于Struts2需要针对每个request进行封装,

把request,session等servlet生命周期的变量封装成一个一个Map,

供给每个Action使用,并保证线程安全

所以在原则上,是比较耗费内存的。

 

设计思想上,

Struts2更加符合OOP的编程思想,

Object OrientedProgramming  面向对象程序设计

oriented
['ɔ:rɪəntɪd]   ['ɔ:rɪrntɪd]  
adj.
导向的;定向的;为方向的;定方向

programming

[ˈprəʊgræmɪŋ]   [ˈproʊgræmɪŋ] 

n.

编程;规划,设计

v.

训练( programme的现在分词 );培养;预调

 

 

SpringMVC就比较谨慎,在servlet上扩展。

 

 

 

 

 

 

 

 

 

入口

拦截器

------------------------------------------------------------------------------------------------------------------------------------------

 

4、 拦截器实现机制上,

SpringMVC用的是独立的AOP方式,

 



Struts2有以自己的interceptor机制

这样导致Struts2的配置文件量还是比SpringMVC大。


5、SpringMVC的入口是servlet,

 

而Struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。

 

AJAx

校验

---------------------------------------------------------------------


6、SpringMVC集成了Ajax,

使用非常方便,

只需一个注解@ResponseBody就可以实现,

然后直接返回响应文本即可,

 

而Struts2拦截器集成了Ajax,

在Action中处理时一般必须安装插件

或者自己写代码集成进去,

使用起来也相对不方便。


7、SpringMVC验证支持JSR303,

处理起来相对更加灵活方便,

JSR

Java Specification Request

Java规格要求

specification

英 [ˌspesɪfɪˈkeɪʃn]   美 [ˌspɛsəfɪˈkeʃən] 

n.

规格;说明书;详述

request

英 [rɪˈkwest]   美 [rɪˈkwɛst] 

n.

要求;需要;所请求的事物;申请书

 

 

而Struts2验证比较繁琐,感觉太烦乱。

 

 

拉关系

--------------------------------------------------------------------
8、Spring MVC和Spring是无缝的。

从这个项目的管理和安全上也比Struts2高

 

当然Struts2也可以通过不同的目录结构

和相关配置

做到SpringMVC一样的效果,

但是需要xml配置的地方不少。

 


原创粉丝点击