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

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!!";
    }
}


http://www.kler.cn/a/591632.html

相关文章:

  • 【ES6】04-对象 + 类 + 模板字符串 + 解构 + 字符串
  • 贝叶斯分层回归(Bayesian Hierarchical Regression)是一种基于贝叶斯统计理论的数据分析方法
  • 【css酷炫效果】纯CSS实现虫洞穿越效果
  • 力扣128. 最长连续序列 || 452. 用最少数量的箭引爆气球
  • 如何使用 DeepEval 优化 Elasticsearch 中的 RAG 检索
  • 搭建主从服务器
  • pandas中excel自定义单元格颜色
  • 利用余弦相似度在大量文章中找出抄袭的文章
  • 深度学习框架PyTorch——从入门到精通(3)数据集和数据加载器
  • 3.5 Spring Boot邮件服务:从基础发送到模板邮件进阶
  • 国内首台太空采矿机器人亮相,宇宙资源开发迈入新阶段
  • 【Java/数据结构】ArrayList的实现及使用
  • 【linux】用SSH连接服务器进行通信
  • 北斗+多技术融合地面沉降监测:精准守护城市安全
  • 计算机网络的框架结构
  • Python+Django网页前后端rsp云端摄像头人数监控系统
  • Ubuntu连接到SSH(live server和desktop版本同样适用)适用于20-24各个版本
  • 基于ChatGPT、DeepSeek、GIS与Python机器学习的地质灾害风险评估、易发性分析、信息化建库及灾后重建
  • 设备管理VTY(Telnet、SSH)
  • Qt C++ 使用 LZ4 库压缩成 zip格式;使用 QuaZip 打包