【Java EE进阶 --- SpringBoot】Spring Web MVC(Spring MVC)

javaweb、spring、springmvc和springboot有什么区别,都是做什么用的? 那这时候有些靓仔就要问了,那你既然是HTML页面,那为啥不直接给浏览器运行呢?为啥还非要Java服务器,把解析好的HTML返回给浏览器显示呢? 阅读详情

乐观学习,乐观生活,才能不断前进啊!!!

我的主页:optimistic_chen

我的专栏:c语言 ,Java,
Java EE初阶, Java数据结构

欢迎大家访问~
创作不易,大佬们点赞鼓励下吧~

什么是Sping Web MVC

MVC

MVC是Model View Controller的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分

在这里插入图片描述

Spring MVC

Spring Web MVC是基于Servlet API构建的原始 Web 框架 ,从⼀开始就包含在Spring框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-web mvc),但它通常被称为"Spring MVC"。

MVC是⼀种架构设计模式,也是⼀种思想, ⽽SpringMVC是对MVC思想的具体实现.除此之外,Spring MVC还是⼀个Web框架.也就是说:Spring MVC是⼀个实现了MVC模式的Web框架.

那么上篇博客写的SpringBoot和这个Spring Web MVC之间由什么关系吗?
我们知道SpringBoot是一个便捷的开发框架,在创建SpringBoot项目时,选择的Spring Web就是Spring MVC。
在这里插入图片描述
总结: Spring Boot 只是实现SpringMVC的其中⼀种⽅式⽽已。Spring Boot 可以添加很多依赖,借助这些依赖实现不同的功能.SpringBoot通过添加Spring Web MVC框架,来实现web功能

在这里插入图片描述

Servlet

既然是Web框架,那么只要在浏览器中输入url后,Spring MVC项目就能感知到请求,并响应。所以Web就可以调用Servlet来与浏览器交互。
在这里插入图片描述
上图是Servlet的官方解释,我们通俗理解 Servlet 是客户端和服务端交互的工具,是⼀种实现动态⻚⾯的技术。准确来讲Servlet是一套Java Web开发的规范,实现这个规范的产品包括:Tomcat、Weblogic、Jetty、Jboss、WebSphere等,抽象认为是"Servlet 容器"。

使用Spring MVC

目的就是使用如何通过浏览器和⽤⼾程序进⾏交互。

  1. 建⽴连接:将⽤⼾(浏览器)和Java程序连接起来,也就是访问⼀个地址能够调⽤到我们的Spring 程序。
  2. 请求:⽤⼾请求的时候会带⼀些参数,在程序中要想办法获取到参数,所以请求这块主要是获取参数的功能.
  3. 响应:执⾏了业务逻辑之后,要把程序执⾏的结果返回给⽤⼾,也就是响应

因为Spring Boot 只是实现Spring MVC的其中⼀种⽅式,所以目前Spring MVC项⽬创建和SpringBoot创建项⽬相同,在创建的时候选择SpringWeb就相当于创建了Spring MVC的项⽬.
在这里插入图片描述

建立连接

在Spring MVC中使用 @RequestMapping 注解来实现URL路由映射,连接浏览器和程序

路由映射:所谓的路由映射指的是,当⽤户访问⼀个 url 时,将⽤户的请求对应到程序中某个类的某个⽅法的过程就叫路由映射

import org.springframework.web.bind.annotation.*;

