粉丝4822获赞5.5万

来看这个词叫 request, 什么意思呢? request, 它表示请求啊或要求请求啊? request r e 呢?表示一再是吧?再一次,这个 press 开始表示寻求啊。寻求,我们怎么记啊?跟这个词联系起来, question 问题,你问问题就是寻求答案,对不对? question。 所以呢一再寻求就是请求啊,要求请求叫 request。 好,下一个。

past url 叫做获取 url, url 请介绍顾客给你的资源定位符号,比如说将来我会做的更多,这么长一个路径,他有 url 和对应的 参数,那么问号前面这一串由阿海问号后边的这一串呢,是我们对应的 get 方式的参数, 所以将来通过 request url 方法可以获取出新的这一块。好,那么接下来再来看再接一个方法呢,叫做 get request uri, 你注意跟这个名字是不是很像啊?那么这个 url 和 uri 其实呢它是有区别的啊, uri 它称为统一资源标识符号,那么它获取出来的是这么一个短的路径,而 url 呢,获取出来的是这么一个长的路径啊, 那么这两个路径呢?将来其实我们用哪一个?其实都可以哈,那么这两个路径将来我们可以在做权限管理的时候来获取路径,来判断一个用户是否有权限来访问资源哈,那么将来我们讲权限管理之后, 还有最后一个方法叫做 get, 这个方法是用来获取 get 方式的请求参数,那么请求参数呢?其实我们来看一下,我通过浏览器这样直接访问是不是就是 get 请求啊?


requit 对象,首先来看一下 requit 它的一个作用,作用呢是用来接收客户端的请求,从而来获取请求中的信息, 当然我们可以获取请求中携带的数据,也可以获取主机地址,端口,请求方式,项名等等一系列的信息。因为请求呢他是可以分为三类的,第一呢就是请求行,还有一个就是请求头,还有一个就是请求体。 第二块我们要知道 requit 它的一个使用,使用的话呢主要有三方面,第一方面呢是获取请求行的数据,第二方面呢是获取请求头的数据,第三方面呢就是获取请求体的数据。那么接下来我们来看一下应 应该如何分别来获取这三类数据。那么这里边呢,我们给大家写了这样的一个案例,我们在项目中呢有一个 index 点 zip 这样的一个页面,在页面中呢我们有一个放表单,放表单 x 呢就是表单提交的路径, 然后呢 mercer 的就是他的提交方式是 post 请求,然后呢后面的话呢就需要我们去输入用户名密码,然后呢性笔爱好以及地址,还有我们的个人简介, 当我们点击提交按钮以后呢 savemit 就会将数据呢以请求的方式提到我们的后台,那么提交的请求呢是 requit body。 处理这个请求的话呢,我们要用到一个 serverlet, 就是我们当前这个 requit body serverlet, 因为这个 serverlet 上面有一个哎 twelve server 注解,它里边匹配的这个请求呢和我们音带页面里边 from 表达的 x 是一致的,所以说呢,当我们提交表达以后呢,会执行当前这个 server later 中的 service 方法, 那么在这个 siri 是方法中呢,我们获取了三方面的数据,第一方面呢就是获取请求行的数据哈,请求行的数据包含哪些呢?首先呢可以获取一下什么呢? 获取一下协议名,就是我们的 s t t p 或者是 h t t p s, 这个呢就是协议名,这个是我们的什么呢? 服务器也可以获取下什么呢?访问项目所使用的一个端口号。然后呢还有一个就是获取下项目名,也可以获取一下请求方式, 也可以获取一下什么呢?参数字符串以及获取一下什么呢?相名加请求名的一个 uri 地址,也可以获取一下什么呢?获取一下我们整个请求的一个 url 地址, 那么这个呢是我们的第一部分,也就是 requit 又来获取请求号数据。第二块的话呢就是 requit 也可以获取请求投数据, 那么获取请求投数据的话呢,可以获取请求投中的某一个属性的数据, 比如说这一块呢,是获取请求头中 host 这个属性的值,然后呢给他打印出来,而下面这一块呢,是获取到请求头中的所有的属性,以及 每个属性所对应的值。然后呢第三块的话呢,就是获取请求正文数据啊,那么这个正文数据的话呢,其实就是我们这个表单数据,如何获取啊? 获取表单数据的话呢,不管我们页面上这个表单里边数据是一个啊,文本韵还是一个密码框,还是一个单选框,副选框或者是下拉框或者是文本韵,我们获取的时候呢,都用的是同一个方法叫 get 拍瑞米特是 通过 requit 里边的 get parimeters 这个方法就可以获取到,那么里边的参数呢,对应的是我们 input 标签或者是 select 标签的内幕, 说这些内幕的话呢,他和我们的这个 get penite 里边的这个参数呢,保持一致,就可 可以获取到我们的表达数据了。最后的话呢,我们将获取到的这些表达数据,也就是咱们的正文数据呢,直接通过一个 writer 对象呢给他响应回去。那么接下来的话呢,我们可以启动我们的项目来看一下来启动 启动以后,我们对应的如果说启动成功浏览器呢,他会最后呢自动的打开一个什么呢?打开一个浏览器的页切界面 来,这样的话呢,打开了一个什么呢?页签界面吧,打开这个页面以后呢,这就是我们看到的这个表单里边呢,大家可以输一些信息哈,输一些信息,比如说这里边呢,我们可以输一个用户名密码,然后性别爱好,然后地 指个人介绍,然后再来提交,提交以后呢,大家会看见这一块呢,响应回了一堆信息,这些信息就是我们刚才表单中输的信息,会响应这些信息是因为我在 serverlate 中 sever let 中第三部分获取正文数据的时候呢,拿到这些数据以后呢,全部以 write 的方式呢,给他响应回来了,所以说呢,在浏览器上的页面呢,我们可以看到响应回来的这些数据,然后呢对应的 这个请求行数据和请求投数据呢,我们都是输出到了控制台,所以这里边呢我们可以看一下控制台,控制台里边首先呢是获取请求行的数据,有协议名,还有服 哭泣以及端口号项名,然后呢还有请求方式参数字符串项名和请求名,以及获取了请求的 ui 了。 然后呢紧接着呢又获取一下什么呢?请求投数据,那么这个请求投数据的话呢,下面这些呢是请求投中所有的数据, 那么请求投入呢,他有什么呢?包含多个属性,而每个属性呢都有具体的值,这一块呢是获取了 hot 这个属性的值,就是 local hot 冒号,八零八零,也就是我们这一块的东西,获取了 hot 这个熟悉的值,就是 local hot 冒号,巴黎,巴黎。然后下面这一块呢,就是获取了请求投的所有的信息,当然这些信息的话呢,我们从浏览器上呢也可以看到,这里边的话呢,大家可以通过 f 十二 打开开发者工具,打开以后,然后呢我们提交,提交以后呢在 network 里边会看到我们发送的请求,点击请求以后,然后呢在这个对应的请求里边往下走,有一个 requireds, 这个呢就是我们的 请求头的所有数据,也就是我们刚才在控制台这里边打印出来的这些数据。 那么以上的话呢,就是 requit 对应的三种用法,一个是获取请求行数据,一个是获取请求投数据,也可以获取我们的正文数据。

