SpringMVC (一)基础

ops/2025/3/13 17:55:36/

目录

SpringMVC

一 简单使用

1 新建模块选择指定参数

2 创建实现类

3 将项目启动

4 运行结果:在浏览器当中响应执行

二 RequestMapping

三 请求限定


SpringMVC

SpringMVC是Spring的web模块,用来开发Web应用,SpringMVC应用最终作为B/S,C/S模式下的Server端,Web应用的核心是处理HTTP响应。

Spring Web MVC 是构建在 Servlet API 上的原始 Web 框架,已被包含在内 在 Spring Framework 中。正式名称“Spring Web MVC”, 来自其源模块的名称 (spring-webmvc)、 但它更通常被称为 “Spring MVC”。

一 简单使用

1 新建模块选择指定参数

2 创建实现类

java">package org.example.spring04mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** - @Controller:* 标记类作为控制器,处理HTTP请求。* - @ResponseBody:* 标记方法返回的数据直接写入HTTP响应体中,无需额外的处理。* - @RequestMapping:* 标记方法为控制器处理请求的方法。*/
@Controller
public class helloController {@ResponseBody@RequestMapping("/hello")public String hello() {return "hello SpringMVC";}
}

@RestController 注解

  • 作用@RestController 是 Spring 4.0 引入的组合注解,相当于 @Controller + @ResponseBody

    • @Controller:标识该类为 Spring MVC 的控制器。

    • @ResponseBody:将方法的返回值直接写入 HTTP 响应体(通常是 JSON 或字符串),而不是跳转到视图页面。

java">//@ResponseBody
//@Controller@RestController
public class helloController {@RequestMapping("/hello")public String hello() {return "hello SpringMVC";}}

3 将项目启动

java">package org.example.spring04mvc;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;@SpringBootApplication
public class Spring04MvcApplication {public static void main(String[] args) {SpringApplication.run(Spring04MvcApplication.class, args);}
}

4 运行结果:在浏览器当中响应执行

补充修改端口:

二 RequestMapping

路径映射:将方法与路径进行绑定,访问指定路径就执行指定方法进行处理。

路径位置通配符:

优先级:精确匹配 > ?> * > **

*匹配任意多个字符
**匹配任意多层路径
匹配人以单个字符

三 请求限定

在Spring MVC中,请求限定(Request Mapping)是指通过特定的条件将HTTP请求映射到对应的控制器方法进行处理。主要通过@RequestMapping及其衍生注解实现,以下是部分的请求限定方式:

java">package org.example.spring04mvc.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestMappingControllerLimit {//请求方式@RequestMapping(value = "/limit", method = RequestMethod.DELETE)public String limit1() {return "limit1";}//请求参数@RequestMapping(value = "/limit2", params = {"name", "age=18"})public String limit2() {return "limit2";}//请求头@RequestMapping(value = "/limit3", headers = {"name"})public String limit3() {return "limit3";}//请求内容类型(下面举例表名浏览器必须携带json格式格式的数据)@RequestMapping(value = "/limit4", consumes = {"application/json"})public String limit4() {return "limit4";}//响应内容类型(下面举例浏览器只能接受json格式的数据)@RequestMapping(value = "/limit5", produces = "text/html;charset=utf-8")public String limit5() {return "<h2>limit5</h2>";}
}


http://www.ppmy.cn/ops/165467.html

相关文章

【git】补丁文件

项目中总有一些本地修改是既不能上传到远程分支又不能直接加入到.gitignore文件中的。 固然可以使用stash但它毕竟只是一种临时保存更改的机制&#xff0c;更适用于本地开发过程中需要频繁切换任务的场景。 如果想要共享代码更改&#xff0c;那还是补丁文件更合适一些。git d…

【C++指南】一文总结C++类和对象【下】

&#x1f31f; 各位看官好&#xff0c;我是egoist2023&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C类和对象的语法知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享…

Spring Boot 项目开发流程全解析

目录 引言 一、开发环境准备 二、创建项目 三、项目结构 四、开发业务逻辑 1.创建实体类&#xff1a; 2.创建数据访问层&#xff08;DAO&#xff09;&#xff1a; 3.创建服务层&#xff08;Service&#xff09;&#xff1a; 4.创建控制器层&#xff08;Controller&…

volatile 在 JVM 层面的实现机制

一、JVM 内存模型&#xff08;JMM&#xff09;与 volatile 的语义 Java 内存模型&#xff08;JMM&#xff09;定义了多线程环境下变量的访问规则&#xff0c;而 volatile 关键字通过以下两种语义实现线程安全&#xff1a; 可见性&#xff1a;对 volatile 变量的写操作会立即刷…

车载以太网测试-8【网络层】-IP协议路由协议

目录 1 摘要2 车载以太网网络层介绍2.1 IP协议&#xff08;Internet Protocol&#xff09;2.1.1 IP帧结构2.1.2 IP地址 2 路由协议2.1 静态路由2.2 动态路由 3 总结 1 摘要 车载以太网&#xff08;Automotive Ethernet&#xff09;是一种专门为汽车应用设计的以太网技术&#…

第七章:Qt 实践

第七章&#xff1a;Qt 实践 在深入了解 Qt 框架的各个模块之后&#xff0c;本章将通过几个实际案例&#xff0c;展示如何将 Qt 的强大功能应用于真实项目开发中。我们将结合界面设计、信号与槽机制、网络通信和数据处理等内容&#xff0c;探索 Qt 在桌面应用程序开发中的实际应…

力扣:3305.元音辅音字符串计数

给你一个字符串 word 和一个 非负 整数 k。 返回 word 的 子字符串 中&#xff0c;每个元音字母&#xff08;a、e、i、o、u&#xff09;至少 出现一次&#xff0c;并且 恰好 包含 k 个辅音字母的子字符串的总数。 示例 1&#xff1a; 输入&#xff1a;word "aeioqq"…

MySQL中IN关键字与EXIST关键字的比较

文章目录 **功能等价性分析****执行计划分析**&#xff1a; **1. EXISTS 的工作原理****步骤拆解**&#xff1a; **2. 为什么需要“利用索引快速定位”&#xff1f;****索引作用示例**&#xff1a; **3. 与 IN 子查询的对比****IN 的工作方式**&#xff1a;**关键差异**&#x…