Spring Web MVC入门(1)(建立连接)

一.什么是Spring Web MVC?

        Spring Web MVC是基于ServletAPI构建的原始Web框架,从一开始就包含在Spring框架中.它的正式名称"Spring Web MVC"来自其源模块的名称(Spring-webmvc),但它通常被称为"Spring MVC".

二.MVC的定义

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

       

          View(视图):指在应用程序中专门用来与浏览器进行交互,展示数据的资源

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

          Controller(控制器):可以理解为一个分发器,用来决定对于视图发来的请求,需要用哪一个模型来处理,以及处理完后需要跳回到哪一个视图.即用来连接视图和模型.

三.什么是Spring MVC?

     MVC是一种架构设计模式,也是一种思想,而Spring MVC是对MVC思想的具体实现.除此之外,Spring MVC还是一个Web框架.

总结来说,Spring MVC是一个实现了MVC模式的Web框架

四.学习Spring MVC

   既然是Web框架,那么当用户下浏览器中输入url之后,我们的Spring MVC项目就可以感知到用户的请求,并给予响应.

  学习Spring MVC,重点也就是学习如何通过浏览器和用户程序进行交互.

主要分以下三个方面:

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

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

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

1.建立连接

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

创建一个UserController类,实现用户通过浏览器和程序的交互,具体实现代码如下:

package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    //路由器规则注册
    @RequestMapping("/sayHi")
    public String sayHi() {
        return "hello Spring MVC";
    }
}

方法名和路径名称无需一致

接下来访问: http://127.0.0.1:8080/sayHi ,就可以返回数据了

(1).@RequestMapping 注解介绍

@RequestMapping是Spring Web MVC应用程序中最常被用到的注解之一,它是用来注册接口的路由映射的.

表示服务器收到请求时,路径为/sayHi的请求就会调用sayHi这个方法的代码.

路由映射: 当用户访问一个URL时,将用户的请求对应到程序中某个类的方法的过程就叫路由映射.

(2).@RequestMapping 使用

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

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

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

@RequestMapping("/User")
@RestController
public class UserController {
    @RequestMapping("/sayHi")
    public String sayHi() {
        return "hello Spring MVC";
    }
}

访问地址: http://127.0.0.1:8080/User/sayHi

注意: @RequestMapping 的URL路径最前面加不加/都可以,Spring程序启动时,会进行判断,如果前面没加/,Spring会拼接上一个/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(三)

