springboot系列八: springboot静态资源访问,Rest风格请求处理, 接收参数相关注解

文章目录

  • WEB开发-静态资源访问
    • 官方文档
    • 基本介绍
    • 快速入门
    • 注意事项和细节
  • Rest风格请求处理
    • 基本介绍
    • 应用实例
    • 注意事项和细节
    • 思考题
  • 接收参数相关注解
    • 基本介绍
    • 应用实例
      • @PathVariable
      • @RequestHeader
      • @RequestParam
      • @CookieValue
      • @RequestBody
      • @RequestAttribute
      • @SessionAttribute

在这里插入图片描述


⬅️ 上一篇: springboot系列七: Lombok注解,Spring Initializr,yaml语法


🎉 欢迎来到 springboot系列八: springboot静态资源访问,Rest风格请求处理, 接收参数相关注解 🎉

在本篇文章中,我们将探讨如何在 Spring Boot 中处理静态资源访问、实现 Rest 风格的请求处理以及使用接收参数相关的注解。这些功能将帮助您更高效地开发和管理 Spring Boot 应用程序。


🔧 本篇需要用到的项目:


WEB开发-静态资源访问

官方文档

在线文档:

在这里插入图片描述

基本介绍

1.只要静态资源放在类路径下: /static, /public, /resources, /META-INF/resources 可以被直接访问 - 对应文件 WebProperties.java

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { “classpath:/META-INF/resources/”, “classpath:/resources/”, “classpath:/static/”, “classpath:/public/” };

2.常见静态资源: JS, CSS, 图片(.jpg, .png, .gif, .bmp, .svg), 字体文件(Fonts)等