我们今天就来讲一下如何通过实现 request board advice 这个接口达到以下目的。在 control advice 中呢,实现打印 post 请求的 uil 和入口。方法。在 control advice 中呢,实现打印 post 请求的 request body 中的入餐, 我们来看一下效果,那我这边写了一个收入 name 这么一个请求,我们用 postman 来调用一下这个请求,看看会打印出什么东西来。好,我这边输入陈轩一棵树作为入餐,调用一下这个请求。好,可以看到返回,这就是我是中国人,我的名字是陈轩一棵树。那在我们的控制台呢,输出这么几个 首先请求的 uil, 然后输出请求的入口就是这个方法。最后呢,输出请求的入餐, ok, 我们来看一下具体实现。那首先是这个返回值里面的这个我的名字,这句话,这句话的话其实就是我们之前视频中也提到的,就我这边只是一个字串拼接,没有什么其他东西,那重点是买 ctrl x 这个类,那在这个类里面呢, 有那么几个点要注意。首先我们实现了这个 quest body 的 ys 这个接口,那这个接口呢?有四个方法是需要我们重写的。那首先这个 support 方法, 那这个 support 方法呢?就是根据注解来说,它就是首先调用的,去决定我这个 interceptor 是否会被启用,那我们这边返回处就表示我这个 interrupter 是需要被启用的。 那接下来三个方法就分别是 before body read, 就我在读这个 body 内容之前要做什么事情,那第二个就是 after body read, 就我在读完这个 body 以后要做什么事情,那第三个的话就是 handle empty body, 就是我这个 body 为空的时候要做的一些事情。 那这边还要注意的是,我们这边是加 request ctrl x 这个注解的,然后我们再来具体看下这个方法。呃,刚才我们的 u i l 打印和请求入口打印,就是在这个 before both read 里面打印的,那具体的东西就是其实我是先获取了注解里面的 value, 然后把这个 value 打印出来了,然后再获取了这个 parameter 这个 executable 就它执行体,然后就把这个具体执行方法给打印出来了,然后就是做这个 afterboard read 这个方法里面动作,也就是这里有我们打印出来的请求参数,就这个 body 里面东西嘛,这边需要注意的是,我这里的 body 是依赖于前面这个 request body 注解的,就是我们这边的 request body 注解,如果你没这个注解,那这些重写的方法是都不会进来的。那最后一个呢,就是很多 mt body, 就是你 body 里面什么都没有的时候,他会跑到这个里面来进行一个对应的输出。好的,我们总结一下,首先我是在这个 ctrl 请求里面用了 request body 这个注解, 然后去自己实现了一个 cross body ys 这个接口,然后将里面的对应方法进行重写,同时呢这个时间类上面要加上有 cross ctrl 这个注解。最后呢就实现我们刚才看到的有一个请求进来会打印他的 url 入口以及对应的参数,那这一面你也可以根据自己的需求去做些其他事情, 只不过他切入点就是在包队读取前和读取后。好的,本期的视频就到这里,欢迎大家点赞、关注、收藏、留言,后期不迷路,让微信进步!