Struts2与spingmvc区别

1、Struts2是类级别的拦截, 一个类对应一个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使用,并保证线程安全,所以在原则上,是比较耗费内存的。

4、 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。

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

6、SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

7、SpringMVC验证支持JSR303,处理起来相对更加灵活方便,而Struts2验证比较繁琐,感觉太烦乱。

8、spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。

9、 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。

10、SpringMVC开发效率和性能高于Struts2。
11、SpringMVC可以认为已经100%零配置。

时间: 2024-10-09 18:10:55

Struts2与spingmvc区别的相关文章

struts2 struts1.x 区别

此文转于http://www.blogjava.net/sterning/archive/2007/07/17/130892.html Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用.作为最成功的Web框架,Struts自然拥有众多的优点:MVC 2模型的使用.功能齐全的标志库(Tag Library).开放源代码. 但是,正所谓“没有最好,只有更好”,Struts1.x自身也有不少的缺点:需要编写的代码过多,容易引起“类爆炸”.单元测试困难.这些缺点随着

从一个简单的小实例分析JSP+Servelt与JSP+Struts2框架的区别

最近在学struts2,struts2相比以前的JSP+Servlet,在处理流程上的更简单,我们就一个小实例来具体分析一下. 实例内容如下: 实现一个简单的注册页面包括:用户名.密码.重复密码.年龄.出生日期.毕业日期 要求如下:用户名的长度在4-6之间密码的长度在4-6之间重复密码与密码相等年龄在10-50之间出生日期在毕业日期之前 输入错误返回原页面,并在原页面的文本框后面显示具体的错误信息.正确输入则跳入下个页面将信息显示出来. 1.JSP+Servlet 1)我们编写注册页面regis

Spring 、SpringMVC 、Struts2之间的区别

一.Spring与SpringMVC的区别: spring是一个开源框架,是为了解决企业应用程序开发,功能如下: 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用   Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. 1.轻量--从大小与开销两方面而言Spring都是轻量的.完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布.并且Spring所需的处理开销也是微不足道的.此外, Spring是非侵入式的:典

springmvc 实现原理与struts2原理的区别

spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. spring mvc是基于方法的设计,sturts2是基于类设计的. springmvc将url和controller方法映射.映射成功后springmvc生成一个Handler对象,对象中只包括了一个method.方法执行结束,形参数据销毁.springmvc的controller开发类似service开发.strts2每次请求都会实例一个action,每个action都会被注入属性.sp

struts2 基础demo1

我们都知道 struts2 是基于webframework 出现的 优秀的mvc 框架, 他和struts1 完全没有联系.struts2 是一个框架, 啥叫框架呢?是一个优秀的半成品 . web的框架在java 中有 webframework  struts2  springmvc.... struts2 和struts1 区别 1.没有任何联系 2.struts2内核是webframework demo1: struts2 的入门demo: 1.web框架的过滤器 1 <!-- struts

struts2学习1

struts2使用优势 自动封装参数 参数校验 结果的处理(转发|重定向) 国际化 显示等待页面 表单的防止重复提交 struts2具有更加先进的架构以及思想 使用拦截器 struts2的历史 struts2与struts1区别就是技术上没有什么关系. struts2的前身是webwork框架. 搭建struts2框架搭建 1.导包 在项目中找 2.书写Action类(处理请求的类) 无需继承什么类 public class Hello { public String hello() { Sys

Java 49:struts2

struts2是什么 概念 struts2使用优势 自动封装参数 参数校验 结果的处理(转发|重定向) 国际化 显示等待页面 表单的防止重复提交 struts2具有更加先进的架构以及思想 struts2的历史 struts2与struts1区别就是技术上没有什么关系. struts2的前身时webwork框架. 搭建struts2框架 1.导包 <dependencies> <dependency> <groupId>org.apache.struts</grou

Struts2.zzh

Struts2是什么? Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互 Struts2的使用优势(表面): 1.自动封装参数 2.参数校验 3.结果的处理(转发|重定向) 4.国际化 5.显示等待页面 6.表单防止重复提交 struts2具有更加先进的架构以及思想 struts2的历史: 1.struts2与struts1区别就是技术上没有什么关系,Strut

金九银十,浅谈关于java程序员面试的一些事项

本篇博文针对的是应届毕业生以及工作两三年左右的java程序员. 为什么要跳槽? 这是一个很广义的问题,每个人心中都有一份答案. 例如: 公司的待遇不好, 薪资涨幅不符合预期要求, 厌倦了出差的荒无天日的繁重工作, 公司的妹子太少, 领导太傲娇, 同事之间关系太逼格, 某某同学跳槽到某某公司之后涨到了多少多少钱, 某某同学的朋友的同事的三姑妈家的大儿子的好基友在某某高就, 等等辞职理由. 咱们就不多说了,还是谈谈怎么应付面试吧. 以下内容是我在面试中总结的一些经验,希望这些可以给各位带来帮助和启迪