3.访问方式: 默认: 项目根路径 / + 静态资源名, 比如 http://localhost:8080/1.jpg - 设置WebMvcProperties.java
private String staticPathPattern = “/**”;

在这里插入图片描述

快速入门

1.创建SpringBoot项目springbootweb, 这里使用灵活配置方式来创建项目, 参考springboot快速入门

2.创建相关静态资源目录, 并放入测试图片, 没有目录, 自己创建即可, 浏览器访问 http://localhost:8080/4.png , 完成测试.

在这里插入图片描述

注意事项和细节

1.静态资源访问原理: 静态映射是 /** , 也就是对所有请求拦截. 请求进来, 先看Controller能不能处理, 不能处理的请求交给静态资源处理器, 如果静态资源找不到则响应404页面.

在这里插入图片描述

2.改变静态资源访问前缀, 比如我们希望 http://localhost:8080/image/1.png 去请求静态资源.

应用场景: http://localhost:8080/1.png, 静态资源访问前缀和控制器请求路径冲突

在这里插入图片描述

被Controller拦截

在这里插入图片描述

解决方案:
1)创建src/main/resources/application.yml

spring:mvc:static-path-pattern: /image/**

2)启动, http://localhost:8080/image/1.png 测试

在这里插入图片描述

3.改变默认的静态资源路径, 比如希望在类路径下增加zzwimg目录 作为静态资源路径, 并完成测试.

1)如图所示
在这里插入图片描述

2)配置 application.yml, 增加路径

spring:mvc:static-path-pattern: /image/** #修改静态资源访问 路径/前缀web:resources:#修改/指定 静态资源的访问路径/位置static-locations: [classpath:/zzwimg/] #String[] staticLocations

在这里插入图片描述

3)测试, 浏览器输入 http://localhost:8080/image/6.png(没错, 是image/6.png, 不是image/zzwimg/6.png), 一定要保证工作目录target下 有 6.png, 如果没有, 请rebuild下项目, 再重启项目.

4)如果你配置 static-locations, 原来的访问路径就会被覆盖, 如果需要保留, 再指定一下即可.

  web:resources:#修改/指定 静态资源的访问路径/位置 String[] staticLocationsstatic-locations: ["classpath:/zzwimg/", "classpath:/META-INF/resources/","classpath:/resources/", "classpath:/static/", "classpath:/public/"]

Rest风格请求处理

基本介绍

1.Rest风格支持 (使用HTTP请求方式来表示对资源的操作)

2.举例说明
请求方式: /monster
GET-获取妖怪
DELETE-删除妖怪
PUT-修改妖怪
POST-保存妖怪

应用实例

1.创建src/main/java/com/zzw/springboot/controller/MonsterController.java

@RestController
public class MonsterController {//等价的写法//@RequestMapping(value = "/monster", method= RequestMethod.GET)@GetMapping("/monster")public String getMonster() {return "GET-查询妖怪";}//等价写法//@RequestMapping(value = "/monster", method = RequestMethod.POST)@PostMapping("/monster")public String saveMonster() {return "POST-保存妖怪";}//等价写法@RequestMapping(value = "/monster", method = RequestMethod.PUT)@PutMapping("/monster")public String putMonster() {return "PUT-修改妖怪";}//等价写法@RequestMapping(value = "/monster", method = RequestMethod.DELETE)@DeleteMapping("/monster")public String deleteMonster() {return "DELETE-删除妖怪";}
}

2.使用Postman完成测试, 请求url: http://localhost:8080/monster

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意事项和细节

在SpringMVC中我们学过,SpringMVC系列四: Rest-优雅的url请求风格

1.客户端是Postman 可以直接发送 Put, Delete等方式请求, 可不设置Filter.

2.如果要SpringBoot支持 页面表单的Rest功能, 则需要注意如下细节

1)Rest风格请求核心Filter: HiddenHttpMethodFilter, 表单请求会被HiddenHttpMethodFilter拦截, 获取到表单_method的值, 再判断是PUT/DELETE/PATCH(注意: PATCH方法是新引入的, 是对PUT方法的补充, 用来对已知资源进行局部更新, PATCH和PUT方法的区别)

2)如果要SpringBoot支持 页面表单的Rest功能, 需要在application.yml启用filter功能, 否则无效.

3)修改application.yml, 启用filter功能

spring:mvc:static-path-pattern: /image/** #修改静态资源访问 路径/前缀hiddenmethod:filter:enabled: true #启动HiddenHttpMethodFilter, 支持rest

4)修改对应的页面, 然后测试.

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>rest</title>
</head>
<body>
<h1>测试rest风格的url, 完成get请求</h1>
<form action="/monster" method="get">u: <input type="text" name="name"><br/><input type="submit" value="点击提交">
</form>
<h1>测试rest风格的url, 完成post请求</h1>
<form action="/monster" method="post">u: <input type="text" name="name"><br/><input type="submit" value="点击提交">
</form>
<h1>测试rest风格的url, 完成put请求</h1>
<form action="/monster" method="post"><!--通过隐藏域传递_method参数指定值--><input type="hidden" name="_method" value="PUT">u: <input type="text" name="name"><br/><input type="submit" value="点击提交">
</form>
<h1>测试rest风格的url, 完成delete请求</h1>
<form action="/monster" method="post"><input type="hidden" name="_method" value="delete">u: <input type="text" name="name"><br/><input type="submit" value="点击提交">
</form>
</body>
</html>

思考题

1.为什么这里 return “GET-查询妖怪”,返回的是字符串,而不是转发到对应的资源文件?

1)修改src/main/java/com/zzw/springboot/controller/MonsterController.java

//@RestController
@Controller
public class MonsterController {/*** 解读* 因为@RestController是一个复合注解,含有@ResponseBody注解,所以sprintboot底层(springmvc),* 在处理return "xxx"时, 会以 @ResponseBody 注解的方式进行解析处理, 即返回字符串"xxx". 而不会使用* 视图解析器来处理. 如果我们把 @RestController 改成 @Controller, 当你访问getMonster()时, * 会使用到视图解析器(如果配置了的话),即如果你有xxx.html, 就会请求转发到xxx.html, 如果没有xxx.html, 就会报404.* @return*/@GetMapping("/monster")public String getMonster() {return "GET-查询妖怪";}@RequestMapping("/go")public String go() {//顺序 http://localhost:8088/go// => 1.如果没有配置视图解析器, 就看Controller有没有 /hello// => 2.如果有, 就请求转发到 /hello, 如果没有 /hello 映射, 就报错// => 4.如果配置了视图解析器, 就走视图解析器return "hello";}
}

2)浏览器请求 http://localhost:8088/go,报 404 错误,因为找不到资源文件 hello.html

解决方案