在之前的两篇文章中(文末往期回顾中可查看),我们主要介绍了功能模型接口FMI的主要组成部分和一些使用场景,今天就以康谋自动驾驶仿真软件aiSim为例,来展示一下如何建立一个FMU并实现基于UDP和FMI联合仿真(c…

【数智化CIO展】鲁泰建材CIO张兵:全力投入,发现需求,是数智化转型的第一步...

张兵 本文由鲁泰建材CIO张兵投递并参与由数据猿联合上海大数据联盟共同推出的《2024中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业:数睿数据 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着全球经济的持续发展和科技的不断进步,数字化转型…

基于JavaSpringBoot+Vue+uniapp微信小程序校园宿舍管理系统设计与实现(论文7000字参考+源码+LW+部署讲解)

博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…

【STM32学习】stm32cubemx基础配置,点亮/闪烁一个LED灯

1、cubemx开始 打开cubemx,在help栏中,点击,选择安装你所需要的stm32芯片版本, 打开后,选择你所配置的芯片型号,如我配置的是stm32f4系列,勾选,点击Install。 安装好后,…

E. Beautiful Array(cf954div3)

题意:给定一个数组,可以先对数组进行任意排序,每次操作可以选择一个ai,将它变成aik, 想让这个数组变成一个美丽数组(回文数组),求最少操作次数 分析: 先找出相同的数字…

STM32 - PWR 笔记

PWR(Power Control)电源控制 PWR 负责管理 STM32 内部的电源供电部分,可以实现 可编程电压监测器 和 低功耗模式 的功能 可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上升到PVD…

Apache Flink 运行时架构

Flink 运行时架构 Flink整个系统由两个主要部分组成JobManager和TaskManager,Flink架构也遵循Master-Slave架构设计原则,JobManager为Master节点,TaskManager为worker(Slave)节点,所有组件之间通讯都是借助…

项目进度管理(5-1)常见的缓冲区监控方法

缓冲区监控是一种项目管理技术,主要用于关键链项目管理系统(Critical Chain Project Management, CCPM)中。它的核心理念是识别和管理项目中的不确定性和依赖性,以提高项目完成的可靠性。 缓冲区监控方法主要是针对项目进度计划执…

【ChatGPT 消费者偏好】第二弹:ChatGPT在日常生活中的使用—推文分享—2024-07-10

今天的推文主题还是【ChatGPT & 消费者偏好】 第一篇:哪些动机因素和技术特征的组合能够导致ChatGPT用户中高和低的持续使用意图。第二篇:用户对ChatGPT的互动性、性能期望、努力期望以及社会影响如何影响他们继续使用这些大型语言模型的意向&#x…

OpenCV中使用Canny算法在图像中查找边缘

操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 算法描述 Canny算法是一种广泛应用于计算机视觉和图像处理领域中的边缘检测算法。它由John F. Canny在1986年提出,旨在寻找给定噪声条件下的最佳边…

Elasticsearch:使用 Filebeat 从 Node.js Web 应用程序提取日志

本指南演示了如何从 Node.js Web 应用程序中提取日志并将其安全地传送到 Elasticsearch Service 部署中。你将设置 Filebeat 来监控具有标准 Elastic Common Schema (ECS) 格式字段的 JSON 结构日志文件,然后在向 Node.js 服务器发出请求时,你将在 Kiban…

three-tile: 1. 第一个three-tile程序

上篇介绍了:three-tile: 一个开源的轻量级三维瓦片库-CSDN博客 three-tile 是一个开源的轻量级三维瓦片库,它基于threejs使用typescript开发,提供一个三维地形模型,能轻松给你的应用增加三维瓦片地图。 项目地址&…

Spark-RDD和共享变量

概览 每个Spark应用程序都由一个driver program 组成,该驱动程序运行我们编写的main函数,并在集群上执行各种 并行 操作。Spark提供的主要抽象是一个 弹性分布式数据集(RDD),它是一个跨集群节点分区的元素集合&#x…

maven7——(重要,构建项目)maven项目构建(命令)

Maven的常用命令管理项目的生命周期 clean命令 清除编译产生的target文件夹内容,可以配合相应命令在cmd中使用,如mvn clean package, mvn clean test D:\工作\公司培训-4班\day20\day20\untitled1>mvn clean compile命令 该命令可以…

Nginx: Rewrite功能配置/Nginx反向代理/Nginx的安全控制SSL

Rewrite功能配置 Rewrite是Nginx服务器提供的一个重要基本功能,是Web服务器产品中几乎必备的功能。主要的作用是用来实现URL的重写。www.jd.com 注意:Nginx服务器的Rewrite功能的实现依赖于PCRE的支持,因此在编译安装Nginx服务器之前,需要安…

[ICS] Inferno(地狱) ETH/IP未授权访问,远程控制工控设备利用工具

项目地址:https://github.com/MartinxMax/Inferno Inferno $ ./Install.sh $ python Inferno.py -h 模拟服务端 $ sudo python3 -m pip install --upgrade cpppo $ $ python -m cpppo.server.enip SCADAINT[1000] ADMININT[2] -v 创建一个EtherNet/IP设备 扫描设备 $ pyth…

【网络安全】Oracle:SSRF获取元数据

未经许可,不得转载。 文章目录 前言正文漏洞利用 前言 Acme 是一家广受欢迎的播客托管公司,拥有庞大的客户群体。与许多大型运营公司一样,Acme 采用了Apiary的服务,使用户能够安全高效地管理他们的播客。 Apiary 于2017年初被Or…

【Django项目】基于Python+Django+MySQL的音乐网站系统项目

功能介绍 首页:歌曲分类、歌曲搜索、热门歌曲、热门下载、新歌推荐 歌曲排行:歌曲分类、分页功能 用户板块:用户登陆/注册、播放历史 歌曲详情:歌曲播放、当前播放列表、歌曲点评、歌曲播放插件、下载歌曲 系统后台:歌…

如何将Docker镜像源更改为阿里云的镜像加速地址

在使用Docker时,尤其是在国内环境下,由于网络原因,从Docker Hub拉取镜像可能会遇到速度较慢的问题。为了提高拉取速度,我们可以将Docker的镜像源更改为阿里云等国内镜像源。下面详细介绍如何获取并配置阿里云的Docker镜像加速地址…

【中项第三版】系统集成项目管理工程师 | 第 4 章 信息系统架构⑤ | 4.8 - 4.9

前言 第4章对应的内容选择题和案例分析都会进行考查,这一章节属于技术相关的内容,学习要以教材为准。本章分值预计在4-5分。 目录 4.8 云原生架构 4.8.1 发展概述 4.8.2 架构定义 4.8.3 基本原则 4.8.4 常用架构模式 4.8.5 云原生案例 4.9 本章…