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

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更加约定大于配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VGGNet

目录 一、VGGNet介绍 1、VGG块 2、VGG架构 3、LeNet, AlexNet和VGGNet对比 4、总结 二、代码实现 1、定义VGG卷积块 2、VGG网络 3、训练模型 4、总结 一、VGGNet介绍 VGGNet&#xff08;Visual Geometry Group Network&#xff09;是一种深度卷积神经网络&#xff0c;…

java String转asc码,然后ascII再转四位的16进制数。

理论知识补充&#xff1a; char是Java中的保留字&#xff0c;表示一种数据类型。与别的语言不同的是&#xff0c;char在Java中是16位的&#xff0c;因为Java用的是Unicode编码。不过8位的ASCII码包含在Unicode编码中&#xff0c;其值对应十进制的表示范围是0~127。 char是Java八…

《软件方法(下)》8.2.4 类和属性的命名

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 8.2 建模步骤C-1 识别类和属性 8.2.4 类和属性的命名 8.2.4.2 关于DDD话语中的“通用语言” DDD&#xff08;领域驱动设计&#xff09;话语中有“通用语言&#xff08;Ubiquitous L…

ant design vue3中引入message消息提示,全局引入亲测有效

两种方式 第一种&#xff1a;使用provide和inject方式 第二种&#xff1a;使用全局挂载$message方式 第一种&#xff1a; //main.ts import { createApp } from vue; import App from ./App; import Antd,{ message } from ant-design-vue; import ant-design-vue/es/mess…

2023-12-22 linux C语言pthread_kill函数,pthread_kill(tid, 0)可以用来判断线程是否存在

一、该函数其实不是kill线程&#xff0c;而是向线程发送一个signal&#xff0c;pthread_kill()函数的作用是向某个线程传递一个信号&#xff0c;创建的线程中signal(SIGKILL,sig_handler)函数去处理对应的信号&#xff0c;如果你给一个线程发送了SIGQUIT、SIGKILL&#xff0c;但…

鸿蒙开发系统学习指南

随着华为鸿蒙系统的推出&#xff0c;越来越多的开发者开始关注和学习鸿蒙开发。本文将为你提供一份全面的鸿蒙开发系统学习指南&#xff0c;帮助你从零开始系统地学习鸿蒙开发。 一、了解鸿蒙系统 在开始学习鸿蒙开发之前&#xff0c;你需要了解鸿蒙系统的基本原理、架构和开…

Ubuntu20.04.2-mate上Lazarus安装与测试

简言 Lazarus采用RAD方式界面开发&#xff0c;一套代码可交差编译出windows、ios、android、solaris、BSD等 各平台运行的程序&#xff0c;在unbuntu的repo中有2.2.0版本可用&#xff0c;在sourceforge上有2.2.6版本和3.0.0的Rolling版可下载安装&#xff0c;但感觉上2.2.0和2…

跨境电商独立站深度分析演示网站

对于跨境电商卖家来说&#xff0c;多平台、多站点的布局是非常重要的战略。这样做可以规避”鸡蛋放在同一个篮子里”的风险也能够追求更高的销售额和利润。同时&#xff0c;市场的变化也带来了新的发展机会&#xff0c;因此很多出海企业都希望抓住独立站的新机遇&#xff0c;抢…

【优质】「web开发网页制作」html+css关于动漫主题海贼王网页制作(7页面附源码)

涉及知识 动漫主题网页制作&#xff0c;海贼王网站7页面&#xff0c;动漫divcss&#xff0c;动漫网站成品&#xff0c;CSSDIV布局&#xff0c;期末网页大作业&#xff0c;网页作业成品&#xff0c;web前端源码实例&#xff0c;如何制作网页&#xff0c;网页设计思路&#xff0…

SpringIOC之SimpleTimeZoneAwareLocaleContext

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…

vue整合axios 未完

一、简介 1、介绍 axios前端异步请求库类似jouery ajax技术&#xff0c;axios用来在前端页面发起一个异步请求&#xff0c;请求之后页面不动&#xff0c;响应回来刷新页面局部&#xff1b;Axios 是一个基于 promise 的 HTTP 库&#xff0c;可以用在浏览器和 node.js 中 2、特…

IntelliJ IDEA 2020将SpringMVC项目打成war包

一 、打开 Project Structure 进行配置 1. 打开方式 &#xff08;1&#xff09;CtrlAltShiftS &#xff08;2&#xff09;File->Project Structure &#xff08;3&#xff09;点击如下图标&#xff1a; 2. 进入 Project Structure&#xff0c;添加Artifacts Web Applica…

后台留言列表

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>后台管理系统</title> <meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"> <meta http-equiv"Acc…

设计测试用例

1.万能公式设计测试用例 设计测试用例的外能思路 问&#xff1a;测试用例是不是越多越好&#xff1f; 答&#xff1a;测试用例并不是越多越好&#xff0c;测试用例能够提高系统测试覆盖率就是好的测试用例。 万能功能&#xff08;6个&#xff09; 功能测试界面测试性能测试兼容…

解决xcode 运行不老iPhone 15 iOS 17.1 设备的问题

问题 最近要查看一下ios 17.1的设备的性能&#xff0c;但是当前版本的Xcode运行不了 解决方法 1、更新Xcode版本到15.1以上 2、更新完成后&#xff0c;大概率出现这个情况 原因&#xff1a;在app Store中更新到Xcode15后,运行不了模拟器和真机.需要下载iOS 17对应的模拟器.&…

Linux 一键部署二进制Gitea

gitea 前言 Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs 分支而来…

python报错A value is trying to be set on a copy of a slice

加入.copy()即可避免该报错提示 原代码&#xff1a; df5df4.drop_duplicates() print(df5.shape)df5[班型中文名称]df5[班型名称]-A print(df5.head()) 输出结果&#xff1a; 修改后代码&#xff1a; df5df4.drop_duplicates().copy() print(df5.shape)df5[班型中文名称]df…

通过 Higress Wasm 插件 3 倍性能实现 Spring-cloud-gateway 功能

作者&#xff1a;韦鑫&#xff0c;Higress Committer&#xff0c;来自南京航空航天大学分布式系统实验室 导读&#xff1a;本文将和大家一同回顾 Spring Cloud Gateway 是如何满足 HTTP 请求/响应转换需求场景的&#xff0c;并为大家介绍在这种场景下使用 Higress 云原生网关的…

一个屌丝程序员的分享

目录 闲扯 关于chatgpt的看法 关于学习工作之外的事情 关于提升自我&#xff0c;避免内耗的事情 写在最后 闲扯 现在是2023.11.8日晚上10.37分&#xff0c;刚结束完今天的任务&#xff0c;今天过的很累&#xff0c;今年过的很快&#xff0c;今年基本过的也很不如意&#x…

不常用但是必会的Ubuntu 关机命令

文章目录 shutdown语法shutdown命令用法shutdown -h扩展参数消息参数shutdown 关机流程shutdown -H 关机流程shutdown -P关机流程 shutdown命令特别提醒推荐阅读 对于常年保持在线服务的服务器系统&#xff0c;通常关机指令不会用到&#xff0c;即便有需要用到&#xff0c;也是…