00:00
好,那我们下面呢,然后咱们来看一下咱们这个需要注意的问题,就是咱们在设置这个编码过滤器的时候需要注意的问题啊,SPAVC中处理编码的过滤器咱们一定要配置到其他过滤器之前,否则无效,大家注意为什么啊。因为我们在spring VC中,咱们需要用到的过滤器只有两个,除了这一个之外,咱们还有一个处理请求方式的过滤器,然后呢,那为啥我们需要先设置它,因为我们说过咱们的这个这个设置编码的时候,你设置编码之前你一定不能获取其他的请求参数,如果获取了其他的请求参数的话,咱们设置的编码就没有任何效果了,对吧?好,而我们当前呢,然后咱们的这个另外一个过滤器的话,然后它就这个过滤器在执行过滤的时候,它就来获取了一个叫做下划线method的请求参数,所以说呢,大家都知道过滤器里面的这个过滤器的执行顺序,它只跟我们在web点叉ML中配置的filter mapping有关顺序有关,对不对?所以说如果你先配置的是我们的这个处理请求方式那个过滤器的话,那它是不是就获取请求参数了,那我们后边咱们再配置这个过滤器的时候,那大家说你在设置的编码,它还有。
01:16
可用吗?就没有用了啊,所以说咱们一定要先配置这个。处理请求参数的这个,呃,处理编码的这个过滤器,再配置其他的过滤器啊,行,那下面呢,我们现在咱们获取请求参数已经说完了,那下面呢,咱们就来看一下咱们的这个网域对象中去共享数据,因为我们处理请求的一个过程,大家注意,那无非就是获取请求参数,然后调用service处理业务逻辑,然后往预对象中共享数据,最后再实现页面渲染跳转页面,对不对?好,那预对象共享数据,咱们现在用的也是spring VC为我们所提供的方式,为什么呢?因为我们在咱们的控制器方法里面,你没有这些对象啊,对不对?那所以咱们是不是就要用spring mvc的方式来实现功能了?好,那我们当前的预对象呢,大家注意它一共有三个啊,本身呢是有四个,如果说用的是之前学GSP的同学应该都知道一共有四个。
02:16
首先第一个叫做配置contest。然后它来表示的是我们GSP页面的范围,还有一个叫http request。表示的是一次请求的范围,还有一个呢,然后是我们的http session,表示的是一次会话的范围,还有一个是咱们的solve context,也叫做application,对不对?表示的是整个应用的范围,好,而我们现在学习了咱们的这个similar之后,因为咱们不学GSP了,所以说咱们的预对象只有三个,Request,一次请求session,一次会话,还有一个application,表示的是整个应用,对吧?那我们现在呢,咱们先来讲如何往请求域中共享数据,它的方法呢,有很多啊,方法有很多,大家注意,比如说通过solve API,然后向request域中request预对象共享数据,然后model and view,这是咱们的第二种方式,然后第三种方式的话,然后是咱们的model,第四种是map,第五种是model map,你像这些都是可以往咱们的请求域中共享数据的。
03:21
好,那我们下面咱们就把这些这个把这些这个网域堆帮请求域共享数据的方式给大家来实现一下啊,首先呢,第一个叫做solve API这个东西我就不给大家去写了,大家自己去实现一下就行啊,这个没有必要对吧?然后再说咱们以后也不会用这种方式。啊,然后呢,大家只需要知道我们现在咱们该如何在控制器方法里面来获取我们的request对象就行,你只需要在控制器方法中来设置一个request类型的http solve request类型的行参就可以啊,那下面呢,我们是不是就可以来往域对象共享数据了,对不对,哎,行啊,好,那我们直接来看咱们的第二种。
04:05
大家看啊,然后我们的第二种里面,咱们需要用到一个类叫做model and view,大家注意这个东西还是非常重要的,为什么?因为这个model and view啊,是我们官方,咱们的VC官方推荐我们来使用的,叫做model and view。好,为什么呢?因为model and view,咱们在用的时候,咱们需要,因为这个model and view,咱们从名字里面就能看出来,它有两方面的功能,第一方面的功能叫做model模型。干啥的网域对象中共享数据的,然后还有一个方面的功能叫做view,干啥的来设置咱们的视图的。所以说model and大家注意,它的功能就是帮助我们往预堆象中共享数据,并实现页面跳转,渲染页面。OK吧,行,然后这个东西为什么我说它是咱们的SPAVC官方推荐的呢?那是因为啊,咱们在这个dispatch of处理请求的这个底层代码中,然后不管你用的是什么方式,就是不管我们用的是咱们的什么solve API啊,还是我们下面咱们讲的什么model and view啊,还是model,还是map,还是model map,然后最终呢,在底层中啊,它都会将咱们的网域对象中共享的数据,还有咱们的视图封装为一个model and view对象。
05:25
所以说大家注意,就不管你用什么方式,你像我们之前,然后咱们写的这种方式,对吧,咱们返回一个string,咱们没有往喻对象征共享数据,那其实这个方法被执行之后,被dispatch solve里面,在dispatch solve里面被调用了之后,它的方法的返回值就是一个固定的model and view。也就是说,不管你用什么方式来实现页面跳转,还有网请求域中共享数据,最终咱们的这些数据都会被封装到model and view里边,OK吧,行来,那我们现在呢,把这些给它关掉,然后呢,我们在这再来创建一个controller来。
06:05
New一个叫做什么呢?这个咱们叫做test scope啊,Scope是玉的意思,对吧,然后咱们count control,咱们在这呢,给它加上一个controller注解好,然后比如说呀,咱们找到咱们的首页,然后在这咱们再写个HR。OK,然后那我们下面是不是就可以往咱们的这个域对象请求域中共享数据了,来咱们在这写个超链接,然后TH括号。好,然后是A大括号,然后斜线叫做test,然后斜线咱们就叫做mav吧,就是model and view的意思。OK吧,行,然后这个咱们是用来测试什么功能的,通过然后model model and view对吧,然后向请求域,向请求域,然后来共享数据,共享数据OK啊。
07:03
好,那我们现在咱们把这个请求呢,来处理一下啊,然后咱们需要来创建一个控制器方法,然后来写上request的埋屏,然后它的请求地址跟咱们当前要处理的这个地址是不是应该是一样的,对吧?Public返回仍然是string,好,然后呢,啊,不对,返回应该是谁?应该是model and view,刚才我跟大家说了,如果你要用model and view的话,那我们当前咱们这个方法的返回值必须将model and view进行返回。啊,然后再往下继续,然后咱们这个就叫做test mav,行,就这样啊,好,怎么写呢?看好,那既然咱们需要来返回一个model and view,那咱们现在就先创建一个model and view来等于new一个model and view,好,然后咱们说了这里面一共有两个功能啊,然后什么两个功能呢?记好了,非常简单。杠星星好,然后我们当前的model and view它包含啊,然后它包含这个什么,Model model,然后和view的功能,和view的功能。首先咱们的。
08:15
来大家,那大家来看,那咱们的model是什么功能呢?View又是什么功能呢?View对吧?Model的功能是用来干嘛的,大家注意,然后固定的啊,它不不能向其他的域对象中共享数据,它只能向哪啊,向咱们的请求域中共享请求域中然后共享数据,然后这个view。那这个东西又是干什么的,大家注意来设置咱们的逻辑视图,实现页面跳转逻辑视图,逻辑视图对吧,然后来实现页面跳转实现。实现页面跳转,OK,那咱们下面咱们就来测试一下呗,比如说model mav,然后里面它有一个什么方法,叫做set,叫做ad object。
09:05
叫做ad object,大家看啊,里面有一个string类型的attribute name属性名,有一个object类型的attribute value,大家看,这不就是我们之前,然后咱们在讲咱们的这个域对象的时候,你的set attribute里面不也是这两个参数吗?对不对?所以说这就是网域对象中共享数据的啊,咱们来写一下。往请求一中共享数据,比如说咱们在这,大家看咱们的这个。嗯,这个请这个属性名,咱们叫做test request requestcope test request scope,然后它的值呢,咱们就叫做hello,逗号Mo啊model model and view,行就这样去写啊好,那我们现在呢,咱们这个网域对象中共享数据写完之后,那下面呢,我们是不是要来设置,那是不是我们就要来设置咱们的逻辑视图了,我们原来咱们是在这个方法的返回值设置一个字符串来返回一个逻辑视图的字符串,而我们现在呢,因为你用了model and view,那我们就必须通过model and view来设置,所以说在这是来设置咱们的逻辑视图,OK,叫做mav,然后点叫做set,什么叫做set view name,设置视图名称叫啥呢?往哪跳还是往这跳,然后最后直接将咱们的model and view对象返回。大家注。
10:34
一定要看好啊,你用了model and view之后,我们当前这个方法的返回值必须将它进行返回,否则没有任何效果啊。好。那我们现在咱们往去跳,那我们是不是就可以在这个页面来获取我们请求域中的数据了,怎么获取,比如说我在这写个P标签,然后咱们通过TH冒号text对吧,然后来渲染这个标签中的内容。好,怎么写啊?
11:00
在我们的SIM里面对不对?然后我们该如何来获取我们请求域中的数据呢?大家注意,非常简单,直接一个Dollar大括号,然后来写我们共享到预对象中的属性名就行。咱们叫什么,咱们。好,咱们叫做test request scope,大家注意啊。直接这样写就行。知道这是干啥的?不,这是C中的语法来渲染我们当前咱们P标签中的文本内容的。好,然后我们要拿着什么展示在咱们P标签中,然后拿着从咱们的请求域中来获取test request scope这个属性名所对应的属性值,OK,来,下面咱们来进行一个测试啊,大家注意。好,那我们现在咱们就可以直接往咱们的预对象中去共享数据啊,当然了,咱们共享数据的方法有很多,这个model and view,虽然说官方推荐,但是我们到底用不用大家还看自己,你感觉怎么写起来简单就怎么写啊好,那我们现在咱们来刷新,然后咱们来访问我们当前的这个网易对象中共享数据的这个对吧?超链接大家看啊,点击大家看有没有。
12:11
那我们现在咱们是不是就可以来获取请求域中的数据,然后展示在页面中,OK吧,好好,这是大这个大家注意,这是我们当前的第一种方式啊,通过咱们的model and view来。好,然后咱们向这个预对象,然后共享数据对吧,然后首先第一个是通过model and view向请求欲向请求域共享数据。对吧,然后怎么写,大家看好啊,然后使用咱们的model and,使用model and view10对吧,然后可以使用其model功能,Model功能对吧,像请求域,然后共享数据,好,然后来使用它的view功能,对吧?然后来设置咱们的逻辑视图。
13:07
能看懂吧,好,然后但是啊,咱们的控制器方法一定要将model and view and view,然后来作为返回值。作为方法的返回值,行,这个大家看啊,这是咱们的model and view的用法,至于我跟大家说了,咱们的底层里面,不管你用什么方式,它最终返回的都是model and view,那咱们到咱们这个再写几个方法的时候,咱们一块去看一下就可以啊好。
我来说两句