【SSM-Day5】SpringMVC入门

【SSM-Day5】SpringMVC入门

  • Web->Servlet->Servlet容器
  • MVC档案
  • SpringMVC档案
  • SpringMVC核心操作
    • 📢建立连接
      • @RequestMapping:实现路由映射
      • @Controller/@ResponseBody:表示某个类是否可以接收HTTP请求
    • 📢接收请求
      • 1. 直接接收一个请求参数
      • 2. 直接接收多个请求参数
      • 3. 用对象接收多个请求参数
        • @RequestParam:后端参数映射
      • 4. 用数组接收请求的数组参数
      • 5. 用集合接收请求的数组参数
      • 6. 用对象接收JSON数据
        • @RequestBody:把请求正文中的数据赋值给接收对象
      • 7. @PathVariable:获取URL中的默认参数
      • 8. @RequestPart:接收请求中的文件
      • 9. 获取请求报文中的Cookie
      • 10. @RequestHeader:获取header
      • 11. 根据请求中的SessionId设置/获取session内容
        • @SessionAttribute:获取session
    • 📢返回响应
      • 1. 返回静态页面
        • @Controller :默认返回view
      • 2. 返回数据
        • 2. 1 @Controller+@ResponseBody:返回数据
        • 2.2 @RestController :返回数据
      • 3. 返回HTML代码片段
      • 4. 返回JSON
      • 5. 设置响应报文状态码
      • 6. 设置header
        • @RequestMapping:设置header
  • 总结一下~

Web->Servlet->Servlet容器

Web就是网站。
Servlet是一套JavaWeb开发的规范、技术标准。Servlet规范是开放的,
但是没有实现的标准不能做任何事。Servlet容器就是实现了Servlet规范的产品,即真正用代码实现Servlet规范提到的各种功能,包括类、⽅法、属性等的一类产品。比如Tomcat、Weblogic、Jetty、Jboss、WebSphere等,这些都是Servlet容器。
进行网站开发时,经常会调用Servlet API,Servlet容器的作用是管理程序员写的Servelt类。

SpringMVC继承了Servlet API。

MVC档案

全称:Model View Controller -> 模型 视图 控制器

是什么:实现软件系统的一种思想。

核心内容:MVC把软件系统分为Model 、View 、Controller三个基本部分。

  • View部分负责与浏览器进行交互、展示数据资源。当用户请求到达服务器或者服务器响应离开服务器时,都要经过View。
  • Model是软件程序的主体,它处理请求的内容并返回处理结果。
  • Controller部分相当于一个分发器。由它决定视图发来的请求由哪一个Model处理。
    在这里插入图片描述
    SpringMVC实现了MVC思想。

SpringMVC档案

全称:Spring Web MVC。

是什么:一个实现了MVC思想,基于Servlet API的Web框架。SpringMVC中的MVC相较于原始MVC,结合自身特点做出了一些改变:

其实就是请求不经过view直接到达Controller。
在这里插入图片描述

SpringMVC、SpringBoot、Spring之间的关系:Spring包含SpringMVC和SpringBoot。⽽ Spring Boot 是 Spring 的脚手架,Spring MVC 是 Spring 的核⼼模块。SpringBoot可以添加很多依赖,借助这些依赖实现不同的功能,SpringBoot通过添加SpringMVC框架,来实现web功能。SpringBoot是实现SpringMVC的一种方式。
在这里插入图片描述

SpringMVC核心内容:SpringMVC是Spring 的核心模块,一个基于Spring实现的JavaWeb项目的核心是客户端与服务器进行交互->建立连接、接收请求、返回响应。所以SpringMVC的核心内容就是实现客户端与浏览器之间的交互,—>即实现三个功能:

  1. 访问一个地址后能调用到Spring程序;
  2. 获取请求参数给Spring程序处理;
  3. 把程序执行的结果返回给客户端。

SpringMVC核心操作

SpringMVC把操作封装成了各种各样的注解,我们编写代码时调用注解即可。
注解在代码中:@注解名(注解的属性)。

前方一波操作来袭—>

