当前位置: 首页 > wzjs >正文

丰台做网站上海国际贸易有限公司

丰台做网站,上海国际贸易有限公司,esuwiki wordpress,个人做论坛网站有哪些【JavaEE】Spring Web MVC 一、什么是Spring Web MVC1.1 MVC1.2 Spring MVC1.3 Spring web 二、注释学习及使用2.1 RequestMapping注解RequestMapping请求设置 2.2 请求2.3 传递单个参数2.4 传递多个参数2.4 传递对象2.5 RequestParam注解 后端参数重命名2.6 传递数组2.7 传递集…

【JavaEE】Spring Web MVC

  • 一、什么是Spring Web MVC
      • 1.1 MVC
      • 1.2 Spring MVC
      • 1.3 Spring web
  • 二、注释学习及使用
      • 2.1 @RequestMapping注解
        • @RequestMapping请求设置
      • 2.2 请求
      • 2.3 传递单个参数
      • 2.4 传递多个参数
      • 2.4 传递对象
      • 2.5 @RequestParam注解 后端参数重命名
      • 2.6 传递数组
      • 2.7 传递集合,@RequestParam
      • 2.8 传递JSON数据
        • 测试Java对象和JSON转换
        • JSON传参
        • JSON优点
      • 2.9 获取URL中参数@PathVariable
      • 2.10 上传文件@RequestPart

此篇博客结尾附有此篇博客的全部代码!!!

一、什么是Spring Web MVC

Spring Web MVC 是 Spring 框架中用于构建 Web 应用程序的模块,它是基于 Java 的轻量级 Web 框架,遵循经典的 Model-View-Controller(模型-视图-控制器)设计模式。

1.1 MVC

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

  • View(视图): 视图是用户界面,负责将数据呈现给用户。
  • Model(模型) :模型是应用程序的核心,负责处理数据和业务逻辑。
  • Controller(控制器):控制器是模型和视图之间的桥梁,负责处理用户输入和业务逻辑。

在这里插入图片描述

1.2 Spring MVC

MVC 是⼀种架构设计模式, 也是⼀种思想, ⽽ Spring MVC 是对 MVC 思想的具体实现.除此之外, Spring MVC还是⼀个Web框架,总结来说,Spring MVC 是⼀个实现了MVC 模式的 Web 框架,专门用于开发基于 Java 的 Web 应用。

在这里插入图片描述

1.3 Spring web

既然是Web 框架, 那么当⽤⼾在浏览器中输⼊了 url 之后,我们的 Spring MVC 项⽬就可以感知到⽤⼾的请求, 并给予响应。

学习Spring MVC主要从以下三个方面学习:

  • 建立连接
  • 请求
  • 响应

二、注释学习及使用

2.1 @RequestMapping注解

@RequestMapping 是 Spring Web MVC 应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的
路由映射的.表⽰服务收到请求时, 路径为 /sayHi 的请求就会调⽤ sayHi 这个⽅法的代码.

路由映射: 当⽤⼾访问⼀个 URL 时, 将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射.

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

@RestController
@RequestMapping("/RequestMapping")
public class RequestMappingDemo {@RequestMapping("/r1")public String r1(){return "r1";}
}

运行结果:
在这里插入图片描述
注意:
@RequestMapping 的URL 路径最前⾯加不加 / (斜杠)都可以, Spring程序启动时, 会进⾏判断, 如果前面没加 / ,spring会自动拼接一个 /

@RestController
@RequestMapping("RequestMapping")
public class RequestMappingDemo {@RequestMapping("r1")public String r1(){return "r1";}
}

这里还是可以运行成功的!

@RequestMapping请求设置

在这里插入图片描述
这里给大家介绍一个工具Postman(Postman就是专门测试后端代码的,可以发送不同的请求)。
在这里插入图片描述

这样设置之后,就只能支持POST请求或者只支持GET请求。

2.2 请求

客户端(如浏览器或移动应用)向服务器发送请求,服务器处理请求并返回响应的过程。在 Java Web 开发中,尤其是使用 Spring 框架时,请求处理是一个核心概念。

访问不同的路径, 就是发送不同的请求. 在发送请求时, 可能会带⼀些参数, 所以学习Spring的请求,主要是学习如何传递参数到后端以及后端如何接收.
传递参数, 咱们主要是使⽤浏览器和Postman来模拟.

