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会拼接上一个/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

迅狐矩阵系统:一键式剪辑神器,引领矩阵运营新潮流!

在数字化浪潮汹涌的当下,视频内容已经成为人们获取信息、娱乐休闲的重要方式。然而,面对海量的视频素材和日益增长的用户需求,如何高效、高质量地剪辑和分发视频内容,成为了摆在众多内容创作者和运营团队面前的难题。幸运的是&…

【单片机毕业设计选题24053】-基于单片机的WiFi控制门禁系统设计

系统功能: 系统上电后OLED显示智能门禁系统 Door:xxxxxx 初始化ESP8266完成后显示 Door:Closed 短按按键SW4可打开电磁锁OLED显示Door:Open,约五秒后电磁锁自动关闭OLED 显示Door:Closed 根据“TCP调试助手使用说明”操作, 在调试助手界面发送Open后…

商城源码从哪里找

商城源码可以从多个渠道获取,具体包括开源平台、专门的商城系统提供商、代码分享网站等。不同的渠道可能适合不同的需求和技术水平。下面将详细分析各个渠道的特点及优缺点: 开源平台 Gitee:Gitee是一个知名的代码托管平台,提供…

【VUE基础】VUE3第五节—核心语法之ref标签、props

ref标签 作用&#xff1a;用于注册模板引用。 用在普通DOM标签上&#xff0c;获取的是DOM节点。 用在组件标签上&#xff0c;获取的是组件实例对象。 用在普通DOM标签上&#xff1a; <template><div class"person"><h1 ref"title1">…

RDNet实战:使用RDNet实现图像分类任务(一)

论文提出的模型主要基于对传统DenseNet架构的改进和复兴&#xff0c;通过一系列创新设计&#xff0c;旨在提升模型性能并优化其计算效率&#xff0c;提出了RDNet模型。该模型的主要特点和改进点&#xff1a; 1. 强调并优化连接操作&#xff08;Concatenation&#xff09; 论文…

UML图书管理系统用例图示例

新书速览|《UML 2.5基础、建模与设计实践》新书速览|《UML 2.5基础、建模与设计实践 【例4.4】图书管理系统用例图。 图书管理系统按其业务功能分成借阅者管理、图书管理、借书、还书和用户管理等几部分&#xff0c;这些职能对应于系统的不同组织部门。 1&#xff09;系统参…

Actor-Critic 算法

在强化学习&#xff08;Reinforcement Learning, RL&#xff09;中&#xff0c;Actor-Critic 算法是一类强大的策略梯度方法&#xff0c;结合了策略&#xff08;Policy&#xff09;和价值函数&#xff08;Value Function&#xff09;两种方法的优点。本文将详细介绍 Actor-Crit…

阿一课代表今日分享之使用dnscat2 进行dns隧道反弹shell(直连模式linux对linux)

DNS介绍 DNS是域名系统(Domain Name System)的缩写&#xff0c;是因特网的一项核心服务&#xff0c;它作为可以将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便的访问互联网&#xff0c;而不用去记住能够被机器直接读取的IP数串。 DNS的记录类型有很多&a…

项目实战--Spring Boot + GraphQL实现实时数据推送

背景 用户体验不断提升而3对实时数据的需求日益增长&#xff0c;传统的数据获取方式无法满足实时数据的即时性和个性化需求。 GraphQL作为新兴的API查询语言&#xff0c;提供更加灵活、高效的数据获取方案。结合Spring Boot作为后端框架&#xff0c;利用GraphQL实现实时数据推…

GD32MCU如何实现掉电数据保存?

大家在GD32 MCU应用时&#xff0c;是否会碰到以下应用需求&#xff1a;希望在MCU掉电时保存一定的数据或标志&#xff0c;用以记录一些关键的数据。 以GD32E103为例&#xff0c;数据的存储介质可以选择内部Flash或者备份数据寄存器。 如下图所示&#xff0c;片内Flash具有10年…