1.如果没有配置视图解析器, 访问 http://localhost:8088/go, 会请求转发到 /hello
1)修改src/main/java/com/zzw/springboot/controller/HiController.java

@RestController
public class HiController {//@RequestMapping("/hi") //模拟一下, 发现默认请求的路径和资源的名字冲突@RequestMapping("/hello")public String hi(){return "hi~";}
}

2)测试

在这里插入图片描述

2.如果配置了视图解析器, 访问 http://localhost:8088/go, 就会请求转发到 hello.html
1)新建src/main/resources/public/hello.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>hello页面</title>
</head>
<body>
<h2>hello页面</h2>
</body>
</html>

2)application.yml配置视图解析器

spring:mvc:#尽量用默认的, 因为springboot有个约定优于配置的思想#static-path-pattern: /image/** #修改静态资源访问 路径/前缀hiddenmethod:filter:enabled: true #启动HiddenHttpMethodFilter, 支持restview: #修改默认的视图配置
#      prefix: / # No mapping for GET /hello.htmlprefix: / #这里需要注意prefix 需要和当前的static-path-pattern保持一致suffix: .html

3)测试

在这里插入图片描述

接收参数相关注解

基本介绍

1.SpringBoot 接收客户端提交数据 / 参数会使用到相关注解.

2.详细学习 @PathVariable, @RequestHeader, @ModelAttribute, @RequestParam, @CookieValue, @RequestBody

应用实例

●需求:
演示各种方式提交数据/参数给服务器, 服务器如何使用注解接收

@PathVariable

1.创建src/main/resources/public/index.html
JavaWeb系列十: web工程路径专题

<h1>跟着老韩学springboot</h1>
基本注解:
<hr/>
<!--1. web工程路径知识:2. / 会解析成 http://localhost:80803. /monster/100/king => http://localhost:8080/monster/100/king4. 如果不带 /, 会以当前路径为基础拼接
/-->
<a href="/monster/100/king">@PathVariable-路径变量 monster/100/king</a><br/><br/>
</body>

2.创建src/main/java/com/zzw/springboot/controller/ParameterController.java
url占位符回顾

@RestController
public class ParameterController {/*** 1./monster/{id}/{name} 构成完整请求路径* 2.{id} {name} 就是占位变量* 3.@PathVariable("name"): 这里 name 和 {name} 命名保持一致* 4.String name_ 这里自定义, 这里韩老师故意这么写* 5.@PathVariable Map<String, String> map 把所有传递的值传入map* 6.可以看下@pathVariable源码* @return*/@GetMapping("/monster/{id}/{name}")public String pathVariable(@PathVariable("id") Integer id,@PathVariable("name") String name,@PathVariable Map<String, String> map) {System.out.println("id = " + id + "\nname = " + name + "\nmap = " + map);return "success";}
}

3.测试 http://localhost:8088/monster/100/king

在这里插入图片描述
在这里插入图片描述

@RequestHeader

需求: 演示@RequestHeader使用.

1.修改src/main/resources/public/index.html

<a href="/requestHeader">@RequestHeader-获取http请求头</a><br/><br/>

2.修改ParameterController.java
JavaWeb系列八: WEB 开发通信协议(HTTP协议)

/*** 1. @RequestHeader("Cookie") 获取http请求头的 cookie信息* 2. @RequestHeader Map<String, String> header 获取到http请求的所有信息*/
@GetMapping("/requestHeader")
public String requestHeader(@RequestHeader("Host") String host,@RequestHeader Map<String, String> header) {System.out.println("host = " + host + "\nheader = " + header);return "success";
}

3.测试

在这里插入图片描述
在这里插入图片描述

@RequestParam

需求: 演示@RequestParam使用.

1.修改src/main/resources/public/index.html

<a href="/hi?name=赵志伟&fruit=apple&fruit=pear&address=上海&id=3">@RequestParam-获取请求参数</a><br/><br/>

2.修改ParameterController.java
SpringMVC系列五: SpringMVC映射请求数据

/*** 如果我们希望将所有的请求参数的值都获取到, 可以通过* @RequestParam Map<String, String> params*/
@GetMapping("/hi")
public String hi(@RequestParam(value = "name") String username,@RequestParam(value = "fruit") List<String> fruits,@RequestParam Map<String, String> params) {System.out.println("username = " + username + "\nfruits = "+ fruits + "\nparams = " + params);return "success";
}

