00:00
好,那我们的spring VC要想获取请求参数的话,那我们应该怎么获取呢?在这儿给大家写了,是不是好多种方式呀,对不对,咱们先看第一个吧,通过solve API获取,什么叫做solve API啊啊,然后大家说什么叫做solve API啊,Solve that原生的API,原生的接口,对不对,对吧?好,那咱们怎么做呢?很简单,大家说我们当前所写的控制器方法,然后是由谁调用的呀?咱们当前所写的控制器方法是由谁调用的?那首先咱们的请求咱们已经讲过我们spring VC运行的一个大致流程的对不对?我们从浏览器发送的请求是不是会被request mapping这个注解啊来进行匹配,如果匹配成功,那是不是就会由我们当前的控制器方法来处理请求,对不对?但是咱们也说过,我们在之前咱们是必须要在web的叉L中去注册前端控制器的,对不对,对吧?那所以说大家想想我们当前咱们的这个,也就是说我们浏览器中所发送过来的请求是不是都要先被咱们的前端控制器处理,那我们之后呢,咱们又将咱们又执行了我们相对应的控制器方法,那所以说将我们的请求和我们的request map进行匹配,来找到我们控制器方法的这个过程是不是就是由我们的dispa solve来完成的,对不对对。
01:34
吧,好,所以说呢,那我们当咱们的dispat of,然后来调用我们的,当然呢,我说的是间接调用,然后并不是由我们的dispa solve直接去调用咱们的控制器方法的,中间呢,还有几个其他的组件,等到我们在讲源码的时候,咱们再说OK吧,好啊,行,那所以说当我们dispart of that,然后再调用我们当前控制器方法的过程中啊,然后大家想一下,那它。
02:05
那这个东西大家想想,那肯定他们两个就是我们当前处理这个过程是不是应该是在咱们的dispa solve里面执行的,是不是,是吧,那它是怎么来执行的呢?那就是通过咱们的请求地址跟咱们的request mapping这个注解是不是啊是吧,好。所以说那在我们的dispat of that中,它为我们就封装了很多的数据,然后当我们去调用我们当前的这个就是控制器方法的时候,然后就会根据我们当前的控制器方法的参数,然后来为当前的方法去注入这个参数,其实也就是为参数赋值,就比如说大家看好,你看我在这儿啊,我写一个叫request mapping,然后括号里面在这咱们写一个叫test of left API能看懂吗?好,OK,然后下面咱们的这个注解是不是来标识我们当前的?
03:04
控制器方法的对不对?咱们返回一个string,然后下面咱们方法名,咱们也叫test solve API是不是啊,好,然后括号,比如说这里面的参数我写了个啥?我写了个http solve request,这个东西大家都见过,没见过吧?是咱们的请求对象是不是?那我在这个地方咱们能直接去使用request吗?大家注意可以,为什么可以呢?就是如果我们自己写了一个方法,然后我们当前传入的参数是它,那是不是就需要我们来为当前这个参数赋值,因为这个是行参,我们需要用食参来为它赋值对不对?但是大家想这个方法是谁来调用呢?是我们的dispa solve底层中调用的对不对?所以说它就可以根据我们当前控制器方法的行参来为它们注入不一样的值,就比如说如果它。
04:04
检测到咱们当前的这个方法的行参是一个http solve request对象,它就可以将我们当前咱们在dispar of that里边所获得的表示当前请求的request对象赋值给这个参数,能听懂不?所以说说了这么多就是啥意思呢?咱们的控制器方法中,如果你写了一个request对象,Request类型的参数,那当前这个参数表示的就是当前请求,能听懂吧,能听懂吧,好,OK,来看一下啊,然后在这儿咱们写一下,然后行参位置的谁咱们的request,然后表示当前请求能看懂吧?哎,表示当前请求,OK,那就完事了呗,你看这不咱们的页面吗?那我下边我在这写个form表单,大家说可不可以啊,可以吧,然后这是T。
05:04
H冒号,然后咱们在这大家看怎么写。A大括号,然后一个斜线是不是啊,然后咱们叫做test serve let API可不可以啊。可以吧,或者说这样吧,咱们因为咱们这个SOAPI咱们用的不是很多,那咱们就不用表单了,咱们直接来写个超链接测试一下吧,行不行,行吧,然后TH冒号,好,然后大家看这个就是我们当前所发送的请求是不是是吧?好,然后在这咱们是来测试使用谁,咱们的solve let API,然后干什么来获取请求参数,没问题吧?好,那在这咱们是不是就可以来传输请求参数,对不对,怎么来传呢?大家说啊,怎么传,咱们刚才是不是就说过,在这你要么写问号,你要么写小括号,能看懂不?在这里面咱们写user name,等于单引号or me,然后逗号,然后是password,等于123456能看懂吧?好,那所以说我们当前传过去的请求参数就有了两个,一个U内。
06:19
一个password,那当我们当前这个方法里边有了request的对象之后,那大家不是是吧,得心应手对不对,对吧,然后怎么写啊,直接request.get parater来usename获取咱们的用户名,然后再通过password来获取密码,是不是就完事了呀,对不对?来咱们输出一下这是username加上加上username,然后再加上双引号逗号password,冒号加上password。能看懂吧,好,然后最终那咱们要来返回,返回谁还返回到success能看懂不能看懂吧,好OK啊行,下面那我们在这咱们来重新部署一下,大家来看这个效果啊。
07:13
这里要是用那就不能。好,然后大家来看,那我们现在咱们来刷新,大家看这是不是有一个超链接对不对啊,然后下面呢,我们在这咱们点击之后,大家看能跳过来是不是啊,那咱们再来看咱们idea的控制台,大家看破解到了没有,获取到了啊啊什么问题啊,比如说这里用那个反插的时候用斜杠。这个地方如果你传参的时候,大家说你要是用了斜线,那咱们不也说过吗?你用斜线的时候跟咱们这种方式不一样吗?你用这种方式咱们有内有value,你可以通过name获取value,那如果你在这,你要是用斜线的话,那你告诉我name是谁,Value是谁呢?所以说我说就不能用。
08:05
对呀,就不能用了呀,啊,如果说在这大家注意,如果你要用的是咱们的那个占位符的那种方式,就是把咱们的参数拼以路径的方式拼接在咱们的请求地址中的话,然后大家就不能再使用request get parameter了,知道吧,啊,就不能再用这种方式了,因为大家看这里面是不是只有值呀,有内没有啊没有,那没有的话,那咱们怎么根据name获取VALUE6呢?是不是啊,因为request get parameter本身就是通过内膜来获取VALUE6的是不是啊啊,所以说这个大家注意啊,行,那我们下面呢,那大家来看其实还是挺简单的,但是呢,大家注意,那咱们的solve API啊,咱们一般情况下用的很少,特别是呢,这个request,就比如说我们下面咱们需要来讲的这几个内容,就比如说这个是来获取请求参数,是不是用到咱们的request对象啊,然后咱们往预对象中放值,那咱们是不是有请求域。
09:06
用到request的对象,而我们的这个session域,咱们用的是session对象,对不对?Http session对象大家注意,我们在使用SPAVC的时候,你能不用原生API就不用OK吧,为啥?因为其实我们当前要操作的这些数据,咱们的spring VC它其实就已经帮助我们获取过了,而且它也会给我们提供一些非常简单的方式让我们去获取,我们根本就没有必要用谁呀,原生的solve能听懂不?哎,所以说你说你要是真的用solve原生的solve API的话,我觉得你就是在侮辱BC是不是?是吧,啊,所以说呢,那咱们这个solve的API咱们一般不用好,然后咱们什么时候再用,然后我们再说,然后下面咱们就开始来说咱们spring VC中,然后为我们所提供的获取请求参数的方式,OK吧啊。
我来说两句