@RequestMapping("/hello")//类路径
@RestController
public class HelloController {
    //既支持get又支持post
    @RequestMapping("/hello")//方法路径
    public String  hello(){
        return "hello spring boot";
    }

@RequestMapping 是Spring Web MVC最常用的注解之一,用来注册接口的路由映射的。
@RestController Spring会对所有的类进⾏扫描,如果类加了注解@RestController,Spring才会去看这个类⾥⾯的⽅法有没有加@RequestMapping 。相当于程序的入口。

运行程序后,通过浏览器访问就可以看到数据了。
在这里插入图片描述
在之前网络知识学习中,fiddler抓包抓到的数据,报头有GET也有POST,表示了此次请求的类型是GET请求还是POST请求。
首先,@RequestMapping 既⽀持Get请求,⼜⽀持Post请求,那么我们能否指定GET或者POST类型呢?

import org.springframework.web.bind.annotation.*;

@RequestMapping("/hello")
@RestController
public class HelloController {
    //既支持get又支持post
    @RequestMapping("/hello")
    public String  hello(){
        return "hello spring boot";
    }

    @RequestMapping(value="/hello2",method = RequestMethod.GET)
    public String hello2(){
        return "hello spring boot2";
    }

    @RequestMapping(value="/hello3",method = RequestMethod.POST)
    public String hello3(){
        return "hello spring boot3";
    }

    @GetMapping("/hello4")
    public String hello4(){
        return "hello spring boot4";
    }

    @PostMapping("/hello5")
    public String hello5(){
        return "hello spring boot5";
    }
}

一般直接使用@GetMapping 或者 @PostMapping注解即可。
那么我们测试后端方法时,是不是只能通过浏览器去测试呢?又如何测试Post呢?
我使用专业的接口测试工具—Postman,具体的使用方法就需要大家去自己接触了,我这里不阐述了。

请求

访问不同的路径,就是发送不同的请求.在发送请求时,可能会带⼀些参数,所以学习Spring的请求,主要是学习如何传递参数到后端以及后端如何接收.

传递单个参数

import org.springframework.web.bind.annotation.*;

@RequestMapping("/request")
@RestController
public class RequestController {
    @RequestMapping("/r1")
    public String r1(String keyword){
        return "接受参数"+keyword;
    }
}

在这里插入图片描述
如果参数不一致,是获取不到参数的。

传递多个参数

和接收单个参数⼀样,直接使⽤⽅法的参数接收即可.使⽤多个形参

import org.springframework.web.bind.annotation.*;

@RequestMapping("/request")
@RestController
public class RequestController {
    @RequestMapping("/r2")
    public String r1(String userName,String password){
        return "接受参数:"+userName+",password:"+password;
    }
}

在这里插入图片描述
当有多个参数时,前后端进⾏参数匹配时,是以参数的名称进⾏匹配的,因此参数的位置是不影响后端获取参数的结果

传递对象

如果方法需要很多参数,并且后续每增加一个参数都需要修改方法声明,我们可以把这些参数封装成一个对象。

//UserInfo对象
public class UserInfo {
    private String name;

    private Integer gender;

    private Integer age;
    public UserInfo(){

    }

    public UserInfo(String name, Integer gender, Integer age) {
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "name='" + name + '\'' +
                ", gender=" + gender +
                ", age=" + age +
                '}';
    }
}
import org.springframework.web.bind.annotation.*;

@RequestMapping("/request")
@RestController
public class RequestController {
    @RequestMapping("/m1")
    public Object method(UserInfo userInfo){
        return userInfo.toString();
    }
}

在这里插入图片描述

后端参数重命名(绑定)

特殊情况下,前端传递的参数和后端接收的参数不一致,这种情况可以使用@RequestParam 注解来重命名前后端的参数。

import org.springframework.web.bind.annotation.*;

@RequestMapping("/request")
@RestController
public class RequestController {
@RequestMapping("/r4")
    public String r4(@RequestParam("q")String keyword){
        return "接收参数:keyword"+keyword;
    }
}

在这里插入图片描述