2.3 传递单个参数

@RequestMapping("Demo")
@RestController
public class Demo1 {@RequestMapping("r1")public String r1(String name){return "返回参数:"+name;}
}

在这里插入图片描述

2.4 传递多个参数

    @RequestMapping("r2")public String r2(String name,Integer age){return "返回姓名:" + name + "返回年龄:"+ age;}

在这里插入图片描述

2.4 传递对象

public class Person {private String name;private int age;public Person(String name, int age) {}public String getName() {return name;}public int getAge() {return age;}public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}
}@RequestMapping("r3")public String r3(Person person){return person.toString();}

在这里插入图片描述

2.5 @RequestParam注解 后端参数重命名

@RequestParam 的主要作用是从 HTTP 请求中提取参数值,并将其传递给控制器方法的参数。

    @RequestMapping("r4")public String r4(@RequestParam("n") String name){return "返回参数" + name;}

在这里插入图片描述

    @RequestMapping("r4")public String r4(@RequestParam(value = "n",required = false) String name){return "返回参数" + name;}

这样设置之后,n就不是必传参数了!

2.6 传递数组

    @RequestMapping("r6")public String r6(String[] str){return Arrays.toString(str);}

在这里插入图片描述
用postman传递数组,红框和绿框传递方式都可以。

2.7 传递集合,@RequestParam

集合参数:和数组类似, 同⼀个请求参数名有为多个, 且需要使⽤ @RequestParam 绑定参数关系

    @RequestMapping("r7")public String r6(@RequestParam ArrayList<String> array){return array.toString();}

在这里插入图片描述

2.8 传递JSON数据

JSON就是⼀种数据格式, 有⾃⼰的格式和语法, 使⽤⽂本表⽰⼀个对象或数组的信息, 因此JSON本质是字符串. 主要负责在不同的语⾔中数据传递和交换.

语法:

  • 数据在 键值对(Key-Value) 中
  • 数据由逗号, 分隔
  • 对象⽤ { } 表⽰
  • 数组⽤ [ ] 表⽰
  • 值可以为对象, 也可以为数组, 数组中可以包含多个对象
  • 键key和值value之间通过冒号分割
  • 键值对之间使用逗号分割
    在这里插入图片描述
测试Java对象和JSON转换

用test类来测试一下(下面图片有详细创建及测试):

@Test注释:

  • @Test 用于标记测试方法。
  • 测试方法必须是 public 和 void 类型,且不能接受任何参数。

ObjectMapper 是 Jackson 库中的一个核心类,用于处理 JSON 数据的序列化(将对象转换为 JSON 字符串)和反序列化(将 JSON 字符串转换为对象)。

使用类ObjectMapper下面的writeValueAsString方法。类对象必须要有无参构造函数。

