00:00
好,那我们刚才说的这里面是不是应该不能有两个,如果说有两个的话,那咱们的程序是不是直接报错对不对?那所以咱们在这里面就把它给删掉吧,OK吧,好,那我们下面咱们继续来看我们的request mapping这个注解的位置,首先呢,大家来看这个东西,咱们要想去看它的位置的话,我们是不是可以去看一下它的源码对不对,比如说我们点进去之后啊,大家看看啊,Target底指的是我们当前这个铸解所能够标识的位置,对不对,对吧?好,然后第一个位置是element type.type什么意思?这个指的是不是应该是类型的意思,对不对?好,然后这个method指的是不是应该就是咱们的方法,所以说我们当前咱们的这个注解能够标识在什么地方,一个标识在类上,一个标识在方法上都可以好,那它标识在类上是什么意思,标识在方法上是什么意思呢?来大家来看啊,比如说那我们在这。
01:00
然后咱们先来写一个request maybe,可以吧?好,然后括号里面,然后咱们在这呢,我就写一个,比如说咱们要跳转到我们的哪个页面,叫S,由ccss success,或者说这样啊,咱们叫做test啊,Eqt request map request maybe能看懂吧?好,OK,然后下面呢,那我们在这再来写这个方法,那咱们返回的同样是一个字符串,是不是啊,是吧?好,然后在这个地方咱们就叫做SUCS,叫success,好,就是成功,就是当我们访问我们的这个请求地址的时候啊,然后我们在咱们的table place下边,然后去创建个HTML,就叫做SUCCS跳转到这个页面可不可以啊?可不可以啊,可以吧,好OK,咱们就把它给跳转到这啊,好大家看一下,那我们怎么写啊,是不是咱们需要来称的这个字符串,然后是不是应该也叫做success,没问题吧,没问题吧,哎,也叫做success,那如果我们把这个注解标识到方法上的话,大家会发现这个东西是不是直接就会,直接就会和我们当前浏览器所发送的请求是不是创建关联,对不对,对吧,然后来进行匹配,来匹配我们浏览器所发所发送的请求,那如果说咱们把这个注解呀,然后把它给加到了我们当前的这一个类上,那这个时候又是什么意思呢?比如说大家看好我在这个地方啊,我就来写一个,哈喽,可不可以啊,可以吧,那大家都知道,如果我要想发送一个请求,被我们当前的这个控制器进行处理,那我们的请求路径是不是要跟我们request mapping的value属性值一致,对不对?
02:53
啊,对吧,那好,那我们下面咱们这是我们的主页面,这能看懂吧,好,然后咱们在这呢,来写一个超链接,那如果我们要想在这通过c leaf,然后去解析咱们的这个地址的话,那我们是不是就需要用到这种方式能看懂吗?一个斜线,然后叫做。
03:13
来把这个关掉,然后叫做test request mapping能看懂吗?好,OK,来,咱们在这来写一个叫做测试request mapping mapping注解注的位置,OK吧,来测试request mapping注解的位置,然后来给它加上一个BOK,啊,行,然后这个就是我们当前咱们的一个什么。是不是一个超链接呀,然后呢,它是不是就会匹配到我们当前咱们的控制器中的这个方法对不对,按照我们原来咱们所写的案例的这个经验呢,它应该是匹配到他的,但是我在这个地方啊,我是不是又在类上给他加了一个a request mapping啊对不对,那咱们看一下这个时候它还能否正常的匹配啊好。
04:03
哎,那咱们success里面,咱们也写一些东西,就叫sus可不可以啊好OK,来咱们来重新部署,大家来看这个效果啊。好,OK,然后下面咱们访问我们的首页,访问完之后咱们是不是就可以来点击访问我们当前的这个请求,对不对?好,然后大家来看啊,就是我们现在呢,来咱点击右键,然后进行检查,或者说呢,大家点击F12都可以啊,好,大家看你看这个地方是不是跟我们所说的是一样的,我们在原页面中用TH冒号h ref,然后来来设置我们当前的这个属性,对不对,对吧?然后呢,我们是用了SIM Le中的语法A大括号,然后来将我们当前的绝对路径进行了包括,是不是对吧?那咱们也说过浏览器所解析的绝对路径少个什么上下文路径,那我们为什么要用SIM的方式呢?咱们说过SIM类用A的大括号所包括,所包括的绝对路径是不是会自动添加什么上下文路径有印象吧,所以说大家看你看咱们的S解析之后。
05:21
是不是在我们当前咱们所设置的路径前边加上了一个上下文路径,能看懂吧?好,那这个时候大家看这个路径是不是同样也是一个绝对路径,对不对?但是大家看这个时候它还少上下文路径吗?少不少了不少了,因为咱们说过以斜线开头的是绝对路径,而浏览器解析的绝对路径会把这个斜线解析解析成什么local house的冒号8080斜线,对不对,对吧?所以在这就可以帮助我们去添加一个上下文路径,OK吧,能看懂不?啊,行,来咱们把这个关掉,然后下面咱们点击之后大家看,诶咋了404了是不是啊好,然后下面咱们来看咱们下面的这个提示,大家来看一下来,首先咱们以get方式来发送的这个请求啊,然后大家看叫no mapping,然后forget spring test request mapping对不对,而且他给我们。
06:21
报的错是什么?404 not found的这个大家都认识,叫做找不到资源,对不对,对吧?那为啥找不到呢?那大家看,如果按照我们原来咱们的写法,它应该是能找到的,但是咱们现在的这个代码里面是不是要比原来多了一个东西,多了个什么,在类上加上了一个request me,对不对?那这个东西是干什么的呢?大家注意来看咱们的笔记看好啊,如果标识一个类来设置映射请求,映射请求的请求路径的什么信息,初始信息,然后如果标识到一个方法上设置映射请求请求路径的什么具体信息,也就是说,那既然有初始信息,有具体信息,那如果我们当前的这一个类上有这个注解,而这个类中的方法上也有这个注解,那我们是不是就需要先访问到初始信息,才能访问到具体信息,大家说对不对,对吧,所以。
07:21
那什么意思啊,我们现在要想来访问到我们当前的这个请求映射,我们的路径应该怎么写啊,咱们的路径应该再加上我们类上所设置的request mapping的value,能看懂吧?啊hello,是吧,啊哈来he哈,能看懂吧,好,是这样的,这个大家注意啊,咱们先来测试一下功能,咱们测试完能之后,咱们再来说它的用法,OK吧,好,没人说来大家看啊。好,那我们现在咱们已经重新部署了,然后我们再来访问大家看好来刷新,然后来点击大家看好使不好使好使,所以说呢,那我们现在咱们标识到类上的这个request mapping是不是首先要被进行匹配,然后匹配之后咱们是不是才能够匹配到这个类中的方法上所设置的request mapping对不对,对吧?好,这个大家要注意啊,好,那这个东西咱们以后用的多不多呢?多多就比如说呀,大家来想,大家还记不记得我刚才给大家说过一个问题啊,什么问题啊,就是我们当前咱们的多个控制器里面能不能有多个request mapping的注解的value流属性是一样的,不能刚才咱们是不是就看过这个,错呀,是不是啊,那这个时候大家想,你比如说呀,咱们以后我们有用户模块,咱们是不是有什么模块,咱们是不是有咱们的这个学生模块,有订单模块,那比如说。
08:57
那咱们的用户模块中有列表功能,然后我们的订单模块中咱们也有列表功能,对不对,而我们要想来表示列表功能,比如说咱们的请求路径统一都是list的,能听懂吧,能听懂吧,统一都是list的,好然后这个时候就会出现问题啊,我的用户的这个控制器里面,咱们操作用户信息的控制器里面,那我的request mapping咱们要写的是不是应该也是类似的,哎,大家说是不是对吧?好,大家注意,然后这个是咱们的用户模块来用户模块好然后这里面呢,就有一个类的好,那如果我在操作咱们的订单模块的时候,比如说就叫做order order是不是应该是订单的意思对不对?那里面如果我要来获取一个处理一个获取订单列表的一个请求的话,那咱们是不是有可能也叫list,大家说对不对,对吧,那这个时候大家想想,我这个时候是不是就是我的一个请求来对应了两个请求映射是不是。
09:57
那是不是就会报错呀,对吧?那咱们要么就换个名字是不是,但是大家想你换一个名字,那咱们这个名字是不是更能来表示我们当前要实现的功能,对不对,对吧?好,那我们现在该怎么处理呢?那大家想想,那我们可不可以这样啊,咱们可不可以在我们当前的这个请求路径中给他加一层目录,就比如说我要来实现我的用户列表,咱们所设置的请求路径叫做什么?叫做斜线user啊,写错了是吧?然后斜线user,然后斜线list,大家说可不可以,可以吧,然后如果是咱们的订单的话,那咱们就叫斜线order,斜线list能看懂吧?好,但是这个时候大家想想,那我们既然来给它加上了一个order,那我们是不是就需要在我们当前控制器里面所处理的每个请求前面是不是都加上它所对应的模块,是不是啊,咱。
10:58
咱们是不是就可以通过把request mapping加到类上的方式来统一给它设置一层路径,能听懂吧?哎,行啊,所以说呢,我们的request mapping这个注解加到类上,然后经常用于什么,经常用于咱们不同模块,然后的控制器,然后来设置一个request mapping来表示当前不同的模块,能听懂吗?哎,好啊,行。
我来说两句