Spring Web MVC入门(1)

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

什么是Spring Web MVC?

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

什么是Servlet?

Servlet是一种实现动态页面的技术.准确地来讲Servlet是一套Java Web开发的规范,或者是一套Java Web开发的技术标准.只有规范并不能做任何事情,必须要有人来实现它.所谓实现Servlet规范,就是真正编写代码去实现Servlet规范提到的各种功能,包括类,方法,属性等.

从定义中可以得到一个关键信息: Spring Web MVC是一个Web框架. 之后我们简称为:Spring MVC

然而想真正搞清楚什么是Spring MVC, 我们首先要搞懂MVC是什么.

MVC定义

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

Spring Web MVC入门(1),spring,前端,mvc

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

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

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

比如去饭店吃饭

客户进店之后,服务员来接待客户点餐,客户点完餐之后,把客户菜单交给前厅.前厅根据客户菜单给后厨下达命令.后厨负责做饭,做完之后,再根据菜单告诉服务员,这是X号餐桌客人的饭. 

在这个过程中

服务员就是View(视图),负责接待客户,帮助客户点餐,以及给顾客端饭.

前厅就是Controller(控制器),根据用户的点餐情况,来选择给哪个后厨下达命令.

后厨就是Model(模型),根据前厅的要求来完成客户的用餐需求. 

 什么是Spring MVC

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

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

所以Spring MVC主要的关注有两个点: 1.MVC; 2.Web框架.

Spring boot和Spring MVC之间的关系:

Spring Boot是实现Spring MVC的一种方式.

Spring Boot可以添加很多依赖,借助这些依赖实现不同的功能.Spring Boot通过添加Spring Web MVC框架,来实现Web功能.

比如:厨房可以用来做饭,但真实实现做饭功能的是火及各种做饭的相关食材和工具.

厨房就好比Spring Boot,厨房可以装柜子,实现收纳功能,装燃气灶等,实现做饭功能.

做饭这个事,就是MVC,在几千年前,有火有食材就可以做饭. 

不过Spring在实现MVC时,也结合自身项目的特点,做了一点改变,相对而言,使用这个图更合适:
Spring Web MVC入门(1),spring,前端,mvc 

不过核心没有变

比如上面的例子中,去饭店吃饭.一些饭店是前厅负责接待客户,帮助客户点餐,也就是Controller来负责接收用户的请求. 

学习Spring MVC

既然是Web框架,那么当在浏览器中输入url之后,我们的Spring MVC就可以感知到用户的请求,并给予响应.(我们学习Spring MVC,重点也就是学习如何通过浏览器和用户程序进行交互).

主要分以下几个方面:

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

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

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

比如用户去银行存款

1.建立连接:去柜台

2.请求:带着银行卡,身份证去存款.

3.响应:银行返回一张存折. 

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

建立连接

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

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

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
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,就可以看到程序返回的程序了.

Spring Web MVC入门(1),spring,前端,mvc 

@RequestMapping注解介绍

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

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

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

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

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

Spring Web MVC入门(1),spring,前端,mvc

可以看到,程序报了404,找不到页面.

这就是@RestController起到的作用

一个项目中,会有很多类,每个类可能有很多的方法,Spring程序怎么知道要执行哪个方法呢?

Spring会对所有的类进行扫描,如果类加了注解@RestController, Spring才会去看这个类里面的方法有没有加@RequestMapping这个注解,当然它的作用不止这一点,咱们先用.

@RequestMapping使用

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

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

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

@RequestMapping("/user")
@RequestController
public class UserController {
    @RequestMapping("/sayHi")
    public String sayHi() {
        return "Hello, Spring MVC";
    }
}

访问地址:http://127.0.0.1:8080/user/sayHI

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

