00:00
我们刚才讲了使用action context来获取外部资源,那这个是跟API解耦的方式,获取外部资源的第一种方式。还有第二种方式,通过实现接口的方式,我们先来看句子实现跟效果,然后的话呢,我们来比比对这两种方式的优缺点,并且给出我们的建议。OK,先看具体的效果。首先我来写一个类test action。解一个方法。返回。那这个的需求呢,跟上一个。这是action content那个需求一样,我们先来搞定一个预对象,那其他的几个道理都是一样的。
01:07
搞什么呢?现在搞了一个application,对应的map,说像。AB中。加入一个属性啊,比方说。Application。D。这也是一个to,然后当然我们还有一个什么呀。滚。Application中。读取一个属性,读这个属性呢,这边我们写了是吧,我们有这么一个date,我把这个date直接读出来。
02:02
并打印。哎,就可以了,我们把这个搞定,然后我们再来说其他的几个。那我首先我来做一些配置哈。这个配置呢,跟上一个配置差不多,我们把这个给它拿下来。呃,叫。A。Well。一类呢?It's a fair action。好了,我们改一下where的SD。有一个。新建一个JSP。好了,我们首先写个H4这个。
03:07
然后。搞一个application范围内的值。I believe。Scope点。T。来这个配置的话呢,就完成了,搞到它,那我首先都怎么样,我得搞到application对应那个map。怎么搞啊?这个我们说我们不用那个action context,我们通过实现接口的方式,接口就是。Application这个接口。你说一,诶,我们加上了这样的一个。赛的方法,他把application对应那个map给注进来了,于是我添加一个成员变量就可以了吗?
04:05
好,我把这个值获取一下。搞定好了,换一个值。BOO。Application key too。Aviation value to。好了,我再获取一个值,直接打印了哈。Application and GA。It。写完了。有一个。Index里边我们需要加一个加一个超链接啊大一点。B2B2。下来。
05:04
Aware。OK,没效果。好,我点一下。大家看这个application key two是不是可以获取啊,同样这个date也没问题,嗯,这就是。通过实现avr接口的方式。来读写application范围内的属性。回头看一眼,我们看实现了一个application。然后呢,我通过这个set方法的方式,把这个map给注入进来,然后我在这个方法里边就可以使用。
06:05
好了,那跟这个类似的还有什么呀,还有。还有request,还有pro。添加的方法我们看一下。Meters对应的map,这个map的话呢,已经修正了是吧,是一个string的数组。Request in the map。的map啊这个。用的方式跟前面这个方式都是一模一样,我就不再一个一个演示了。呃,大家课后的话呢,把这个演示呢,把这个练习呢完成,呃,我们要求的效果跟我们前边用这个action context获取那个效果是一样的,大家课后完成。
07:06
我们具体也可以说一下是吧,实现的方式的话呢,跟这个application一模一样,你定义相应的成员变量,然后在这里边给那个成员变量赋值不就可以了吗。那这里面我们需要说一下这些方法是谁调的呀,当然是。Stra to调用的stra to把已经。封装好的这个map对象给我们传进来,我们接收就可以了。这就叫依赖注入,我们在论里边的话呢,还会深入的来讲这种编程思想。好,OK。这个我们说完。下一个。我们要提一下,那我们有这个aware接口的方式,还有我们前面讲到的这个。Action context这个方式我们应该选用哪一个?他们之间有什么区别呢?
08:05
实际上他们哪一个都可以实现功能,这个是相同的地方,那不同的地方,我们看我们使用这个action context来获取各种map啊,我们是在这个方法里面,哎,一个一个获取。这个时候如果我还有其他方法也需要用到对应map的话,你是不是还得再获取一遍呀?呃,你需要获取多次,而我们实现这个额外二接口呢?那你只需要我们定义这样的一个成员变量,我们注入一个就可以了,那我们其他的时候,其他的这个action方法,比方说我有一个这个这个这个save的一个action方法。哎,这个时候我们在这里边,我们要是想用到我们的这些map对象的话,我是不是也可以直接使用啊,哎,这是它的一个好处。
09:02
好了,我们来写一下选用的建议。这个我们放在note里边哈。选用的电影实际上是用哪个都可以。但是落一个。Action类中有。播个。Action方法。切每个方法。都需要这多个方法吧。各个方法都需要使用。与对象的map或。Pro。Peters则建议。
10:05
使用直线。个VR接口的方式。呃,建议使用左贝尔接口的方式,因为用这样的方式的好处就是我不用在每一个方法里边都在获取一下那个map好了,那到这块的话呢,我们就把这个呃跟SOAPI解耦的方式,这两种获取map对象的方法说完了,而且的话呢,我们还进行了一个对比。所以这里面我们再来说一个小问题哈。啊,关于。Session map。我们看一下。在这里边呢,我可以通过action context或者是aware接口得到各种map application map。有session map,还有request map,还有这个,那其中我们这个session map,诶。
11:05
有一点值得我们再深入研究的,我们首先我们打印一下这个赛,来看一下这。3MAP点。有一个。An action context。测试。Index第一个。我们看一下这个时候我们打印的这个session map是谁呀?是不是一个session map的一个对象啊,它本身就是一个session map。看一下session map3。走。来看这个session map里面有一个什么方法,有一个。Invalidate g,我们可以通过调这个session map的invalid的方法,使我当前session map对应那个session失效。
12:10
怎么做到的,我们从这块儿的话呢,看这个大纲的话,我们能看到。实际上这个session map里边封装了session跟request,在我调这个方法的时候,它的确就是使这个session失效了,看到了吧?呃,我来写一下。我们可以进行一个强转。If。Session map in session map。等的话呢,我进行一个强转。等于30。Map。强转,然后SM点。
13:00
Out,我们说。三身失效啊好了,但是一失效的话,页面上我就获取不着塞身的那个。属性了是吧,看一下。那这块我还可以获取到回退。点这个链接看一下session失效了,这个之后就不着了吧,嗯,这是我们需要注意的一个小细节,笔记里边加一下。再map。Session对应的map实际。上至。三身map类型了。两转后。
14:03
强者。后若调用及validate。方法可以使。急。Session。失效。嗯,就是我们说的关于。三是麦这块的内容。
我来说两句