3.测试

在这里插入图片描述
在这里插入图片描述

@CookieValue

需求: 演示@CookieValue使用.

1.修改src/main/resources/public/index.html

<a href="/cookie">@CookieValue-获取cookie值</a>

2.修改ParameterController.java
JavaWeb系列十一: Web 开发会话技术(Cookie, Session)

/*** 因为我们的浏览器目前没有cookie, 我们可以自己设置cookie* 如果要测试, 可以先写一个方法, 在浏览器创建对应的cookie* 说明:* 1. value = "cookie_key" 表示接收名字为 cookie_key的cookie* 2. 如果浏览器携带来对应的cookie, 那么后面的参数是String, 则接收到的是对应的value* 3. 后面的参数是Cookie, 则接收到的是封装好的对应的cookie*/
@GetMapping("/cookie")
public String cookie(@CookieValue(value = "cookie_key") String cookie_value,@CookieValue(value = "username") Cookie cookie,HttpServletRequest request) {System.out.println("cookie_value = " + cookie_value+ "\nusername = " + cookie.getName() + "-" + cookie.getValue());Cookie[] cookies = request.getCookies();for (Cookie cookie1 : cookies) {System.out.println("cookie1 = " + cookie1.getName() + "-" + cookie1.getValue());}return "success";
}

3.测试
在这里插入图片描述
在这里插入图片描述

@RequestBody

需求: 演示@RequestBody使用.

1.修改src/main/resources/public/index.html

<h1>测试@RequestBody获取数据: 获取POST请求体</h1>
<form action="/save" method="post">名字: <input type="text" name="name"><br/>年龄: <input type="text" name="age"><br/><input type="submit" value="提交"/>
</form>

2.修改ParameterController.java
SpringMVC系列十: 中文乱码处理与JSON处理

/*** @RequestBody 是整体取出Post请求内容*/
@PostMapping("/save")
public String postMethod(@RequestBody String content) {System.out.println("content = " + content);//content = name=zzw&age=23return "sucess";
}

3.测试

在这里插入图片描述

content = name=zzw&age=123

@RequestAttribute

需求: 演示@RequestAttribute使用. 获取request域的属性.

1.修改src/main/resources/public/index.html

<a href="/login">@RequestAttribute-获取request域属性</a>

2.创建RequestController.java
SpringMVC系列十: 中文乱码处理与JSON处理

@Controller
public class RequestController {@RequestMapping("/login")public String login(HttpServletRequest request) {request.setAttribute("user", "赵志伟");//向request域中添加的数据return "forward:/ok";//请求转发到 /ok}@GetMapping("/ok")@ResponseBodypublic String ok(@RequestAttribute(value = "user", required = false) String username,HttpServletRequest request) {//获取到request域中的数据System.out.println("username--" + username);System.out.println("通过servlet api 获取 username-" + request.getAttribute("user"));return "success"; //返回字符串, 不用视图解析器}
}

3.测试…

@SessionAttribute

需求: 演示@SessionAttribute使用. 获取session域的属性.

1.修改src/main/resources/public/index.html

<a href="/login">@SessionAttribute-获取session域属性</a>

2.创建RequestController.java
JavaWeb系列十一: Web 开发会话技术(Cookie, Session)

@Controller
public class RequestController {@RequestMapping("/login")public String login(HttpServletRequest request, HttpSession session) {request.setAttribute("user", "赵志伟");//向request域中添加的数据session.setAttribute("mobile", "黑莓");//向session域中添加的数据return "forward:/ok";//请求转发到 /ok}@GetMapping("/ok")@ResponseBodypublic String ok(@RequestAttribute(value = "user", required = false) String username,HttpServletRequest request,@SessionAttribute(value = "mobile", required = false) String mobile,HttpSession session) {//获取到request域中的数据System.out.println("username--" + username);System.out.println("通过servlet api 获取 username-" + request.getAttribute("user"));//获取session域中的数据System.out.println("mobile--" + mobile);System.out.println("通过HttpSession 获取 mobile-" + session.getAttribute("mobile"));return "success"; //返回字符串, 不用视图解析器}
}

3.测试…


🔜 下一篇预告: [即将更新,敬请期待]


📚 目录导航 📚