  1. 使⽤@RequestParam 进⾏参数重命名时, 请求参数只能和@RequestParam 声明的名称一致,才能进⾏参数绑定和赋值.
  2. 使⽤@RequestParam 进⾏参数重命名时,参数就变成了必传参数

去查看@RequestParam 的实现可以发现required的默认值是true,表示该注解修饰的参数默认为必传参数,那么我们就可以通过设置@RequestParam 中required=false来避免必传参数。
在这里插入图片描述

传递数组

import org.springframework.web.bind.annotation.*;

@RequestMapping("/request")
@RestController
public class RequestController {
@RequestMapping("/r5")
    public String r5(String[] arr){
        return "接收参数:"+ Arrays.toString(arr);
    }
}

在这里插入图片描述

传递集合

import org.springframework.web.bind.annotation.*;

@RequestMapping("/request")
@RestController
public class RequestController {
@RequestMapping("/r6")
    public String r6(@RequestParam List<Integer> list){//参数绑定
        return "接收参数:list="+ list;
    }
}

在这里插入图片描述

传递JSON数据

JSON:JavaScript Object Notation 【JavaScript 对象表⽰法】
简单来说:JSON就是⼀种数据格式, 有⾃⼰的格式和语法,使⽤⽂本表⽰⼀个对象或数组的信息,因此JSON本质是字符串. 主要负责在不同的语⾔中数据传递和交换

JSON的语法:
1. 数据在键值对(Key/Value)中
2. 数据由逗号分隔
3. 对象用 {} 表示
4. 数组用 [] 表示
5. 值可以为对象,也可以为数组,数组中可以包含多个对象

优点:

  1. 语法简单,易于理解和编写,可以快速的进行数据交换
  2. 跨平台支持, JSON可以被多种编程语⾔解析和⽣成可以在不同的平台和语⾔之间进⾏数据交换和
    传输
  3. 轻量级:相较于XML格式,JSON数据格式更加轻量级,传输数据时占⽤带宽较⼩,可以提⾼数据传输速度
  4. 易于扩展: JSON的数据结构灵活,⽀持嵌套对象和数组等复杂的数据结构,便于扩展和使⽤
  5. 安全性:JSON数据格式是⼀种纯⽂本格式,不包含可执⾏代码,不会执⾏恶意代码,因此具有较⾼的安全性

JSON在Web应⽤程序中被⼴泛使⽤,如前后端数据交互、API接⼝数据传输等

JSON字符串与Java对象互转:

public class JSONUtils {
    private static ObjectMapper objectMapper = new ObjectMapper();
    public static void main(String[] args) throws JsonProcessingException {
        Person person = new Person();
        person.setId(5);
        person.setName("zhangsan");
        person.setPassword("123456");
        
        //对象转为JSON字符串
        String jsonStr = objectMapper.writeValueAsString(person);
        System.out.println("JSON字符串为:"+jsonStr);
        
        //JSON字符串转为对象
        Person p = objectMapper.readValue(jsonStr,Person.class);
        System.out.println("转换的对象id:"+p.getId()+",name:"+p.getName()+",password:"+p.getPassword());
    }
}

writeValueAsString: 把对象转为JSON字符串
readValue: 把字符串转为对象

传递JSON对象

import org.springframework.web.bind.annotation.*;

@RequestMapping("/request")
@RestController
public class RequestController {
@RequestMapping("/r7")
    public String r7(@RequestBody UserInfo userInfo){
        return userInfo.toString();
    }
}

@RequestBody 请求正文,这个注解作⽤在请求正⽂的数据绑定,请求参数必须在写在请求正⽂中
在这里插入图片描述
抓包看到,请求参数类型为json
在这里插入图片描述

获取URL中参数@PathVariable

import org.springframework.web.bind.annotation.*;

@RequestMapping("/request")
@RestController
public class RequestController {
@RequestMapping("/article/{articleId}")
    public String r8(@PathVariable("articleId") Integer article){
        return "获取文章ID:"+article;
    }
}

如果⽅法参数名称和需要绑定的URL中的变量名称不⼀致时,需要@PathVariable的属性value赋值
在这里插入图片描述

上传文件@RequestPart

@RequestMapping("/m9")
    public String getfile(@RequestPart("file") MultipartFile file) throws IOException {
        //获取⽂件名称
        String fileName = file.getOriginalFilename();
        
        //⽂件上传到指定路径
        file.transferTo(new File("D:/temp/" + file.getOriginalFilename()));
        return " 接收到⽂件名称: "+fileName;
    }
}

