Stuts2与SpringMVC
Struts2:一个基于MVC设计模式的Web应用框架,本质上相当于一个servlet。以WebWork为核心,采用拦截器的机制处理用户的请求(Filter)。
轻量级的MVC框架。低侵入性,与业务代码的耦合度很低。
采用Filter实现
实现MVC方式:

SpringMVC:属于SpringFrameWork的后续产品。spring2.5版本发布后,支持注解配置,提高了易用性。
使用简单,学习难度小于Struts2
采用Servlet实现。
Struts2缺点:采用了值栈,OGNL表达式,struts2标签库等,会导致应用的性能下降。
一、框架机制:
SpringMVC采用sevlet,Struts2采用Filter。Filter在容器启动之后即初始化。服务停止以后坠毁,晚于Servlet。Servlet是在调用的时候初始化,先与Filter调用,服务停止后销毁。
二、拦截机制:
1、struts2:
Struts2框架是类级别的拦截,每次请求都会创建一个Action。
一个Action对应一个request,response上下文,在接收参数时,可以通过属性接收。
Action的一个方法可以对应一个url,而类属性却被所有的方法共享。
2、SpringMVC:
SpringMVC是方法级别的拦截,一个方法对应一个request上下文。方法基本上是独立的,独享request,response数据。每个方法又有一个url对应,参数的传递是直接注入到方法中的,是方法独有的。处理结果通过ModeMap返回给框架。
SpringMVC的Controller Bean默认单例模式Singleton,默认对所有的请求,只会创建一个Controller,没有共享属性,所以线程是安全的。
三、性能:
SpringMVC实现了零配置,基于方法拦截,又加载一次单例模式Bean注入。而Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入。
四、拦截机制:
Struts2:有自己的拦截方式Interceptor机制。
SpringMVC用独立的AOP方式。
五、配置:
springMVC和spring是无缝的。
六、设计思想:
Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。
七、集成:
SpringMVC集成了Ajax、使用非常方便,只需要一个注解@responseBody就可以实现,然后直接返回响应文本即可。
Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去。
Stuts2与SpringMVC的更多相关文章
- SpringMVC基础——一个简单的例子
一.导入 jar 包 二.配置 web.xml 文件 <servlet> <servlet-name>dispatcherServlet</servlet-name> ...
- 1、第一个SpringMVC程序
1.创建如下项目结构 2.在src下的com.springmvc下创建User.java package com.springmvc; public class User { private Stri ...
- Servlet Struts2 SpringMVC 获取参数与导出数据 方法比较
servlet中通过request.getParameter()从网页获取参数 通过request session servletContext几个域对象的setAttribute(String ,O ...
- springMVC 与 struts+hibernate+spring优缺点
springMVC: Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术.Velocity.Tiles.iText 和POI.Spring M ...
- ---搭建springMvc框架,希望对初学者有所参考
Spring Mvc ==> Struts2 spring 无法替代 myBatis 工作量大 要自己操作sql语句 ==> hibernate Spring Mvc 取代St ...
- struts2和springmvc比较1
其实都是ssh只是一个是struts2+spring3.0+hibernate,而另外一个是 springmvc+spring3.0+hibernate,纵向来看比较struts2和springmvc ...
- SpringMVC入门总结
一.SpringMVC的好处? 1,基于注解,stuts2虽然也有注解但是比较慢,没人用更多的时候是用xml的形式 2,能与spring其它技术整合比如说webflow等, 3,获取request及s ...
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- Springmvc数据校验
步骤一:导入四个jar包 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
随机推荐
- 如何在linux中解压.rar文件
在liunx下原本是不支持rar文件的,需要安装liunx下的winrar版本 步骤: 1.http://www.rarsoft.com/rar/rarlinux-4.0.1.tar.gz 从这个网址 ...
- Cookie跨域setDomain和setPath
CSDN日报20170226--<你离心想事成只差一个计划> 程序员2月书讯 [招募]Python学习班招生啦 Cookie跨域setDomain和setPath 标签: cookiesp ...
- 关于pgsql 几个操作符的效率测试比较
关于pgsql 几个操作符的效率测试比较1. json::->> 和 ->> 测试方法:单次运行100次,运行10个单次取平均时间.测试结果:->> 效率高 5% ...
- greenplum 数组操作
参考:http://gpdb.docs.pivotal.io/4390/admin_guide/query/topics/functions-operators.html Table 4. Advan ...
- STM32学习笔记:创建工程模板
STM32作为一类高级单片机,在应用中不容小觑. 所以本人从2018年1月1日开始对于STM32系列单片机的学习. 本人所持的型号为:STM32F429ZI-DISCOVERY,M4内核,封装类型为: ...
- Ternsorflow 学习:004-MNIST入门 构建模型
Softmax回归介绍 我们知道MNIST的每一张图片都表示一个数字,从0到9.我们希望得到给定图片代表每个数字的概率.比如说,我们的模型可能推测一张包含9的图片代表数字9的概率是80%但是判断它是8 ...
- zabbix proxy配置实战案例
zabbix proxy配置实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix proxy概述 上一篇博客我们分享了zabbix agent有两种工作模式,即 ...
- 采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序(多activity)
问题: 多activity中退出整个程序,例如从A->B->C->D,这时我需要从D直接退出程序. 网上资料:{ finish()和system(0)都只能退出单个activity. ...
- pyhton matplotlib可视化图像基础(二维函数图、柱状图、饼图、直方图以及折线图)
//2019.07.22pyhton中matplotlib模块的应用pyhton中matplotlib是可视化图像库的第三方库,它可以实现图像的可视化,输出不同形式的图形1.可视化图形的输出和展示需要 ...
- window下Apache Jmeter基础用法
1.下载Apache-jmeter-5.1.1.zip 2.解压到一个地方,就可以开始使用了,如果需要在CMD里快速打开,可以设置环境变量. 3.在bin里面,直接打开jmeter.bat. 可以修改 ...