创建SpringMVC项目,在java文件下创建一个/多个非启动类—>
在这里插入图片描述非启动类就相当于控制器,类里的方法相当于模型,建立连接、接收请求、处理请求,返回响应的相关注解都是写在java文件下的非启动类中。

📢建立连接

在这里插入图片描述
在SpringMVC中,通过注解@RestController+@RequestMapping注解@Controller+@RequestMapping建立浏览器和Spring程序之间的连接。

@RequestMapping:实现路由映射

路由映射:当⽤户访问⼀个 url 时,将⽤户的请求对应到程序中某个类中的某个方法的过程就叫路由映射。

在SpringMVC中,通过使用注解@RequestMapping来实现路由映射。代码中@RequestMapping的path属性对应用户访问的url。
在这里插入图片描述在这里插入图片描述

总结注解@RequestMapping的用法:

  1. @RequestMapping即可以单独修饰方法,也可以修饰类+方法。修饰类+方法时,访问路径是:类路径+方法路径。
    在这里插入图片描述
    在这里插入图片描述@RequestMapping的URL路径最前⾯加不加/ (斜杠)都可以,Spring程序启动时,会进行判断,如果前⾯没有加/ ,Spring会拼接上⼀个/ 。一般来说自己加上。
    @RequestMapping 的URL路径也可以是多层路径,最终访问时,依然是类路径+⽅法路径。
    在这里插入图片描述
  2. @RequestMapping 既⽀持Get请求,又支持Post请求.同理,也支持其他的请求方式。
    以下分别是用Postman模拟浏览器发送get请求和post请求得到的结果:
    在这里插入图片描述
    在这里插入图片描述

@Controller/@ResponseBody:表示某个类是否可以接收HTTP请求

Spring程序收到浏览器发来的http请求后,会先扫描被Sping程序管理的类。如果类加了@RestController或@Controller,表示这个类被Spring管理,可以接收HTTP请求,Spring程序才会继续去类里寻找其中有没有与该请求对应的方法

@RestController就是@Controller+@ResponseBody。这三个注解在响应位置还会涉及。

总结@RestController/@Controller的异同:

  • 这两个注解的作用对象都是类,作用都是表示Spring某个类是否可以接收HTTP请求。
  • 但是由于@RestController比@Controller多了一个@ResponseBody,所以它们之间有区别。
  • @Controller能直接返回页面资源。页面地址前要加/
    在这里插入图片描述
    @RestController不能返回页面资源。@RestController能直接返回内容,它会自动将对象实体转换为JSON格式。
    返回内容:在这里插入图片描述

@Controller+@ResponseBody,才能返回内容。
在这里插入图片描述
在这里插入图片描述

📢接收请求

访问不同的路径,就是发送不同的请求,后面为了方便,用Postman模拟浏览器发送请求的过程。
浏览器发送请求(请求报文)后,Spring程序是如何接收到请求的?用SpringMVC的注解帮我们接收请求。

先明确:

  1. 请求参数通常直接位于请求报文的url中,请求参数有时是用户上传的(比如用户输入登录信息后进入主页),有时是url地址默认有的(比如用户直接点击链接进入xxx网页)。
    JSON数据位于请求报文的Body中。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 若请求的参数值与后端程序中接收请求参数的变量类型不匹配,响应结果会报错误信息400(强转失败)。后面不在赘述这一点。

  3. 一般情况下,请求的参数名字和后端接受该参数的变量名一致,变量才能接收到对应请求的参数。但是SpringMvc是通过各种注解接收请求的,通过修改注解的属性值可以解决这个问题。
    比如,如果请求的参数名字是name,后端接收该参数的变量名字不是name也可以(修改注解的属性)。

接下来请看SpringMVC(注解)是如何接收请求然后给Spring程序处理的----->

1. 直接接收一个请求参数

如果请求中含一个参数,在Spring程序中,给接收该请求对应的方法设置一个形参即可。
在这里插入图片描述
总结一些注意点:

    • 如果接收请求参数的变量类型是引用数据类型,且请求参数为空->后端程序会先把请求参数转换为null值,然后赋给对应变量。—>所以此时响应结果为null(Integer a = null成立);在这里插入图片描述

    • 如果形参的类型是基本数据类型,且请求参数为空->后端程序会先把请求参数转换为null值,然后赋给对应变量。因为基本数据类型无法转换为null值(int a = null是错的),所以响应结果会报错误信息500。

    • 以上两点省流:方法中的形参类型建议使用包装类