获取Cookie/Session

这里需要我们对网络由一定了解,具体可以去看看我的博客:【Java EE初阶 — 网络原理】应用层—HTTP(HTTPS)协议

Session(会话):计算机领域中,会话是⼀个客⼾与服务器之间的不中断的请求响应。
服务器同⼀时刻收到的请求是很多的.服务器需要清楚的区分每个请求是属于哪个⽤⼾,也就是属于哪个会话,就需要在服务器这边记录每个会话以及与⽤⼾的信息的对应关系.
Session是服务器为了保存⽤⼾信息⽽创建的⼀个特殊的对象
整个过程:

  1. 当用户登录时,服务器在Session中新增一个记录,并把sessionId返回给客户(通过
    HTTP响应中的Set-Cookie字段返回)
  2. 客户端再发送请求时,需要在请求中带上sessionId((通过HTTP请求中的
    Cookie 字段带上)
  3. 服务器收到请求之后,根据请求中的sessionId在Session信息中获取到对应的⽤⼾信息,再进⾏后续操作.找不到则重新创建Session,并把SessionID返回

Cookie和Session的区别:
• Cookie是
客⼾端
保存⽤⼾信息的⼀种机制.Session是服务器端保存⽤⼾信息的⼀种机制.
• Cookie和Session之间主要是通过
SessionId关联起来的,SessionId是Cookie和Session之间的桥梁
• Cookie和Session经常会在⼀起配合使⽤.但是不是必须配合
**

@RequestMapping("/request")
@RestController
public class RequestController {
    @RequestMapping("/r10")
    public String r10(HttpServletRequest request, HttpServletResponse response){
        Cookie[] cookies=request.getCookies();
        if(cookies!=null){
            for(Cookie cookie:cookies){
                System.out.println(cookie.getName()+":"+cookie.getValue());
            }
        }
        return "返回cookie成功";
    }
}

Spring MVC是基于ServletAPI构建的原始Web框架,也是在Servlet的基础上实现的,所以HttpServletRequest , HttpServletResponse 两个类是Servlet提供的,是Spring MVC⽅法的内置对象.需要时直接在⽅法中添加声明即可

在这里插入图片描述

Session存储

@RequestMapping("/setSession")
    public String setSession(HttpServletRequest request){
        //从cookie中获取sessionId,根据sessionId获取session对象
        HttpSession session=request.getSession(true);
        //默认存在内存
        session.setAttribute("userName","zhangsan");
        session.setAttribute("age",10);
        return "设置session成功";
    }

Session读取

@RequestMapping("/getSession")
    public String getSession(HttpServletRequest request){
        //从cookie中获取sessionId, 根据sessionId 获取Session对象
        HttpSession session = request.getSession(false);
        //如果用户登录, session 有值, 未登录, session为null
        if (session==null){
            return "用户未登录";
        }else {
            //从session中获取登录用户的信息
            String userName = (String)session.getAttribute("userName");
            return "登录用户为: " + userName;
        }
    }
@RequestMapping("/getSession2")
    public String getSession2(HttpSession session){
        //从session中获取登录用户的信息
        String userName = (String)session.getAttribute("userName");
        return "登录用户为: " + userName;
    }
@RequestMapping("/getSession3")
    public String getSession3(@SessionAttribute("userName") String userName){
            return "登录用户为:"+userName;
    }

三种获取方法皆可。

获取Header

//使用Selvert获取Header
@RequestMapping("/getHeader")
    public String getHeader(HttpServletRequest request){
        String userAgent=request.getHeader("User-Agent");
        return "从header中获取userAgent"+userAgent;
    }
//使用RequestHeader注解获取Header
@RequestMapping("/getHeader2")
    public String getHeader2(@RequestHeader ("user-Agent")String userAgent){
        return "从header中获取userAgent"+userAgent;
    }

在这里插入图片描述

完结

点一个免费的赞并收藏起来~
点点关注,避免找不到我~
我的主页:optimistic_chen我们下期不见不散 ~ ~ ~

一篇文章理清 Spring MVC、Spring Boot、Java EE、JPA、MyBatis、Java Bean—— 快速掌握 Java 企业开发核心技术栈 学习曲线 | 较陡峭(需理解缓存、延迟加载)| 较平缓 || SQL 控制 | 自动生成 SQL,可定制但复杂 | 手动编写 SQL,灵活精确 |贯穿于所有框架中(如 Spring 管理的对象、MyBatis 映射的实体)需搭配应用服务器(如 Tomcat、WildFly)运行。(最流行)、EclipseLink、OpenJPA。:解析视图(如 JSP、Thymeleaf)。 阅读详情

相关推荐

Tomcat 与 Spring Boot、Spring MVC

Tomcat是Java生态中广泛使用的开源Web服务器,作为Servlet容器负责运行Java Web应用,将代码转化为可访问的服务。它支持Servlet和JSP规范,适合中小型项目。SpringBoot通过内嵌Tomcat简化了部署流程,并自动配置DispatcherServlet作为前端控制器,开发者无需直接处理Servlet。SpringMVC是专注于Web层的框架,而SpringBoot是整合了SpringMVC等组件的快速开发工具。

liangshuangeryue的博客 3647

Spring Boot 中的 WebMvc 是什么,原理,如何使用

在本文中,我们介绍了 Spring Boot 中的 WebMvc 是什么,其原理以及如何使用它来处理 Web 请求。WebMvc 是一个非常重要的模块,它提供了一系列用于处理 Web 请求的组件和工具。通过掌握 WebMvc 的原理和使用方法,开发者可以更加方便和快速地开发 Web 应用程序。

Java徐师兄的博客 1064

Java EE企业级Web应用开发:三大框架实战指南

Java EE(Java Platform, Enterprise Edition)是Java在企业级应用领域中的一种标准化平台。它提供了一系列的技术和服务,以支持企业应用程序的构建、部署和运行。Java EE的核心组件包括Web组件、企业Bean组件以及客户端组件,而这些组件都构建在Java Servlet、JavaServer Pages(JSP)、JavaServer Faces(JSF)、Java Persistence API(JPA)等技术之上。

weixin_29840475的博客 893

Spring Boot配置WebMvc

SpringBoot 抛弃了传统 xml 配置文件,SpringBoot 2.0 后,通过配置类(标注 @Configuration注解的类,相当于一个 xml 配置文件)以 JavaBean 形式进行相关配置。 SpringBoot对Spring MVC的会进行自动配置,这些默认的配置可以满足我们的大部分需求,但是我们对Spring MVC有时往往会有一些自己的需求定制。 我们也可以通过自定义配置类(标注 @Configuration注解 的类)并实现 WebMvcConfigurer 接口来定制 S.

weixin_50216991的博客 1773

嵌入式学习的书单推荐

以上是一些优秀的嵌入式学习书单推荐。选择适合自己的学习材料对于学习嵌入式系统非常重要。每一本书籍都有其独特的优势和特点,读者可以根据自己的学习目标和兴趣选择合适的书籍。同时,我们也要注意不断实践和探索,结合实际项目和项目经验,不断提升自己的嵌入式技术水平。希望本文的推荐能够帮助大家在嵌入式学习的道路上取得更好的成果。

新程序圆 1979

第一篇:常见CAN错误帧及其排查方向

在本文中主要阐述各类错误帧的形成原因以及在使用同星硬件设备出现错误帧时,应当 如何进行排查并消除错误帧。在 CAN 总线通信中,通常遇见的错误帧主要为以下五种,其 分别是:bit error、ACK error、stuff error、CRC error 以及 form error。

u013089100的博客 1742

SpringBoot Web开发(SpringMVC)

使用默认的路径匹配规则,是由提供的如果路径中间需要有\**,替换成ant风格路径# 改变路径匹配策略:# ant_path_matcher 老版策略;# path_pattern_parser 新版策略;翻阅接口笔记。一直往下进到。找到方法。这里就是静态资源规则源码静态资源访问路径默认规则照着一直往下点可以知道怎么利用 配置文件 自定义这个规则# 重新设置静态资源访问路径# 从以上图片可以看出前缀是 spring.mvc 后缀是 staticPathPattern#会覆盖默认规则。

qq_50249256的博客 1800

软考软件评测师备考避坑指南:过来人告诉你这5个章节最容易丢分(附2024最新考纲解析)

本文为软考软件评测师考生提供备考避坑指南,深度解析5个高频失分章节,包括标准化与信息化基础、中间件技术、软件测试模型、白盒测试覆盖准则和性能测试指标。文章结合2024最新考纲,分享实战技巧和记忆口诀,帮助考生精准打击失分重灾区,提升备考效率。

weixin_29223603的博客 467

Spring Boot 整合 Spring MVC /(整合Web)笔记

/ 接收形如?codes=20230201,20230202的参数可以通过返回自定义的 HTTP 状态码和响应体。// 返回 404// 返回 200 和用户数据JSON 数据:通过或返回。视图:通过返回视图名称或对象。文件:通过或返回文件内容。重定向:通过前缀实现重定向。自定义响应:通过返回自定义状态码和响应体。纯文本:直接返回字符串。XML 数据:通过设置produces属性返回 XML 格式数据。二进制数据:返回字节数组或Resource对象。

m0_65324703的博客 1452

2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)