访问之后仍然是可以正常响应的. (通常情况下,我们都会加上 / 

@RequestMapping的路径也可以是多层路径,最终访问时,依然是类路径 + 方法路径.

​
@RequestMapping("/user/m1")
@RequestController
public class UserController {
    @RequestMapping("/say/hi")
    public String sayHi() {
        return "Hello, Spring MVC";
    }
}

​

访问路径:http://127.0.0.1:8080/user/m1/say/hi

 @RequestMapping是GET还是POST请求?

我们来测试一下就可以得到结论了.

GET请求:

浏览器发送的类型都是get,通过以上案例,可以看出来@RequestMapping支持get请求.

POST请求:

我们通过form表单来构造请求.

创建test.html, html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/request/hello" method="post">
        <input type="submit" value="发送请求">
    </form>
</body>
</html>

访问方式为http://127.0.0.1:8080/test.html

Spring Web MVC入门(1),spring,前端,mvc

Spring Web MVC入门(1),spring,前端,mvc

从运行结果可以看出:@RequestMapping既支持Get请求,又支持Post请求.同理,也支持其它的请求方式. 

 文章来源地址https://www.toymoban.com/news/detail-840752.html

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

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

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

相关文章

  • 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日
    浏览(44)
  • Spring Boot Web MVC

    Spring Web MVC 是⼀个 Web 框架,一开始就包含在Spring 框架里。 1. MVC 定义 软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分 2. 什么是Spring MVC MVC 是⼀种架构设计模式, 也⼀种思想, ⽽ Spring MVC 是对 MVC 思想的具体实现 Spring MVC 是⼀个实现了

    2024年02月06日
    浏览(35)
  • Spring MVC入门案例!!!

    idea如何建立web项目???-CSDN博客 index.jsp: success.jsp

    2024年01月16日
    浏览(35)
  • 【JavaEE】Spring Web-MVC

    目录 Spring Web MVC 是什么 什么是Serlet 什么是MVC 什么是Spring MVC 使用Spring MVC 建立连接 @RequestMapping 请求 传递单个参数 传递多个参数 传递对象 后端参数重命名  传递数组 传递集合 传递JSON数据 获取url参数-@pathvariable 上传文件@RequestPart 获取Cookie Session 获取Header 响应 返回静态页

    2024年04月12日
    浏览(30)
  • 【JavaEE进阶】 初识Spring Web MVC

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

    2024年02月03日
    浏览(45)
  • 一次搞清Spring 、Spring Boot、Spring Web MVC、Spring WebFlux

    介绍Spring生态系统,辨析Spring、Spring Boot、Spring Web MVC和Spring WebFlux。 微信搜索关注《Java学研大本营》 在软件开发中,应用框架为代码库提供基础设施支持,使编程更容易。Spring是Java领域最受欢迎的开源应用框架。Spring由多个模块和附加组件组成,术语“Spring”通常用来指代

    2024年02月19日
    浏览(39)
  • 【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日
    浏览(56)
  • JavaWeb编程面试题——Spring Web MVC

    面试题==知识点,这里所记录的面试题并不针对于面试者,而是将这些面试题作为技能知识点来看待。不以刷题进大厂为目的,而是以学习为目的。这里的知识点会持续更新,目录也会随时进行调整。 关注公众号:编程火箭车 。在【粉丝福利】中点击【面题大全】,其中的

    2024年02月06日
    浏览(40)
  • Spring MVC简介附入门案例

    目录   一、SpringMVC简介 1.1 MVC模型 1.2 SpringMVC 二、SpringMVC入门案例 2.1 创建项目 2.2 引入依赖和tomcat插件 2.3 修改web.xml文件  2.4 新建springmvc.xml文件 2.5 编写控制器  2.6 配置运行方式 2.7 运行测试  三、SpringMVC执行流程 3.1 SpringMVC的组件 3.2 组件的工作流程 往期专栏文章

    2024年02月09日
    浏览(56)
  • Spring MVC的入门 见解2

    2.1.1.创建工程 2.1.2.添加web支持 右键项目选择 Add framework support... 添加web支持 效果 注意: 不要先添加打包方式 将web目录要拖拽到main目录下,并改名为webapp 2.1.3.pom.xml 2.2.1.index.jsp 2.2.2.controller 2.2.3.springmvc.xml 2.2.4.success.jsp 2.2.5.web.xml 2.2.6.测试 访问:http://localhost:8080/hello 2.3.1.

    2024年01月16日
    浏览(54)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包