2. 直接接收多个请求参数

如果请求中含多个参数,在Spring程序中,给对应接收方法设置多个形参即可。同样的,方法中的形参类型建议使用包装类。
在这里插入图片描述

3. 用对象接收多个请求参数

通常来说,如果请求中有多个参数,不会用上面提到的方法,而是会把接收请求参数的多个变量封装为一个对象。
方法的形参由多个变成一个。且方法中的参数作为成员变量被封装在对象中。
此时即使接收请求参数的变量类型是基本数据类型,请求参数为空,返回结果是对应的0值,而不是错误信息500。
这是因为成员变量没有初始化的时候,引用类型默认为null,基本类型默认是自己的0值。

所以,当请求参数有多个时,直接用对象接收弥补了直接在对应方法中设置多个变量的缺点(方法的形参数量多 + 请求参数为空存在bug隐患)。

在这里插入图片描述

@RequestParam:后端参数映射

在实现前后端交互的时候,后端想要接收到请求,后端接收该参数的变量名默认和请求参数保持一致。但是如果后端就想用XXX变量接收NNN参数呢?

可以通过注解@RequestParam的name属性进行强制绑定:
在变量前面加上注解@RequestParam,就可以把请求参数和@RequestParam后面的变量绑定,即使变量名和请求参数名不同,程序认为该变量就是接收该请求参数的。

注解有属性。@RequestParam有两个属性,name/value和required分别决定了它在代码中起到的两个核心作用。

@RequestParam定义如下:
(alias:别名)
在这里插入图片描述

总结@RequestParam的用法:

  1. 设置name的属性值为请求参数的名字,required属性保持默认:
    @RequestParam("XXX") 变量类型 NNN :把请求参数XXX赋值给变量NNN,请求参数不能是空。
    在这里插入图片描述
    此时,required属性是默认值,即默认请求参数不能是空, 如果为空,后端程序会返回状态码400。
    在这里插入图片描述

  2. 设置@RequestParam的required属性为false
    @RequestParam(required=false) 变量类型 XXX:把请求参数XXX赋值给变量XXX,请求参数可以为空。

  3. @RequestParam的name和required属性都是默认值:
    @RequestParam 变量类型 处理请求参数的变量 :请求参数名字和后端接收参数的变量名字保持一致,请求参数不能是空。
    在这里插入图片描述

  4. 设置@RequestParam的name和required属性分别为 请求参数名 和 false。
    @RequestParam(name="XXX",required=false) 变量类型 NNN:把请求参数XXX赋值给变量NNN,请求参数可以为空
    在这里插入图片描述

4. 用数组接收请求的数组参数

如何传数组给Spring程序:

  1. 给一个参数赋多个值,值与值之间用英文逗号隔开
    在这里插入图片描述
  2. 给同一个参数多次赋值
    在这里插入图片描述

SpringMVC如何接收数组:
在这里插入图片描述

5. 用集合接收请求的数组参数

把集合传给Spring程序有两个方法:

  1. 给一个参数赋多个值,值与值之间用英文逗号隔开
  2. 给同一个参数多次赋值

和传数组一样!事实上,在Spring程序看来,客户端传的就是数组。

但是此时接收请求的变量类型是集合,不是数组。请求参数的值与后端程序中接收变量的类型不匹配,Spring程序接收不到参数,会返回状态码500。
在这里插入图片描述
在这里插入图片描述

当需要把请求赋值给集合变量时,要在变量前面加注解@RequestParam。把请求参数绑定到@RequestParam后面的变量上。
在这里插入图片描述

6. 用对象接收JSON数据

@RequestBody:把请求正文中的数据赋值给接收对象

当请求是JSON数据的时候,通常用对象来接收。
并且,要在这个对象前面加上注解@RequestBody。

JSON数据并不是直接作为请求参数传给服务器的,而是被放在请求报文的body里传给服务器。