软考高级考试包含三个科目:信息系统综合知识、系统架构设计案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。由于机考时题目顺序是打乱的,本文题目所标序号只为区分不代表实际顺序。综合知识。

一几文的编程学习笔记。 9278

SNAP计算哨兵2号的LAI/FVC/FAPAR

SNAP的计算LAI方法是基于PROSAIL模型,集成的模块,很方便。首先要下载SNAP软件,下载步骤见。

所有专家都曾始于新手 2505

【Java EE进阶 --- SpringBoot】Spring Web MVC(Spring MVC)(二)

乐观学习,乐观生活,才能不断前进啊!!!欢迎大家访问~

optimistic_chen的博客 1294

深入剖析 Wenet 下 AISHELL-1 的 run.sh 脚本:从数据准备到模型训练

run.sh脚本用于处理 AISHELL-1 数据集的整个训练和测试流程。我们将逐步分析脚本中的每个部分,包括环境变量、参数设置、各个阶段的执行等。stage: 设置脚本的起始阶段(如数据准备)。stop_stage: 设置脚本的结束阶段。通过对 Wenet 下 AISHELL-1 的run.sh脚本的详细剖析,我们希望你能更好地理解每个步骤的功能及其背后的原理。此脚本不仅为模型训练提供了便利,也为用户自定义和扩展训练流程提供了基础。希望本教程能帮助你顺利完成语音识别项目!

