当前位置: 首页 > news >正文

Java---JavaSpringMVC解析(1)

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

MVC"

1.MVC

MVC是Model View Controller的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分

为模型、视图和控制器三个基本部分

其中:

View:用于界面显示,进行人机交互,展示数据

Controller:分配资源的分用器,用于处理判断视图传来的请求应该用哪个模型解决,以及处理后的响应应该发给哪个视图

Model:是应用程序的主体部分,⽤来处理程序中数据逻辑的部分

用生活中的例子说:

View:服务员,用于与客户顾客交互的角色

Controller:前台,处理服务员从顾客那里拿来的菜单应该给哪个厨师

Model:厨师,真正做菜的角色

2.Spring MVC

 那么Spring实现MVC后有什么改变呢?下图可能展示的更准确

既然是 Web 框架, 那么当⽤⼾在浏览器中输⼊了 url 之后,我们的 Spring MVC 项⽬就可以感知到⽤户的请求, 并给予响应。

主要分以下三个⽅⾯:

1. 建⽴连接:将用户(浏览器)和 Java 程序连接起来,也就是访问⼀个地址能够调⽤到我们的Spring 程序。

2. 请求: 用户请求的时候会带⼀些参数,在程序中要想办法获取到参数, 所以请求这块主要是 获取参数的功能.

3. 响应: 执行了业务逻辑之后,要把程序执行的结果返回给用户, 也就是响应

2.1建立连接 

在 Spring MVC 中使⽤ @RequestMapping 来实现 URL 路由映射 ,也就是浏览器连接程序的作⽤

创建一个HelloController程序,实现用户通过浏览器和程序的交互

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
    @RequestMapping("/Hello")
    public String hello() {
        System.out.println("Hello Spring MVC");
        return "Hello Spring MVC!!";
    }

}

启动程序后,接下来在浏览器访问: http://127.0.0.1:8080/Hello, 就可以看到程序返回的数据了

2.1.1@RequestMapping作用

@RequestMapping用与注册接⼝的路由映射的

表示当路径/Hello接收到请求时,就会调用hello()方法

路由映射:当用户输入url访问服务时,将用户请求定位再某个类的某个方法的过程就是路由映射

既然 @RequestMapping 已经可以达到我们的⽬的了, 我们为什么还要加 @RestController呢?

我们把 @RestController 去掉, 再来访问⼀次

 程序报了404错误,显示找不到界面

Spring会对所有的类进⾏扫描, 如果类加了注解@RestController, Spring才会去看这个类⾥⾯的⽅法有没有加 @RequestMapping 这个注解

2.1.2@RequestMapping使用

@RequestMapping 既可修饰类,也可以修饰⽅法 ,当修饰类和⽅法时,访问的地址是类路径 + ⽅法路径.

@RequestMapping标识⼀个类:设置映射请求的请求路径的初始信息

@RequestMapping标识⼀个⽅法:设置映射请求请求路径的具体信息

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/r1")
@RestController
public class HelloController {
    @RequestMapping("/Hello")
    public String hello() {
        System.out.println("Hello Spring MVC");
        return "Hello Spring MVC!!";
    }
}

 访问地址:127.0.0.1:8080/r1/Hello

注意:
@RequestMapping 的URL 路径最前⾯加不加 / (斜杠)都可以, Spring程序启动时, 会进⾏判断, 如果前⾯没有加 / , Spring会拼接上⼀个 /

2.1.3@RequestMapping是Get请求还是Post请求

我们通过创造from表单构建请求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <form action="/r1/Hello" method="post">
        <input type="submit" value="提交">
    </form>
</body>
</html>

放在static包中

访问⽅式为:http://127.0.0.1:8080/test.htm

如果有多层目录,访问链接从static目录开始

 

如上图, 访问链接为: http://127.0.0.1:8080/html/test.html  

 

点击提交后跳转到 :http://127.0.0.1:8080/r1/Hello

可以通过@RequestMapping指定GET/POST⽅法类型

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/r1")
@RestController
public class HelloController {
    @RequestMapping(value = "/Hello",method = RequestMethod.POST)
    public String hello() {
        System.out.println("Hello Spring MVC");
        return "Hello Spring MVC!!";
    }
}

 

相关文章:

  • 【eNSP实战】配置NAPT(含动态NAT)
  • Java入职篇(2)——开发流程以及专业术语
  • 【C++项目】从零实现RPC框架「二」:项⽬设计
  • C++之文字修仙小游戏
  • 原理-事件循环
  • 数据炼丹与硬件互动:预测湿度的武学之道
  • 数据结构--图的基本操作
  • 系统稳定性建设
  • WVP前后端部署
  • WebSocket 使用教程:从原理到实践
  • 硬件驱动——51单片机:独立按键、中断、定时器/计数器
  • LinuX---压缩和解压类
  • stable-diffusion-webui-docker 构建 comfy-ui
  • 【极光 Orbit·STC8AH】04. 深度探索 GPIO 底层逻辑
  • clickhouse网络安全日志 网络安全日志保存时间
  • Python第四章07:continue 和 break 关键字控制循环 ( 中断与终止)
  • 前端存储-indexdb封装:dexie.js的使用
  • 从 YOLOv1 到 YOLOv2:目标检测的进化之路
  • 深度学习正则化技术之权重衰减法、暂退法(通俗易懂版)
  • 【RISCV LAB】0x01-安装实验仿真辅助工具
  • 前四月国家铁路发送货物12.99亿吨,同比增长3.6%
  • 广东缉捕1名象牙走私潜逃非洲“红通”逃犯
  • 中国驻美大使:远离故土的子弹库帛书正随民族复兴踏上归途
  • 新任重庆市垫江县委副书记刘振已任县政府党组书记
  • 上海:到2027年,实现近海航线及重点海域5G网络高质量覆盖
  • 经济日报评外卖平台被约谈:行业竞争不能背离服务本质