RequestBody是请求正文的意思,注解@RequestBody的作用是把请求报文中的body内容赋值给接收该请求的变量
在这里插入图片描述
@RequestBody只有一个属性:
在这里插入图片描述

7. @PathVariable:获取URL中的默认参数

PathVariable:路径变量。

例如:你把你的文章链接分享给你的朋友,你的朋友点开链接拿到文章。这个过程中你朋友所在的客户端没有手动输入任何参数,但浏览器依然返回了你的文章页面给你的朋友。

这是因为你的文章链接中有默认参数,比如这个默认参数可能是你文章的id等。

后端程序通过注解 @PathVariable 获取URL中的默认参数。

@PathVariable也有给后端变量重命名的属性,使用方法同@RequestParam。

总结@PathVariable的用法:
使用@PathVariable时,还要修改@RequestMapper中的属性值。具体使用如下:

  1. URL中有一个默认参数
    在这里插入图片描述在这里插入图片描述

  2. URL中有多个默认参数,(路径缺失会报错)
    在这里插入图片描述

8. @RequestPart:接收请求中的文件

@RequestPart也有给后端变量重命名的属性,使用方法同@RequestParam。

总结注解@RequestPart的用法:
在这里插入图片描述

9. 获取请求报文中的Cookie

获取请求报文中的cookie有两种方式,一种通过调用ServletAPI接口获取cookie的全部内容,一种是通过注解@CookieValue获取cookie片段。

  1. 调用ServletAPI接口获取cookie的全部内容:
    在这里插入图片描述

SpringMVC继承了ServletAPI,在上面代码中,HttpServletRequest ,HttpServletResponse都是Servlet提供的类,在SpringMVC中可以直接使用。

HttpServletRequest对象代表客户端的请求,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
在上面代码中,通过HttpServletRequest对象提供的getCookies()方法,就能获取请求报文中的cookie所有内容。

HttpServletResponse 对象代表服务器的响应,HTTP响应的信息都在这个对象中,比如向客户端发送的数据,响应头,状态码等。通过这个对象提供的方法,可以获得服务器响应的所有内容。

  1. 使用注解@CookieValue获取cookie片段

cookie是键值对形式的内容,通过注解@CookieValue能指定cookie中的key,获取对应的value值。

@CookieValue也有给后端变量重命名的属性,使用方法同@RequestParam。

在这里插入图片描述

10. @RequestHeader:获取header

获取请求报文中的header也有两种方法:

  1. 调用ServletAPI获取header片段
    先从HttpServletRequest对象中获取请求,然后调用HttpServletRequest对象提供的getHeader()方法获取到请求中的header片段。

在这里插入图片描述2. 使用注解@RequestHeader获取header片段
在这里插入图片描述

@RequestHeader也有给后端变量重命名的属性,使用方法同@RequestParam。

11. 根据请求中的SessionId设置/获取session内容

根据请求中的SessionId获取对应session有两种方式:一是调用ServletAPI获取,二是使用注解。

  1. 调用ServletAPI设置session。

先从HttpServletRequest对象中获取请求,然后调用HttpServletRequest对象提供的getSession()方法获取到请求中的sessionId。
在这里插入图片描述

拿到sessionId后进一步到服务器中寻找是否存在该客户,找到了,获取对应客户的session。如果没找到,新建一个session对象。

HttpSession是Servlet提供的存储session信息的类。调用HttpSession提供的方法setAttribute()可以设置session的内容。调用getAttribute()方法可以获取session的内容。

@RequestMapping("/setSession")
    public String setSession(HttpServletRequest request){
        //根据sessionId获取session
        HttpSession session = request.getSession();
        //设置session内容
        //name:zhangsan
        session.setAttribute("name","zhangsan");
        return "设置session成功!";
    }