  1. springboot系列一: springboot初步入门
  2. springboot系列二: sprintboot依赖管理
  3. springboot系列三: sprintboot自动配置
  4. springboot系列四: sprintboot容器功能
  5. springboot系列五: springboot底层机制实现 上
  6. springboot系列六: springboot底层机制实现 下
  7. springboot系列七: Lombok注解,Spring Initializr,yaml语法
  8. springboot系列八: springboot静态资源访问,Rest风格请求处理, 接收参数相关注解

💬 读者互动 💬
在学习 Spring Boot 静态资源访问和 Rest 风格请求处理的过程中,您有哪些新的发现或疑问?欢迎在评论区留言,让我们一起讨论吧!😊


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

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

相关文章

微服务-网关Gateway

个人对于网关路由的理解&#xff1a; 网关就相当于是一个项目里面的保安&#xff0c;主要作用就是做一个限制项。&#xff08;zuul和gateway两个不同的网关&#xff09; 在路由中进行配置过滤器 过滤器工厂&#xff1a;对请求或响应进行加工 其中filters&#xff1a;过滤器配置…

摸鱼大数据——Spark基础——Spark环境安装——PySpark搭建

三、PySpark环境安装 PySpark: 是Python的库, 由Spark官方提供. 专供Python语言使用. 类似Pandas一样,是一个库 Spark: 是一个独立的框架, 包含PySpark的全部功能, 除此之外, Spark框架还包含了对R语言\ Java语言\ Scala语言的支持. 功能更全. 可以认为是通用Spark。 功能 P…

Golang | Leetcode Golang题解之第199题二叉树的右视图

题目&#xff1a; 题解&#xff1a; /** 102. 二叉树的递归遍历*/ func levelOrder(root *TreeNode) [][]int {arr : [][]int{}depth : 0var order func(root *TreeNode, depth int)order func(root *TreeNode, depth int) {if root nil {return}if len(arr) depth {arr a…

线性代数--行列式1

本篇来自对线性代数第一篇的行列式的一个总结。 主要是行列式中有些关键点和注意事项&#xff0c;便于之后的考研复习使用。 首先&#xff0c;对于普通的二阶和三阶行列式&#xff0c;我们可以直接对其进行拆开&#xff0c;展开。 而对于n阶行列式 其行列式的值等于它的任意…

C++特殊类设计单例模式...

文章目录 请设计一个类&#xff0c;不能被拷贝请设计一个类&#xff0c;只能在堆上创建对象请设计一个类&#xff0c;只能在栈上创建对象请设计一个类&#xff0c;不能被继承请设计一个类&#xff0c;只能创建一个对象(单例模式)单例模式&#xff1a;饿汉模式&#xff1a;懒汉模…

代发考生战报:6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过

代发考生战报&#xff1a;6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过 &#xff0c;今天我和同事两个人去考的&#xff0c;我考试遇到1个新题&#xff0c;他遇到两个新题&#xff0c;客服提供的题库很稳定&#xff0c;全覆盖了&#xff0c;轻松通过&#xff0c;考…

【语言模型】Xinference的部署过程

一、引言 Xinference&#xff0c;也称为Xorbits Inference&#xff0c;是一个性能强大且功能全面的分布式推理框架&#xff0c;专为各种模型的推理而设计。无论是研究者、开发者还是数据科学家&#xff0c;都可以通过Xinference轻松部署自己的模型或内置的前沿开源模型。Xinfe…

pikachu靶场 利用Rce上传一句话木马案例(工具:中国蚁剑)

目录 一、准备靶场&#xff0c;进入RCE 二、测试写入文件 三、使用中国蚁剑 一、准备靶场&#xff0c;进入RCE 我这里用的是pikachu 打开pikachu靶场&#xff0c;选择 RCE > exec "ping" 测试是否存在 Rce 漏洞 因为我们猜测在这个 ping 功能是直接调用系统…

性能评测系列:云架构扩展演进横向对比

原始测评报告 性能评测系列&#xff08;PT-010&#xff09;&#xff1a;Spring Boot RDS for MySQL&#xff0c;高并发insert 性能评测系列&#xff08;PT-012&#xff09;&#xff1a;Spring Boot(K8s多实例) RDS for MySQL&#xff0c;高并发insert 性能评测系列&#xff…

一元线性回归-R语言

# # 安装包 # install.packages(ggplot2) # library(ggplot2) Sys.setlocale(category LC_ALL, locale English_United States.1252) # Sys.setlocale("LC_ALL","Chinese") x <- c(18, 20, 22, 24, 26, 28, 30) y <- c(26.86, 28.35, 28.87,28.75,…

期货的杠杆怎么计算?

什么是杠杆系数 杠杆系数是指期货合约价值与保证金之间的比例。它表示投资者只需投入少量资金&#xff0c;就可以控制价值更高的期货合约。杠杆系数越高&#xff0c;投资者的资金放大倍数就越大&#xff0c;但风险也越大。 什么是期货保证金呢&#xff1f; 期货保证金&…

《HelloGitHub》第 99 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…

VS2019+QT5.12.10: error MSB4036: 未找到“Join”任务。请检查下列各项: 1.) 项目文件中的任务名

1、背景 两个VS2019打开两个相同的项目&#xff0c;一个里可以正常运行&#xff0c; 一个中一直报错&#xff0c;&#xff0c;报的错也是瞎几把报的。。 2、重新安装插件 之前在VS的扩展中在线安装了qt插件&#xff0c; 安装了一半&#xff0c;比较慢&#xff0c;直接强行退出…

传媒行业指哪些?需要过等保吗?

传媒&#xff0c;一个人人都接触的行业。相信大家都听过传媒&#xff0c;但具体传媒行业是指什么&#xff0c;包括哪些&#xff0c;详细很多人都不了解。这不一些人在问&#xff0c;传媒行业指哪些&#xff1f;需要过等保吗&#xff1f;这里跟我们小编一起来讨论讨论吧&#xf…

玩游戏就能学习亚马逊云科技AWS技术并通过热门技术认证考试??

亚马逊AWS限时活动&#xff0c;玩免费游戏Cloud Quest Practitioner送AWS云从业证书考试25%折扣券(价值171元)&#xff0c;玩游戏的同时还能学知识一举两得。Cloud Quest是AWS出的一款3D角色扮演游戏/虚拟城市建造形式的实验课程(游戏画面有点像天际线)&#xff0c;大家通过完成…

【01-02】Mybatis的配置文件与基于XML的使用

1、引入日志 在这里我们引入SLF4J的日志门面&#xff0c;使用logback的具体日志实现&#xff1b;引入相关依赖&#xff1a; <!--日志的依赖--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version&g…

Sorting

本节提供有关在数据网格中对数据进行排序的信息。 GridControl-Grid View Sort Data 默认情况下&#xff0c;最终用户可以按任何列对数据进行排序&#xff0c;但使用MemoExEdit、ImageEdit和PictureEdit在位编辑器的列除外。在运行时&#xff0c;单击列标题一次以升序排列数…

中国电信股份有限公司江西分公司招聘信息 7.5日截止

法律事务管理(南昌) 学历要求 本科及以上学历 岗位职责 1.依据国家法律、法规和相关规章规定,为公司其他部门提供日常法律服务与支持; 2.负责公司各类合同审核工作; 3.负责公司法律文件的起草和法律事务谈判; 4.围绕与公司业务有关的法律问题及法…

最强文生图模型Stable Diffusion 3 Medium 正式开源

Stability AI 宣布 Stable Diffusion 3 Medium 现已开源&#xff0c;是 Stable Diffusion 3 系列中最新、最先进的文本生成图像 AI 模型 —— 官方声称是 “迄今为止最先进的开源模型”&#xff0c;其性能甚至超过了 Midjourney 6。 Stable Diffusion 3 Medium 模型规格参数达到…

获取 url 地址栏 ? 后面的查询字符串,并以键值对形式放到对象里面

写在前面 在前端面试当中&#xff0c;关于 url 相关的问题很常见&#xff0c;而对于 url 请求参数的问题也很常见&#xff0c;大部分以笔试题常见&#xff0c;今天就根据这道面试题一起来看一下。 问题 获取 url 地址栏?后面的查询字符串&#xff0c;并以键值对形式放到对象…