struts2和springmvc的区别(5大区别详解)

struts2和springmvc的区别(5大区别详解)-mikechen

Java面试经常会问到struts2和springmvc的区别,下面详解struts2和springmvc的区别@mikechen

struts2

Struts2是一个基于MVC设计模式的Web应用框架,用于创建企业级Java web应用程序,本质是一个大大的Servlet

Struts2框架的主要组件包括:

struts2和springmvc的区别(5大区别详解)-mikechen

Interceptor(拦截器):在请求的处理过程中,Interceptor可以拦截请求并进行相应的处理,比如权限控制、日志记录、数据验证等。

Action:在Struts2中,Action是一个处理请求的核心组件,它负责处理来自浏览器的请求并将处理结果返回给浏览器。

Result:在Struts2中,Action返回一个Result实例,它指示了如何将Action的处理结果呈现给用户,可以是JSP、Velocity、Freemarker等模板引擎。

 

springmvc

Spring MVC是一个MVC框架,用于构建Web应用程序。

如下所示:

struts2和springmvc的区别(5大区别详解)-mikechen

1.模型(Model):模型封装了数据及对数据的操作,可以直接对数据库进行访问。

2.视图(View):只负责展示,没有具体的程序逻辑。

3.控制器(Controller):用于控制程序的流程,将模型中的数据展示到视图中。

 

struts2和springmvc的区别

Struts2和Spring MVC都是MVC模式的Web框架,它们的主要区别如下:

1.架构设计不同

Struts2是基于Filter和Servlet的Web框架,它的核心控制器Action实现了WebWork和Struts1的功能。

而Spring MVC是基于Spring框架的Web框架,它的核心控制器DispatcherServlet是Spring MVC的核心组件,通过HandlerMapping和HandlerAdapter将请求映射到Controller上。

 

2.配置方式不同

Struts2需要使用XML文件进行配置,如struts.xml和web.xml等,配置比较繁琐。而Spring MVC使用注解或XML文件进行配置,可以根据需要选择。

 

3.数据绑定方式不同

Struts2使用OGNL表达式实现数据绑定,开发人员可以将请求参数自动绑定到Action的属性上,也可以手动进行数据绑定。而Spring MVC使用Spring表达式语言SpEL实现数据绑定,也支持使用DataBinder进行数据绑定。

 

4.Interceptor和Interceptor Chain不同

Struts2使用Interceptor来实现对请求的拦截和处理,Interceptors可以对Action的执行进行拦截、处理和转发,比如登录拦截、权限控制等。而Spring MVC使用Interceptor和Interceptor Chain来实现类似的功能,但Interceptor可以在HandlerAdapter之前或之后执行,比如日志记录、权限控制等。

 

5.处理RESTful接口不同

Struts2不支持处理RESTful接口,需要手动进行URL映射和参数解析。而Spring MVC支持处理RESTful接口,可以使用@RequestMapping注解进行URL映射和参数解析。

总之,Struts2和Spring MVC都是成熟的MVC模式的Web框架,各有优缺点,选择哪种框架取决于实际需要和个人偏好。

以上就是struts2和springmvc的区别详解,更多请查看:Struts2框架最全详解(非常详细)SpringMVC教程(万字图文全面详解)

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法