@RequestMapping("/getSession1")
    public String getSession1(HttpServletRequest request){
        //根据sessionId获取session
        HttpSession session = request.getSession();
        //获取session内容
        //name:zhangsan
        String 名字 = (String) session.getAttribute("name");
        return "从session中获取名字:"+名字;
@SessionAttribute:获取session
  1. 使用注解@SessionAttribute获取session内容
    在这里插入图片描述
    @SessionAttribute也有给后端变量重命名的属性,使用方法同@RequestParam。

📢返回响应

Http响应结果可以是数据,也可以是静态⻚⾯,也可
以针对响应设置状态码,Header信息等.

常见响应:

1. 返回静态页面

前提,有一个静态页面,
在static文件下创建页面index.html,(页面的内容是ai生成的一个简单登录页面)。
在这里插入图片描述如何把这个页面作为响应内容返回呢?

通过注解@Controller注解返回静态页面:
静态页面地址的前面一定要加/,表示这是一个页面地址的相对路径,相对于当前Spring程序。
在这里插入图片描述


接下来继续欣赏前面已经提到的三个注解:

  1. @Controller返回页面资源
  2. @RestController返回数据
  3. @Controller+@ResponseBody,返回数据。
    前面只是总结,接下来会更深入一点。
@Controller :默认返回view

注解@Controller 其实就相当于MVC思想中的Controller控制器。

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

对接收请求,然后选择model,接收model的响应并返回view(返回页面资源)。
在这里插入图片描述

但是但是,就拿上面代码来说,/index.html属于前端内容,但是却出现在后端处理请求的代码中。
所以说,返回页面资源已经out了!!!

而现在更多是下面的写法,即后端只返回数据,前端什么样与后端无关

后端如何返回数据?

2. 返回数据

2. 1 @Controller+@ResponseBody:返回数据

总结@ResponseBody的用法:
欣赏一下@ResponseBody的定义:
在这里插入图片描述@ResponseBody作用是返回数据;
它既可以修饰类,也可以修饰方法,修饰类时,表示当前类的所有方法,全部返回数据。

@ResponseBody和@Controller组合使用:
在这里插入图片描述当有多个注解的时候,顺序无所谓。
在这里插入图片描述

@ResponseBody和@Controller可以合并为@RestController。

2.2 @RestController :返回数据

@RestController是复合注解,即@RestController=@Controller+@ResponseBody。

总结@RestController 的用法:
欣赏一下它的定义:
元注解对当前注解的功能实现没有什么用,元注解可以理解成当前注解的一个标签。
在这里插入图片描述
在类的前面加上@RestController,表示该类可以接受http请求并返回数据。

3. 返回HTML代码片段

后端返回的数据中包含html片段,SpringMVC会自动把响应报文中的Content-Type设置为text/html,表示body中数据格式是html。浏览器收到后会自动解析。
在这里插入图片描述

4. 返回JSON

后端返回的数据是对象,SpringMVC会自动把响应报文中的Content-Type设置为application/json ,表示body中数据格式是JSON。
在这里插入图片描述

5. 设置响应报文状态码

SpringMVC会根据我们方法的返回结果⾃动设置响应状态码,程序员也可以⼿动指定状态码。

通过SpringMVC的内置对象HttpServletResponse提供的setStatus()⽅法来进行设置:
在这里插入图片描述设置状态码不影响页面的展示。

6. 设置header

@RequestMapping:设置header

Http响应报头也会向客⼾端传递⼀些附加信息,比如服务程序的名称,请求的资源已移动到新地址等,如:Content-Type,Local等。

通过设置注解@RequestMapping的属性,可以对请求进行过滤,或者设置http响应报头

欣赏一下注解@RequestMapping的定义:
在这里插入图片描述path/value:指定映射的url。具体不在赘述。

method:指定请求的method类型,如GET,POST等。
consumes:指定处理请求(request)的提交内容类型(Content-Type),例如application/json,text/html;
Params:指定request中必须包含某些参数值时,才让该⽅法处理。
headers:指定request中必须包含某些指定的header值,才能让该⽅法处理请求。
method、consumes、Params和headers属性都是用来过滤请求的,比如设置method=“get”,表示该方法只能处理get请求。

produces:指定返回的内容类型。通过设置produces属性的值,设置响应的报头Content-Type。
在这里插入图片描述如果不设置produces,方法返回结果为String时,SpringMVC默认返回类型是text/html。
在这里插入图片描述设置返回类型时,也可以同步设置响应编码。

@RequestMapping(value = "/returnJson2",produces = "application/json;charset=UTF-8")
@ResponseBody
public String returnJson2() {
 return "{\"success\":true}";
}

总结一下~

通过使用SpringMVC注解在Spring项目中实现三个功能:

  • . 访问一个地址后能调用到Spring程序;
  • . 获取请求参数给Spring程序处理;
  • . 把程序执行的结果返回给客户端。

其中涉及到的注解如下:(修改注解的属性实现不同作用)

  1. @RequestMapping:路由映射,过滤请求,设置响应类型。
  2. @Controller:接收http请求,返回页面资源
  3. @ResponseBody:返回数据
  4. @ResponseBody:接收http请求,返回数据。
  5. @RequestParam:后端参数映射
  6. @RequestBody:把请求正文中的数据赋值给接收对象
  7. @PathVariable:获取URL中的默认参数
  8. @RequestPart:接收请求中的文件
  9. @CookieValue:获取cookie片段
  10. @RequestHeader:获取header
  11. @SessionAttribute:获取session
  12. @RequestMapping:设置header(对请求进行过滤,设置http响应报头)

重要的servletAPI使用:

  • HttpServletRequest对象代表客户端的请求,它提供的getCookies()方法,能获取请求报文中的cookie所有内容。getHeader()方法获取到请求中的header片段。getSession()方法获取到请求中的sessionId。
  • HttpServletResponse 对象代表服务器的响应,setStatus()⽅法能设置响应报文状态码。
  • HttpSession是Servlet提供的存储session信息的类。调用HttpSession提供的方法setAttribute()可以设置session的内容。调用getAttribute()方法可以获取session的内容。

撒花~
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT在解读历史股票收益预测中的外推和错误校准

论文地址:https://arxiv.org/pdf/2408.16707 原本地址:https://mp.weixin.qq.com/s/gL8ZTnpS0xJy7Qc73QEaGw 摘要 本文研究了大型语言模型(LLM)如何解释历史股票回报,并将其预测与众包股票排名平台的估计进行了比较。…

binlog 介绍

公司使用的数据库是 glodendb https://www.zte.com.cn/china/solutions_latest/goldendb.html#idpart01 最近自动化投产对一张 28w 的表进行全表 update、投产前已经是知道这个数据量的、认为没有问题、也没有在测试环境进行测试。 结果投产那天直接报错 这个 transaction_max…

什么是x86架构,什么是arm架构

什么是 x86 架构? x86 架构是一种经典的指令集架构(ISA),最早由英特尔在 1978 年推出,主要用于 PC、服务器等领域。 它是一种复杂指令集计算(CISC)架构,支持大量的复杂指令和操作&…

18.04Ubuntu网络一直connecting的问题

有段时间没登VMware的Ubuntu了,就知道这个Ubuntu一登必有问题。 如果你的网络一直connecting 设置成桥接模式就可以了!

linux离线安装Ollama并完成大模型配置(无网络)

这篇文章主要分享两方面内容: 1)在纯内网环境下如何部署ollama 2)在纯内网环境下如何配置大模型 话不多说直接开始。 ①离线部署ollama 一、通过浏览器访问ollama官方安装脚本,获取脚本内容。复制里面的内容。 在Linux中执行…