帅小柏的博客 1632

【Java EE】初识Spring Web MVC

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在Spring框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为)Spring MVC).Servlet是⼀种实现动态⻚⾯的技术.准确来讲Servlet是⼀套Java Web 开发的规范,或者说是⼀套Java Web 开发的技术标准.

ZXT的博客 2078

dolphinscheduler-3.4.0

dolphinscheduler集群部署

docsz的博客 660

深度学习实战102-基于深度学习的网络入侵检测系统,利用各种AI模型和pytorch框架实现网络入侵检测

在明确了研究背景后,我们需要设定明确的项目目标。本项目的核心目标是开发一个高精度、低延迟的网络入侵检测系统检测准确率:达到95%以上,确保系统能够有效识别各类已知和未知的入侵行为。响应时间:控制在毫秒级范围内,以实现实时监测和快速响应。模型鲁棒性:在面对不同类型的网络环境和攻击手法时,系统需保持稳定的性能输出。可扩展性:系统设计需考虑未来可能面临的新型威胁,便于后续升级和维护。

微学AI的博客 1791

AI回答 | spring,springboot,spring MVC,servlet, spring web之间的联系与支持

向GPT提问:spring,springboot,spring MVC,servlet, spring web之间的联系与支持

你个无聊小demo的博客 1347

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java EE ----- Spring MVC (上)

