博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2和spring mvc的比较
阅读量:7045 次
发布时间:2019-06-28

本文共 1432 字,大约阅读时间需要 4 分钟。

详见:

 

Struts2

Springmvc

     

机制

基于filter机制

基于servlet机制

 

 

 

 

处理方式

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

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

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

 

Springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应。

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

 

性能

Sturts2是基于类,每次发一次请求都会实例一個 action ,每个action都会被注入属性。

Springmvc会稍微比Struts2快,Springmvc 是基于方法的设计。

 

 

参数传递

Struts2是在接受参数的时候,可以用属性来接受参数,   这就说明参数是让多个方法共享的。

Springmvc在接受参数的时候是基于方法的,每个方法都可设置自己的参数。

设计思想

Struts2更符合oop的编程思想。struts2脱离了servlet ,Struts2的action可以是一个普通的java类。

Springmvc在servlet上做扩展

     

Interceptor的实现机制

Struts2有以自己的interceptor机制。

spring mvc 用的是独立的AOP方式。

     

优点

 

 

Struts2的   多层拦截器、多实例action性能都很好,并不是导致性能问题的原因。

除了spring-mvc.xml,基本上可以做到零配置。方法的访问支持resutful风格,参数的传递和配置都很灵活,Spring3 mvc的验证也是一个亮点,支

支持JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可

 

缺点

Struts2由于采用了值栈,OGNL表达式等,会导致性能下降,很严重的下降。如果避免或减少使用这些,性能还是很好的。

基于springmvc的注解非常灵活方便,但是不利于维护,

  配置文件可以看清所有的mvc架构,易于维护,可读性强。

 

 

看Servelt规范:

引用

A filter is a reusable piece of code that can transform the content of HTTP requests, responses, and header information. Filters do not generally create a response or respond to a request as servlets do, rather they modify or adapt the requests for a resource, and modify or adapt responses from a resource.

简要翻译下:
 filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。

JSR303是javaEE6中的一项子规范,叫做 Bean Validation,用于对Java Bean中的字段值进行验证。

转载地址:http://jlqal.baihongyu.com/

你可能感兴趣的文章
我的失败与伟大 —— 合作伙伴的甄别
查看>>
APP运营中必须关注的7大数据指标
查看>>
kettle数据同步的五种方案
查看>>
如何用IE的开发人员工具选择Iframe里面的元素
查看>>
linux 常用命令(1) grep
查看>>
第三方开发的网贷系统安全如何保障
查看>>
Java千百问_05面向对象(006)_is-a,has-a,like-a是什么
查看>>
Android SDK r20.x更新时,没有Android API的问题
查看>>
PHPWind发布新产品架构图
查看>>
GitHub学习笔记
查看>>
Javascript 学习 笔记六
查看>>
RecyclerView+Cardview学习探索
查看>>
【Android】Android自定义带board的圆角控件
查看>>
struts 设置默认 action
查看>>
private成员函数竟然可以在类的外部调用
查看>>
基于VLC的播放器开发
查看>>
[js插件]分享一个文章内容信息提示插件Colortip
查看>>
打开word文档到richtextbox
查看>>
阿里云服务器的坑=====部署EF+MVC
查看>>
(单例设计模式中)懒汉式与饿汉式在多线程中的不同
查看>>