Linux笔记---Makefile的简单用法

1. 什么是Makefile Makefile 是一种用于自动化构建和管理项目的工具,特别是在软件开发中非常常见。 它包含了一系列规则(rules)和指令,描述了如何编译和链接源代码文件,以及生成最终的可执行文件或库文件。 简单来说&a…

stm32入门教程--USART外设 超详细!!!

目录 简介 什么是UART? 什么是USART? 简介 USART(Universal Synchron /Asynchronous Receiver /Transmitter)通用同步/异步收发器 1、USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧…

启动任务节点时,传入机械臂参数

MoveIt2_tutorial-Examples-Planning Scene ROS API 先启动move_group节点,后启动任务节点 方式1: 直接传入参数文件的地址 from launch import LaunchDescription # 导入启动描述,用于描述启动文件的结构 from launch_ros.actions impor…

规划误差降低27%,碰撞率降低33%Senna: 大规模视觉-语言模型与端到端自动驾驶相结合

Abstract 端到端自动驾驶在大规模数据中展示了强大的规划能力,但在复杂、罕见的场景中仍然因常识有限而表现不佳。相比之下,大型视觉语言模型(LVLMs)在场景理解和推理方面表现出色。前进的方向在于融合两者的优势。以往利用LVLMs…

Charles简单压力测试