从 0 到 1 认识 Spring MVC:核心思想与基本用法

双吉堡工程专业的一名27届Javaer。 1370

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[Spring] Spring Web MVC基础理论

Spring Web MVC是基于Servlet API构建的原始Web框架,从⼀开始就包在Spring框架中。它的正式名称“Spring Web MVC”来自其源模块的名称(Spring-webmvc),但它通常被称为"Spring MVC".总结来说,Spring Web MVC是一个Web框架.想要理解什么是Spring MVC我们首先先要理解什么是MVCMVC是Model View Controller的缩写,是软件工程中共的一种软件架构的设计模式.把软件系统分为模型,控制器,视图三个部分。

无需多言 7154

Spring, Spring MVC, Spring Boot 分别是什么?

Spring是Java EE的基础框架,提供IoC和AOP核心功能;Spring MVC是Spring的Web模块,实现MVC架构;Spring Boot则整合前两者,通过自动配置和starter依赖简化开发流程。三者呈现从基础框架到简化工具的演进关系:Spring提供核心能力,Spring MVC专注Web层,Spring Boot实现开箱即用的快速开发。这种演进不断降低开发复杂度,提高效率,使Spring Boot成为现代Java开发的主流选择。

weixin_42449750的博客 1175

【Java EE进阶 --- SpringBoot】Spring IoC

乐观学习,乐观生活,才能不断前进啊!!!欢迎大家访问~

optimistic_chen的博客 1611

【JavaEE】Spring Web MVC

官方文档介绍:翻译:Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从一开始就包含在 Spring 框架中。正式名称“Spring Web MVC”来自其源模块的名称 (spring-webmvc),但更常见的名称是“Spring MVC”。与 Spring Web MVC 并行,Spring Framework 5.0 引入了一个反应式堆栈 Web 框架,其名称“Spring WebFlux”也基于其源模块 (spring-webflux)。

web13595609705的博客 1321

Spring、Spring MVC 和 Spring Boot区别

Spring是一个IOC容器,用来管理Bean,使用依赖注入实现控制反转,可以很方便的整合各种框架,提供AOP机制弥补OOP的代码重复问题、更方便将不同类不同方法中的共同处理抽取成切面、自动注入给方法执行,比如日志、异常等Spring MVC是spring对web框架的一个解决方案,提供了一个总的前端控制器Servlet,用来接收请求,然后定义了一套路由策略(url到handle的映射)及适配执行handle,将handle结果使用视图解析技术生成视图展现给前端。

m0_74087113的博客 1334

初识Java EE和Spring Boot

maven简单来说就是一个项目管理工具,通过pom.xml文件配置获取jar包,不用手动去管理jar包。使用maven的目的是为了提高开发效率。Maven最核心的两个功能:项目构建,依赖管理。

m0_74304844的博客 1526

java ee进阶_JavaEE进阶 SpringBoot入门

Spring boot入门简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者的。在以前的sprin...

weixin_35174422的博客 357
上一篇: 【Java EE进阶 --- SpringBoot】初识Spring(创建SpringBoot项目)
下一篇: 【Java EE进阶 --- SpringBoot】Spring Web MVC(Spring MVC)(二)
Optimistic _ chen
博客等级 码龄3年 1553粉丝 127原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Optimistic _ chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值