Spring Web MVC入门(1)

这篇具有很好参考价值的文章主要介绍了Spring Web MVC入门(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、什么是 Spring Web MVC?

二、MVC的定义

三、什么是Spring MVC?

Spring Boot 和 Spring MVC的关系:

四、建立连接

1、@RequestMapping注解介绍

@RequestController的作用

2、@RequestMapping的使用

3、@RequestMapping是get还是post请求

(1)GET请求

(2)POST请求

(3)指定GET/POST方法类型

五、Postman的介绍

1、下载安装Postman

2、创建请求

3、传参介绍

(1)普通传参

(2)form-data(完整表示为:multipart/form-data)

(3)x-www-form-urlencoded

(4)raw


一、什么是 Spring Web MVC?

        官方对于 SPring Web MVC 的描述是这样的:

Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, "Spring Web MVC," comes from the name of its source module (spring-webmvc), but it is more commonly known as "Spring MVC".

        翻译为中文:

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

        什么是Servlet呢?

Servlet 是一种实现动态页面的技术.准确来讲Servlet是一套 Java Web 开发的规范,或者说是一套Java Web 开发的技术标准,只有规范并不能做任何事情,必须要有人去实现它。所谓实现 Servlet 规范,就是真正编写代码去实现 Servlet 规范提到的各种功能,包括类、方法、属性等。Servlet 规范是开放的,除了 Sun 公司,其它公司也可以实现 Servlet 规范,目前常见的实现了Servlet 规范的产品包括Tomcat、Weblogic、Jetty、Jboss、WebSphere 等,它们都被称为"Servlet 容器"。Servlet 容器用来管理程序员编写的 Servlet 类。

        从上述定义我们可以得出一个信息:Spring Web MVC 是一个Web框架。下面我们简称为:Spring MVC。下面是MVC的介绍。


二、MVC的定义

        MVC是Model View Controller 的缩写,它是软件工程中的一种软件架构设计模式,它把软件系统分为 模型、试图和控制器三个基本部分。如下图:
Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

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

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

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

这个模型也是生活中来的灵感,好比是去餐厅里吃饭我们拿菜单点完菜,交给服务员,服务器再把菜单交给前台,前台拿到菜单后,就给后厨分配任务(做什么菜),后厨收到任务进行炒菜,满足客户的点餐需求。这个场景,就像上面的模式

服务员:就像View(视图),负责接待客户,帮助客户点餐,还有给客户上菜。

前台:就像Controller(控制器),根据客户的点餐情况,给后厨分配任务 / 下达命令。

后厨:就像Model(模型),收到前台分配的任务,才真正的在做菜,满足客户的点餐需求


三、什么是Spring MVC?

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

        所以Spring MVC主要关注有两点:1、MVC   2、Web框架

        其实,上一篇文章:第一个Spring Boot程序-CSDN博客 ,创建的Spring Boot项目,勾选框架时选择了:Spring Web框架,其实这个框架就是Spring MVC框架,如图:
Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        Spring Web介绍:Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the defaultembedded container.  上面说了应用了Spring MVC框架。

Spring Boot 和 Spring MVC的关系:

        这时候我们就可能会疑惑了,前面创建的不是Spring Boot项目吗?怎么又变成了Spring MVC项目了,这里就介绍它们之间的关系:

        Spring Boot是2014年发布的,Spring 是2004年发布的,在2014年发布之前,就不能用Spring实现MVC架构吗?显然不是的。

        Spring Boot只是实现Spring MVC的其中一种方式而已,Spring Boot不仅仅能添加Spring MVC框架,还能添加其他很多的框架,可以添加很多依赖,借助这些依赖,实现不同的功能。而上图通过Spring Web MVC框架,来实现web功能

        比如做饭我们现代的厨房有很多食材和工具,菜板、菜刀、灶台、天然气、锅等等,做饭时可以使用这些工具,但几千年前就不能吗?显然不是,上古时期,只要有火,就能做饭。而我们现代的厨房就像Spring Boot做饭这个事,就像MVC

        Spring在实现MVC时,也结合自身项目的特点,和上面介绍MVC的图不一样,做了一些改变,如下图:

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        但核心也没变,比如上面例子中的去饭店吃饭,一些饭店是前台来负责接待客户,帮助客户点餐,也就是Controller来负责接收用户的请求。

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

        学习Spring MVC重点也就是学习如何通过浏览器 和用户程序进行交互。主要分一下三个方面:

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

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

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

        比如去银行存款:1、去柜台(建立连接)2、带着身份证、银行卡去存款(请求)3、银行返回一张存折(响应)。

        对于 Spring MVC 来说,掌握了以上3 个功能就相当于掌握了 Spring MVC。


四、建立连接

        在创建项目前,记得要把Spring Web框架勾上,如图:

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        Spring MVC项目创建和Spring Boot创建项目相同,在创建的时候选择Spring Web就相当于创建了Spring MVC的项目(也就是使用Spring Boot的方式 创建Spring MV)。这样项目就准备好了。

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

        创建UserController 类,编写如下代码:

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

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

        启动项目,接下来我们在浏览器,输入URL:http:127.0.0.1:8080/sayHi,页面如下:

        Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        这就是最简单的一个hello Spring程序了。

1、@RequestMapping注解介绍

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

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

        上面代码中注解里包含 "/sayHi",表示服务器收到请求时,路径为 /sayHi 的请求就会调用 sayHi这个方法的代码。

@RequestController的作用

        那既然使用@RequestMapping就可以使浏览器知道要把请求教给哪个方法了,那为什么还要加上@RequestController呢?我们现在把@RequestController去掉,再访问一次看看:

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        出现404错误码,表示找不到资源了;一个项目中,会有很多类,每个类可能有很多方法,Spring程序怎么知道要执行哪个方法呢?Spring 会对所有类(加了注解:RequestController 的类)都进行扫描,然后再看看这些类里面的方法有没有加@RequestMapping注解,看是不是要访问这个方法,这就是@RequestController起到的作用

2、@RequestMapping的使用

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

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

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

        修改一下代码,变成下面这样:

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

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

        浏览器访问地址:127.0.0.1:8080/user/sayHi  ,页面如下:

        Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        @RequestMapping的URL路径前面不加 / (斜杠)也是可以的,Spring程序启动时,会进行判断,如果前面没有加 / ,Spring会自己拼接上一个 / 。现在代码如下:

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

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

        浏览器依然可以访问:

        Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        但在开发时还是建议把 / (斜杠)加上,大部分企业的规范也是加上的,@RequestMapping的URL路径也可以是多层路径,但最终访问时,依然是:类路径 + 方法路径

3、@RequestMapping是get还是post请求

        测试一下就知道了。

(1)GET请求

        浏览器发送的请求类型,都是get方法的,通过上面代码案例,可以看出来@RequestMapping支持get请求。下面用fiddler抓包看看:

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        就是get方法。

(2)POST请求

        这里我们通过form表单来构造请求,先创建test.html,前端代码要放在static目录下:

        Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        html代码如下:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <form action="/user/sayHi" method="post">
            <input type="submit" value="提交">
        </form>
    </body>
</html>

        上面form表单表点击提交按钮后,页面就跳转到 /user/sayHi ,然后也指定了请求的方法是POST。

        现在在浏览器输入URL:http://127.0.0.1:8080/test.html ,页面如下:
        Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        点击提交后,如图:

        Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        现在yongfiddler抓包看看,如图:

        Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        是POST方法。

(3)指定GET/POST方法类型

        除了上面在form表单指定方法外,我们还可以使用@RequestMapping来指定方法,代码如下:

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

@RestController
public class UserController2 {
    @RequestMapping(value = "/getRequest",method= RequestMethod.GET)
    public String sayHi(){
        return "get request...";
    }
}

        页面如下:

        Spring Web MVC入门(1),java,spring,mvc,spring boot,后端


五、Postman的介绍

        从上面的案例中,也发现了一个新的问题,就是我们测试后端方法时,还需要去写前端代码.这对我们来说,是一件麻烦又痛苦的事情。随着互联网的发展,也随着项目难度的增加,企业也按照开发的功能,把人员拆分成了不同的团队。界面显示交给"前端开发工程师”业务逻辑的实现交给“后端开发工程师”后端开发工程师,不要求也不需要掌握前端技能了。那后端开发工程师如何测试自己的程序呢?-- 使用专业的接口测试工具,接下来我们来学习Postman的使用。

1、下载安装Postman

        下载链接:https://www.postman.com/downloads/

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        点击上面箭头那,进行下载。

        安装后会提示有版本升级,点击Dismiss即可(不需要升级)

        Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

2、创建请求

        按下图提示点击:
Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        页面介绍:

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

3、传参介绍

(1)普通传参

        学习HTTP环节时,我们通过URL来访问互联网上的某一个资源,URL的格式如下:

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

        其实查询字符串(query string)就是请求的参数,如图:
Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

(2)form-data(完整表示为:multipart/form-data)

        表单提交的数据,在 form 标签中加上:enctyped="multipart/form-data",通常用于提交图片 / 文件。对应 Content-Type:multipart/form-data。

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

(3)x-www-form-urlencoded

        form表单,对应:Content-Type: appliction/x-www-from-urlencoded

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端

(4)raw

        可以上传任意的文本格式,例如text、json、xml、html等等,如图:

Spring Web MVC入门(1),java,spring,mvc,spring boot,后端文章来源地址https://www.toymoban.com/news/detail-860002.html


都看到这了,点个赞再走吧,谢谢谢谢谢

到了这里,关于Spring Web MVC入门(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Web MVC入门(1)

    目录 一、什么是 Spring Web MVC? 二、MVC的定义 三、什么是Spring MVC? Spring Boot 和 Spring MVC的关系: 四、建立连接 1、@RequestMapping注解介绍 @RequestController的作用 2、@RequestMapping的使用 3、@RequestMapping是get还是post请求 (1)GET请求 (2)POST请求 (3)指定GET/POST方法类型 五、Postman的

    2024年04月27日
    浏览(23)
  • spring boot入门与理解MVC三层架构

    分层是为了实现“高内聚,低耦合”,把问题划分开来,各个解决,易于控制,延展和分配资源,最重要有利于后期维护项目; MVC指的是model,view,controller; 在SpringMVC编程中一般分为四层: 1.表示层:(jsp、html 主要就是界面的展示),负责前后端交互,接收前端发送的请求,

    2024年02月05日
    浏览(36)
  • 【SpringMVC】Spring Web MVC入门(一)

    前面我们了解了什么是Spring,那么今天我将为大家分享一种在日常网站开发中使用非常广泛的框架——Spring Web MVC。 先来看看官方解释。 Spring Web MVC是Spring Framework提供的Web组件,它是一个MVC设计模式的框架,主要用于开发灵活、松散耦合的Web应用程序。它提供了模型-视图-控

    2024年02月05日
    浏览(34)
  • Spring MVC官方文档学习笔记(一)之Web入门

    注: 该章节主要为原创内容,为后续的Spring MVC内容做一个先行铺垫 1.Servlet的构建使用 (1) 选择Maven - webapp来构建一个web应用 (2) 构建好后,打开pom.xml文件,一要注意打包方式为war包,二导入servlet依赖,如下 (3) 替换webapp/WEB-INF/web.xml文件为如下内容,采用Servlet 3.1版本 (4) 在

    2024年02月03日
    浏览(32)
  • 【Java EE】初识Spring Web MVC

    Spring Web MVC 是 基于 Servlet API 构建的原始 Web 框架 ,从⼀开始就包含在Spring框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为)Spring MVC). Servlet是⼀种实现动态⻚⾯的技术.准确来讲Servlet是⼀套Java Web 开发的规范,或者说是⼀套Java Web 开发的

    2024年04月10日
    浏览(44)
  • 网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块

    匹配成功返回数据 1. message消息类别 2. ok 3. reson 4. 房间id 5. 双方id 6.白色玩家 一个类记录房间中的信息(房间id,两个用户id,是否为白棋) 信息提示框 处理匹配API 初始化游戏(棋盘,下一个棋子,接受棋子处理响应,判断是否结束) 1. 客户端连接到游戏房间后, 服务器返回

    2024年02月13日
    浏览(38)
  • 探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty

    🎉欢迎来到Java面试技巧专栏~探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:Java面试技巧 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习

    2024年02月08日
    浏览(42)
  • 网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(二)前后端实现用户的登录和注册功能【用户模块】

    1. 用户id 2. 用户名 3. 密码 4. 天梯积分 5. 总场数 6. 获胜场数 和数据库的数据一一对应 1. 连接数据库(application.yml连接数据库) 这个可以直接赋值代码 2. 创建UserMapper的Java接口(interface UserMapper) 创建接口,在UserMapper.xml实现 在model中创建 需要实现@Mapper注释 3. 创建UserMappe

    2024年02月13日
    浏览(36)
  • 如何在Spring Boot中使用Spring MVC

    目录 1.MVC 2.Spring MVC 3.Spring Boot中使用Spring MVC 3.1.配置 3.1.1.文件配置 3.1.2.代码配置 3.2.使用 3.2.1.映射处理器 3.2.2.传参 3.2.3.参数转换 3.2.4.数据校验 3.2.5.数据模型 3.2.6.视图和解析器 3.2.7.拦截器 MVC 是一种常见的软件设计模式,用于分离应用程序的不同部分以实现松散耦合和高内

    2023年04月15日
    浏览(25)
  • 简单谈下Spring、Spring MVC和Spring Boot

    Spring是一个开源的轻量级框架,用于构建Java应用程序。它提供了一种全面的编程和配置模型,可以帮助开发人员构建各种类型的应用程序,从简单的控制台应用程序到大型企业级应用程序。Spring框架的主要目标是提高应用程序的可维护性、可扩展性和测试性。 以下是Spring框

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包