Java spring mvc 和 struts 的区别是什么?
2023-12-23 09:32:03
Java spring mvc 和 struts 的区别是什么?
Spring MVC和Struts都是用于构建Java Web应用程序的MVC框架,它们有一些共同点,但也有一些区别。
Spring MVC:
- 配置: Spring MVC使用注解和XML配置文件进行配置,提供了更灵活的配置方式。
- 灵活性: Spring MVC是Spring框架的一部分,可以与Spring的其他模块(如Spring Core、Spring Security等)集成,提供更全面的功能。
- 测试: Spring MVC容易进行单元测试,因为控制器类通常是POJO(普通的Java对象),而且Spring提供了Mock对象的支持。
- 扩展性: Spring MVC具有良好的扩展性,可以通过拦截器(Interceptors)进行请求处理前、请求处理后的处理。
- View技术: Spring MVC支持多种视图技术,包括JSP、FreeMarker、Thymeleaf等。
Struts:
- 配置: Struts使用XML配置文件进行配置,需要遵循特定的约定,例如
struts.xml
文件。 - 约定大于配置: Struts是一个约定大于配置的框架,使用了一些默认规则,需要按照这些规则来组织代码。
- 测试: Struts的Action类通常需要继承特定的类或实现特定的接口,这可能使单元测试变得稍微复杂一些。
- 扩展性: Struts的扩展性较差,定制化需求相对Spring MVC较为困难。
- 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!