详解C语言结构体

文章目录 1.结构体的声明1.1 结构体的基础知识1.2 结构的声明1.3 结构成员的类型 1.4结构体变量的定义和初始化2.结构体成员的访问3.结构体传参 1.结构体的声明 1.1 结构体的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量 …

【密码学】分组密码概述

一、分组密码的定义 分组密码和流密码都是对称密码体制。 流密码&#xff1a;是将明文视为连续的比特流&#xff0c;对每个比特或字节进行实时加密&#xff0c;而不将其分割成固定的块。流密码适用于加密实时数据流&#xff0c;如网络通信。分组密码&#xff1a;是将明文数据…

【React】Ant Design -- Table分页功能实现

实现步骤 为Table组件指定pagination属性来展示分页效果在分页切换事件中获取到筛选表单中选中的数据使用当前页数据修改params参数依赖引起接口重新调用获取最新数据 const pageChange (page) > {// 拿到当前页参数 修改params 引起接口更新setParams({...params,page})…

翰德恩咨询赋能材料行业上市公司,共筑IPD管理体系新篇章

赋能背景概览 坐落于江苏的某材料行业领军企业&#xff0c;作为国内无机陶瓷膜元件及成套设备领域的佼佼者&#xff0c;以其庞大的生产规模、丰富的产品系列及卓越的研发实力&#xff0c;屹立行业之巅二十余年。公司不仅在新材料研发、技术创新、工艺设计、设备制造及整体解决…

【VUE进阶】安装使用Element Plus组件

Element Plus组件 安装引入组件使用Layout 布局button按钮行内表单菜单 安装 包管理安装 # 选择一个你喜欢的包管理器# NPM $ npm install element-plus --save# Yarn $ yarn add element-plus# pnpm $ pnpm install element-plus浏览器直接引入 例如 <head><!-- I…

Transformer-LSTM预测 | Matlab实现Transformer-LSTM时间序列预测

Transformer-LSTM预测 | Matlab实现Transformer-LSTM时间序列预测 目录 Transformer-LSTM预测 | Matlab实现Transformer-LSTM时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现Transformer-LSTM时间序列预测&#xff0c;Transformer-LSTM&#xf…

浅谈“不要卷模型,要卷应用”

目录 1.概述 2.AI技术应用场景探索 3.避免超级应用陷阱的策略 3.1.追求DAU的弊端 3.2.平衡用户活跃度与应用实用性的策略 4.个性化智能体开发 4.1. 用户需求分析与数据收集 4.2. 技术选择与开发 4.3. 个性化算法设计 4.4. 安全性与隐私保护 4.5. 多渠道集成与响应机…

用vite创建Vue3项目的步骤和文件解释

创建项目的原则是不能出现中文和特殊字符&#xff0c;最好为小写字母&#xff0c;数字&#xff0c;下划线组成 之后在visual studio code 中打开创建的这个项目 src是源代码文件 vite和webpack是有去别的&#xff0c;对于这个vite创建的工程来说index.js是入口文件 在终端里面输…

数字探秘:用神经网络解密MNIST数据集中的数字!

用神经网络解密MNIST数据集中的数字&#xff01; 一. 介绍1.1 MNIST数据集简介1.2 MLP&#xff08;多层感知器&#xff09;模型介绍1.3 目标&#xff1a;使用MLP模型对MNIST数据集中的0-9数字进行分类 二.数据预处理2.1 数据集的获取与加载2.2 数据集的探索性分析&#xff08;E…

骗子用出国月薪3万骗了1000多万上千名求职者被骗

日前,江苏省南通市崇川区人民法院开庭审理了一起涉及诈骗的案件,该案件 审理后引发全国求职者的关注以及热议。根据了解得知,这起案件的主犯是利用出 国劳务的虚假高薪职位位诱饵,最终有上千名求职者被骗上当了。文章来源于&#xff1a;股城网www.gucheng.com 根据法院审…