import com.abcdefg.springmvc.demo.Person;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;public class TestJson {@Testvoid r8() throws JsonProcessingException {ObjectMapper objectMapper = new ObjectMapper();//创建对象Person person = new Person();person.setAge(1);person.setName("zhangsan");//对象转JSONString j = objectMapper.writeValueAsString(person);System.out.println(j);}@Testvoid r9() throws JsonProcessingException {ObjectMapper objectMapper = new ObjectMapper();//JSONString s = "{\"name\":\"John\",\"age\":30}";//JSON转对象Person person = objectMapper.readValue(s, Person.class);System.out.println(person.toString());}
}

在这里插入图片描述

JSON传参

实现JSON对象交互要使用@RequestBody注解:

@RequestBody: 请求正⽂,意思是这个注解作⽤在请求正⽂的数据绑定,请求参数必须在写在请求正⽂中

    @RequestMapping("r8")public String r8(@RequestBody Person person){return person.toString();}

在这里插入图片描述

JSON优点
  1. 简单易⽤: 语法简单,易于理解和编写,可以快速地进⾏数据交换
  2. 跨平台⽀持: JSON可以被多种编程语⾔解析和⽣成, 可以在不同的平台和语⾔之间进⾏数据交换和传输
  3. 轻量级: 相较于XML格式, JSON数据格式更加轻量级, 传输数据时占⽤带宽较⼩, 可以提⾼数据传输速度
  4. 易于扩展: JSON的数据结构灵活,⽀持嵌套对象和数组等复杂的数据结构,便于扩展和使⽤
  5. 安全性: JSON数据格式是⼀种纯⽂本格式,不包含可执⾏代码, 不会执⾏恶意代码,因此具有较⾼的安全性

2.9 获取URL中参数@PathVariable

和字⾯表达的意思⼀样, 这个注解主要作⽤在请求URL路径上的数据绑定

    @RequestMapping("/article/{id}/{he}")public String r9(@PathVariable Integer id, @PathVariable("he") String type){return id+":"+type;}

在这里插入图片描述

2.10 上传文件@RequestPart

MultipartFile 是 Spring 提供的一个接口,用于封装上传文件的相关信息,例如文件名、文件内容、文件大小等。

    @RequestMapping("r10")public String r10(@RequestPart("file") MultipartFile file) throws IOException {file.transferTo(new File("D:/Project/pic/tmp/"+ file.getOriginalFilename()));return  file.getOriginalFilename();}

在这里插入图片描述
此篇博客的全部代码!!!


文章转载自:

http://1j6OspAz.sggzr.cn
http://KPPixHWg.sggzr.cn
http://YgkrcvrR.sggzr.cn
http://tuk2TiSt.sggzr.cn
http://Rin2vBbZ.sggzr.cn
http://Bo4PKGpz.sggzr.cn
http://ckRduMBs.sggzr.cn
http://4PkkcjTK.sggzr.cn
http://5aEcgBDy.sggzr.cn
http://LFIcfc42.sggzr.cn
http://d1aTrN23.sggzr.cn
http://rLsbQO7c.sggzr.cn
http://ADg53vv7.sggzr.cn
http://tBOXZtnP.sggzr.cn
http://fdQixcp6.sggzr.cn
http://4NqY12EQ.sggzr.cn
http://vKNCXrKR.sggzr.cn
http://Tx0BWdoG.sggzr.cn
http://2jgn5cSv.sggzr.cn
http://Y7Bl0gbS.sggzr.cn
http://DPFbQQe1.sggzr.cn
http://E6lo6PwA.sggzr.cn
http://4Aa0YPL0.sggzr.cn
http://dflpSfKt.sggzr.cn
http://SAEMqqMf.sggzr.cn
http://SkS3nw4G.sggzr.cn
http://ZtWRb8C2.sggzr.cn
http://r3VQFXKP.sggzr.cn
http://QvbI5W8J.sggzr.cn
http://p4vib2Rl.sggzr.cn
http://www.dtcms.com/wzjs/623894.html

相关文章:

  • 在线生成网站地图2018年深圳建设网站公司
  • 不会编程如何做自己的网站为什么百度不收录wordpress
  • 专业网站开发建设网站动效
  • 建设学校网站多钱有规范
  • 鞍山网站建设企业wordpress 数据导入
  • 宜宾网站建设网站定制文章列表项怎么做
  • 西宁做网站君博领衔电脑做系统哪个网站比较好
  • 深圳工程网站建设公司方案
  • 360网站如何做引流乐从容桂网站建设
  • 自适应文章网站模板知乎 wordpress 博客
  • 网站首页横版图怎么做网站建设需求多少钱大概
  • 自己域名做网站网站建设 南通
  • 网站推广方法渠道ip代理提取网站源码
  • 互站网源码商城用易语言做网站抢购软件
  • app网站多少钱温州软件开发公司有哪些
  • 永久空间网站怎样做seo网站推广
  • 网站制做wordpress用的php代码编辑器
  • 花生壳怎么建设购物网站网站开发有哪些风险
  • 深圳定制建设网站我想做个门户网站怎么做
  • ccd设计公司官网南京seo报价
  • 网站图片一般多大网站开发的基本原则
  • 凡科建站登录入口WordPress代码显示器
  • 美橙网站建设怎么做一级a做爰片在线看网站
  • 佛山专业建设网站平台网站开发专业就业前系军
  • 台州市城市建设规划局网站oppo网站建设
  • 电子商务网站建设实验指导python入门教程
  • 北京网站制作最新教程wordpress 中文字体
  • 电商网站建设方案模板销售手机网站的后期安排
  • 找人做淘宝网站需要多少钱上海公司做网站
  • 网站公司做网站修改会收费吗wordpress页面专题