Java spring mvc 和 struts 的区别是什么?

2023-12-23 09:32:03

Java spring mvc 和 struts 的区别是什么?

Spring MVC和Struts都是用于构建Java Web应用程序的MVC框架,它们有一些共同点,但也有一些区别。

Spring MVC:

  1. 配置: Spring MVC使用注解和XML配置文件进行配置,提供了更灵活的配置方式。
  2. 灵活性: Spring MVC是Spring框架的一部分,可以与Spring的其他模块(如Spring Core、Spring Security等)集成,提供更全面的功能。
  3. 测试: Spring MVC容易进行单元测试,因为控制器类通常是POJO(普通的Java对象),而且Spring提供了Mock对象的支持。
  4. 扩展性: Spring MVC具有良好的扩展性,可以通过拦截器(Interceptors)进行请求处理前、请求处理后的处理。
  5. View技术: Spring MVC支持多种视图技术,包括JSP、FreeMarker、Thymeleaf等。

Struts:

  1. 配置: Struts使用XML配置文件进行配置,需要遵循特定的约定,例如struts.xml文件。
  2. 约定大于配置: Struts是一个约定大于配置的框架,使用了一些默认规则,需要按照这些规则来组织代码。
  3. 测试: Struts的Action类通常需要继承特定的类或实现特定的接口,这可能使单元测试变得稍微复杂一些。
  4. 扩展性: Struts的扩展性较差,定制化需求相对Spring MVC较为困难。
  5. View技术: Struts主要使用JSP作为视图技术。

代码示例:

以下是一个简单的Spring MVC和Struts的示例,演示了它们的基本用法。

Spring MVC 示例:
// UserController.java
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class UserController {

    @RequestMapping(value = "/user", method = RequestMethod.GET)
    public String getUser(Model model) {
        model.addAttribute("username", "John Doe");
        return "user";
    }
}
<!-- user.jsp -->
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>User Page</title>
</head>
<body>
    <h1>Welcome, ${username}!</h1>
</body>
</html>
Struts 示例:
// UserAction.java
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
    private String username;

    public String execute() throws Exception {
        username = "John Doe";
        return SUCCESS;
    }

    public String getUsername() {
        return username;
    }
}
<!-- struts.xml -->
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="user" class="UserAction">
            <result>/user.jsp</result>
        </action>
    </package>
</struts>

在这个示例中,Spring MVC使用注解进行配置,而Struts使用XML配置文件。两者都展示了一个简单的用户页面,但Spring MVC更加灵活,而Struts更加约定大于配置。

文章来源:https://blog.csdn.net/sanmansan/article/details/135075734
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。