当前位置:   article > 正文

Spring Web MVC 入门使用

Spring Web MVC 入门使用

1. 什么是Spring Web MVC

Spring Web MVC是基于Servlet API 构建的原始Web框架,从一开始就包含在Spring框架中。

Servlet 是一套Java Web 开发的规范,或者说是一套Java Web 开发的技术标准。只有规范并不能做任何事情,必须要有人去实现它,实现Servlet就是去实现Servlet规范提到的各种功能,包括类,方法,属性等。例如Tomcat就实现了Servlet,称为“Servlet”容器。

1.1 MVC含义

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

  • View(视图):指在应用程序中专门用来与浏览器进行交互,展示数据的资源。
  • Model(模型):是应用程序的主体部分,用来处理程序中数据逻辑的部分。
  • Controller(控制器):可以理解为一个分发器,用来决定对于视图发来的请求,需要用哪一个模型来处理,以及处理完后需要跳回到哪一个视图,即用来连接视图和模型。

 

1.2 什么是Spring MVC

(Spring MVC就是Spring Web MVC)

MVC是一种架构设计模式,而Spring MVC是对MVC思想的具体实现。我们上期创建Spring Boot项目时勾选的 Spring Web 框架,其实就是Spring MVC 框架,也就是说我们上期创建的Spring Boot项目也可以说是Spring MVC项目。

Spring Boot 和SpringMVC的关系就相当于,Spring Boot是一个可以添加很多功能的框架,当然也可以添加 Spring MVC,所以是一个包含的关系。

Spring实现MVC时 ,也结合自身项目的特点,进行了一些改变:

2. 使用Spring MVC

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

  1. 建立连接:将用户浏览器和Java程序连接起来,也就是访问一个能调用我们Spring程序的地址
  2. 请求:用户请求时会带有一些参数,在程序中要想办法获取参数,所以请求的处理主要是获取参数
  3. 响应:执行了业务逻辑后,要把程序执行的结果返回给用户,也就是响应。

 2.1 创建项目

和创建Spring Boot项目相同,在创建时 选择上Spring Web即可

2.2 建立连接

在Spring MVC中使用 @RequsetMapping 注解来建立服务器和客户端的连接,用来指定处理哪些HTTP请求以及对应的路径。

  1. package com.example.j20240313springmvc;
  2. import org.springframework.web.bind.annotation.RequestMapping;
  3. import org.springframework.web.bind.annotation.RestController;
  4. @RestController
  5. public class RequestController {
  6. @RequestMapping("/springMVC")
  7. public String say() {
  8. return "hello Spring MVC";
  9. }
  10. }

@RequsetMapping 也可以修饰类

  1. package com.example.j20240313springmvc;
  2. import org.springframework.web.bind.annotation.RequestMapping;
  3. import org.springframework.web.bind.annotation.RestController;
  4. @RequestMapping("/request")
  5. @RestController
  6. public class RequestController {
  7. @RequestMapping("/springMVC")
  8. public String say() {
  9. return "hello Spring MVC";
  10. }
  11. }

注意访问的url会发生变化:

可以在类中放多个@RequsetMapping 修饰的方法,注意路径不能相同

  1. @RequestMapping("/request")
  2. @RestController
  3. public class RequestController {
  4. @RequestMapping("/say1")
  5. public String say1() {
  6. return "hello Spring MVC";
  7. }
  8. @RequestMapping("/say2")
  9. public String say2() {
  10. return "你好 Spring MVC";
  11. }
  12. }

2.3 @RequestMapping支持GET请求还是POST请求

我们使用Fiddler抓包:

可以看到@RequsetMapping是支持get请求的。

浏览器发送的请求类型都是GET,我们可以在resources/static下写一个html文件使用post发送一个请求

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>post</title>
  8. </head>
  9. <body>
  10. <form action = "/request/say2" method = "post">
  11. <input type = "submit" value = "发送请求">
  12. </form>
  13. </body>
  14. </html>

注意访问时IP和端口号后直接跟文件名,即把static当作根目录。

点击发送

成功跳转到say2 ,Fiddler中也可以看到post请求

2.4 PostMan使用 

作为一个后端开发人员,测试代码还要写html文件显得过于麻烦,所以我们可以使用一些工具来发送请求。

PostMan下载链接:Download Postman | Get Started for Free

注册后登录: 

点击Create 创建,创建完成后,点击Add a request,创建一个请求

我们输入url点击发送:

 

下面这些内容代表传递的参数。

Params代表使用查询字符串传参......

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/302594
推荐阅读
相关标签
  

闽ICP备14008679号