1.接口请求次数,并发量,请求延迟时间均可配置 1.1选中需要进行测试的接口,鼠标右键选中【repeat advance】 2.设置并发参数 下面的图中,选择了1个接口,每次迭代中1个接口同时请求,迭代1000次(…

Zookeeper 对于 Kafka 的作用是什么?

大家好,我是锋哥。今天分享关于【Zookeeper 对于 Kafka 的作用是什么?】面试题?希望对大家有帮助; Zookeeper 对于 Kafka 的作用是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 ZooKeeper 在 Kafka…

【机器学习基础】激活函数

激活函数 1. Sigmoid函数2. Tanh(双曲正切)函数3. ReLU函数4. Leaky ReLU函数 1. Sigmoid函数 观察导数图像在我们深度学习里面,导数是为了求参数W和B,W和B是在我们模型model确定之后,找出一组最优的W和B,使…

leetcode-62-不同路径

题解: 1、设dp[i][j]代表到达(i,j)点最多的路径;题目要求机器人每次只能向右或向下走一步,所以到达(i,j)点的最多路径为到达(i-1,j)的最多路径与到达(i,j-1)的最多路径之和。即dp[i][j]dp[i-1][j]dp[i][j-1]。 2、初始化一个M*N的矩阵dp,将…

C++在实际项目中的应用第三节:C++与数据科学

第五章:C在实际项目中的应用 第三节:C与数据科学 1. C在数据分析中的实际应用 数据分析是数据科学的核心部分,主要涉及数据的清洗、转换和建模。C作为一种高性能的编程语言,越来越多地被应用于数据分析领域。以下是 C 在数据分…

Git上传文件至AtomGit

目录 一、GIt大文件存储 Git LFS 二、Git LFS的使用 1.初始化 2.将大型文件放进LFS管理 三、整体流程 首先,你已经创建属于你自己的本地库了。以下一大型文件上传为基础,50mb的文件可以直接上传至 AtomGit上面,不需要多讲。 一、GIt大文…

北京迅为iTOP-LS2K0500开发板快速使用编译环境虚拟机Ubuntu基础操作及设置

迅为iTOP-LS2K0500开发板 迅为iTOP-LS2K0500开发板采用龙芯LS2K0500处理器,基于龙芯自主指令系统(LoongArch)架构,片内集成64位LA264处理器核、32位DDR3控制器、2D GPU、DVO显示接口、两路PClE2.0、两路SATA2.0、四路USB2.0、一路…

ArcGIS005:ArcMap常用操作101-150例动图演示

摘要:本文涵盖了GIS软件操作的多方面内容,包括地图文档的新建、打开、保存及版本兼容性处理;错误与警告的查阅及帮助文档的使用技巧;地图打印比例尺的调整与地图信息的完善;图层操作的撤销与恢复,界面元素的…

设计模式基础概念(行为模式):责任链模式(Chain Of Responsibility)

概述 责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。 该模式建议你将这些处理者连成一条链。 链上的每个处理者都有一个成员变量来保存对于…

丝氨酸/苏氨酸激酶(STKs):前列腺癌治疗的新兴靶点

引言 前列腺癌(PCa)是男性癌症相关死亡的第五大原因,全球约有140万患者,2020年超37.5万死亡病例。 靶向治疗是潜力巨大的领域,PARP、PSMA、STEAP1、DLL3等是前列腺癌治疗的明星靶点。 除此之外,还有哪些…

目录遍历漏洞

目录遍历 目录 概念漏洞分析 加密型传递参数编码绕过目录限定绕过绕过文件后缀过滤(截断上传原理) 漏洞挖掘 访问图片文件测试时去掉文件名只访问目录路径搜索引擎谷歌关键字 pikachu目录遍历 目录遍历与任意文件下载其实差不多,但是如果目录遍历比如etc/passwd只能看不能下…