00:03
好啊,我们今天上午分析了一个用来这个去拦截请求的这个过滤器,对吧?好,那么这回咱们这个过滤器呢,起到的是一个拦截的这个功能啊,我们也可以把它叫做拦截器,好。谁?来。咱们在这个web上面啊,再加一个这个点什么,这回是什么,还是future对不对,然后在下面呢,咱们再来一个什么同学们。哎,你想一想啊,是不是我们这回这个过滤器,不论是过滤字符编码还是拦截请求啊。哎,是不是全都是属于我们CRM项目这个范畴的。对吧,我注意看我这个settings里边是不是也有一个外B点系列的,对吧?好,这个外B点系列的是这个controller,如果你的这个过滤器是属于这个setting的系统设置这个模块下的,那么我们应该是往这里写,对不对?好但是呢,现在不论是过滤字符编码。
01:16
还是咱们要拦截这个请求,都是属于咱们这个CRM项目范畴的啊,所以说呢,在我们这个CRM下建立这个web点这个filter OK吧,那将来啊,如果啊,我们需要使用到另一个组件叫监听器,对吧?那如果这个监听器也是属于我们在全项目范围之内做监听的,那你想一想,是不是我应该在这个web点下边一个分层,应该再来个点listen哪对不对。OK啊,现在暂时先用不到啊,好,我们现在来一个六。就出来一个class啊。行,既然是验证有没有啊登录的,我们来一个log in啊。
02:05
好,这个写法啊,跟上午咱们过滤这个字符编码保持一致,Filter。好,重写咱们这个do filter。Re EQ以及re SP,好,这里边咱们来一个A好。S out,咱们来一个啊进入到啊,验证有没有登录过的。过滤器OK吧,好啊,怎么去验证呢,同学们。如何呀?咱们是不是主要是看这个塞神与对象,是这样吗?三参与对象其实有两种判断方式啊,你判断是新塞参还是老塞神是不是可以啊。
03:00
对吧,你判断它的这个新旧,或者啊,咱们用更简单的一种方式啊,判断这个session身对象里边啊,Session与对象里边有没有user对象,是不是也可以啊,如果你登录过你的session域对象当中一定有user对象,是这样吗?如果你没有登录过session域对象中是没有,OK吗?那首先我们就要从这个session域对象中取user对象好出。怎么取呢?以前咱们用的是request.get session对吧,但是现在咱们没有,咱们现在有一个什么呢。这个REQ是吧,好看看有没有get。再说没有。所以说我们现在仅仅只是用这个负接口,So that request是不是已经啊办不到了,是这样吗?我们还得用它子接号啊,Http request,而且一会咱们要做一个重定向相关的操作,那么我们之前使用的是response.send reddi directct做重对项对吧?那这回咱们只有res.send。
04:10
是没有啊,所以说我们现在啊,还还是得用啊,基于HTTP协议那两个对吧,好,我们是不是可以转一下啊,这两个接口之间很明显是一种这个父子关系对吧?好,So that request和http so that request,谁是父亲谁是儿子。他是父亲,加上HTTP是儿子,对不对,儿子比父亲具体一个什么呢?而这是基于HTTP协议的。什么request?是这样吗?也就是说儿子永远要比父亲要具体啊,好,我们现在要使用http serve。Request要用它对不对,Request,哎,这个东西咱们一会儿用不用强转一下呢。
05:00
要不要?幽默。报错了。对吧,报错就得需要干嘛呢?报错就得需要强转,这是我们的这个认知范围是吧?啊,如果不报错咱就不用强转对吧,那这个东西怎么记一下啊同学们。上转下和这个下转上的问题,父亲转儿子,儿子转父亲的问题,是这样吗?那以后在笔试中人家可不给你报错了啊,让你去写啊,到底要不要强转,也就是说上级转下级就相当于什么呢?你父亲去做儿子。哎,你得强制他,或者说什么呢?你让省长去当市长,是这样吗?啊,不愿意,肯定得强制他。那么如果你要让市长去当省长呢?属于下转上,就不用强制,不用强制他OK吧,啊,就什么东西有个自己的记忆方式啊,行,来,Http so that response,好,等于Rep。
06:08
行,这俩同学有了啊,接下来咱们来取三。等于request get。Session,好,再从session中取这个user对称行吗?好。session.get attribute,这里边怎么来个?User,好啊,这个咱们还得想转,因为它返回的是一个object对吧,好判断一下,如果咱们这个user它不等于空,说明什么呢。说明咱们登录过对不对。好。如果U不为空,好说明登录过啊,我们将请求放行就行了,对吧?好,直接来一个。
07:01
train.do filter。好,那下面这个L字啊。啊表示啊没有登陆过,咱们要给它重定向导登录页,是这样吗。到登陆也好,来一个。点。Send right,是这样吧,行,关于重定向,我们要复习两个问题啊,呃,第一个问题是啊,在此处啊,重定向的路径怎么写?第二个是我们为什么。使用重定向使用转发不行吗?来,首先先看第一个啊,重定向路径怎么写同学们。
08:02
也就是说咱们写的路径肯定都是绝对路径,是这样吗?好,那么在实际项目开发中啊,那么对于路径的使用,不论操作的。是前端还是后端啊,应该一律使用什么呢?绝对路径是这样吗?好,那么关于转发和重定向。和重定向。嗯。定向的路径的写法如下,好,呃,首先是这个转发啊,你不论转发还是重定向是不是肯定都是绝对路径啊,对不对,但是他们这个写法有区别啊,转发使用的是什么呢?一种什么呢?特殊的这个啊,绝对路径的使用方式啊,这种绝对。
09:11
路径啊,前面不加杠,项目名好,这种路径也称之为。啊,内部路径啊,内部路径,所以说如果咱们用转发,那我给他回到登录页,咱们是不是直接写一个杠login.gsp就行了。是这样吗?前面是不是不加这个杠项名啊,对吧?好,那如果是重定向呢。从定向。好,它所使用的啊,是传统绝对路径的写法,这个没有什么可过多说明的啊,前面必须以什么开头呢?杠姓名开头OK吧,好,后面跟具体的。
10:08
资源录像啊,那所以说重定向咱们应该来一个杠项名是什么CRM吧,好,杠log1.gsp,但是你得知道啊,不论转发还是冲对象啊,咱们用的都是绝对路径,只不过写法不一样而已,是这样吧,行,咱们这回啊啊来分析第二个问题啊,为什么要使用重定项,使用转发不行吗?转发转发能不能转到登录页上也可以吧?这是肯定是可以,但为啥转发他就是不行呢?转发之后,路径会停留在哪儿呢?同学们?咱们这个路径啊,大家注意啊,咱们这个路径它肯定不是这个log in.GSP了,是这样吗?好,所以说啊,路径会这个啊,停留在。
11:05
这个啊老径上而不是啊,咱们这个跳转之后最新资源的路径是这样吗?好,我们应该在为这个啊,用户跳转到这个登录页的同时。将浏览器的地址栏好,应该自动设置,为什么呢?当前的登录页的路径是这样吗?页的路径,这个没问题吧,也就是说啊,我现在回到了这个登录页,大家注意啊,回到了这个登录页,诶这个。服务关了关了。行,大家注意看啊,比如说啊,咱们现在是一个登录页,那这个登录页上边咱们这个路径是不是仍该给它停留在这个log in JSP上,而不是其他的路径啊。
12:10
OK,那这点需要注意,为什么呢?我为什么要这个路径呢?是因为你看看啊,如果我的这个登录页啊,它显示的不全的话,有一些CSS没有加载,我是不是得刷新按钮,我得刷这个路径啊。我刷这个路径是不是才是刷这个我们这个登录的这个页面呢,能理解吧,好所以说啊,转发和重定向啊,啊区别还挺大的,对不对,好,我们现在来看这个sand right right啊应该怎么写呢。CRM的log in,哎呀,这个应该是字符串杠CR下的杠login点。CSP,但是同学们看一看这个杠CRM。那你能这么想?你能不能这么想?
13:01
不能吧,不能,为什么。你在系统中如果有100处重定向,你是不是就写了100个杠CRM啊,那如果你这个项目搬家了,将来这些个代码都是我拷贝过来的,这些个项目名你说都得改。是吗?很正常啊,我上个月做了一个医疗项目,我这个月又接到一个医疗项目的活。我还要重新开发吗?我从上个月的那个项目里边,是不是都是属于医疗项目,直接把以前的项目直接拿回来,我改吧改吧,就是一个新项目,是这样吗?但是呢,两个项目的项目名他肯定不一样,那你想一想,只要是从立项,你说还得考虑这100处项目名啊,所以说我是不是应该将什么呢?这个杠项名给他写活成为是我动态的,拿到我当前的项名,是这样吗?怎么拿呀?
14:07
Request。点。哎,这这这这个不应该不会啊,因为今天上午咱们还复习过,咱们今天上午复习那个base标签的时候,还记不记得这个东西啊。怎么写来的?说吧,拍一句,看他点request对不对,他的目的是哪,Request点什么?他的目的是拿什么呀?同学们是不是杠项目名啊?没错吧,我现在用这个来代替这个。怎么办?但是咱们现在不用他拿request,咱们用request对不对,那说吧,点什么get contact啊,就是它吧,好。一定要写活啊,行。
15:05
来,咱们配一下啊。再来一个过滤器。好,这个是咱们这个log in。哎,这回咱们绿谁呢,同学们。绿所有的心点多吗?GSP用绿。GSP得绿啊,就今天上午咱们演示了,是不是我知道路径,知道GSP我能直接访问呢。所有的后台和前端咱们是都得绿啊,CSS用绿不。CSS就不用绿了,GS呢也不用了吧,图片是不是都不用绿啊,咱们一般来讲是不是点度代表后台资源,点CSP代表前端资源,是这样吗?哎,也就你绿他俩就行了啊好,那么他们两个看看星点度以及星点看。
16:19
JSP行吗?那那那那如果啊,我就这么给你来一个杠星行不行同学。钢行是不是它是相当于所有,是这样吗?啊没必要滤滤所有OK吧,人家没事知道你一个路径访问一下你的CS,其实拿到一个红色其实没有什么必要,能理解吧,好所以说啊,咱们一般来讲绿的就是一个是后台点度一个前端点GSP啊就可以了。OK吧,好,我们现在来试一下啊。会出问题吗?
17:07
嗯。来,我现在访问一下这个CRM啊,走一个。啥意思啊,看看这一大堆呢,这干啥呀,这是啊,好,那大家注意啊,咱们访问的这个杠CRM-log.gsp啊,我访问的是一个GSP资源,对不对,在我访问到目标这个GSP资源之前呢,你看看啊,跟我们这个过滤器的这个路径匹配嘛,他说匹配啊先哪JSP匹配,所以说先走谁呢?先走log in filter是这样吧,执行这句话吧,执行这句话,诶咱们来看看登录过没。我登陆页还没进去呢,是吧,所以说走E还是哎的。
18:01
LL从定向,从定向到log in JSP是这样吗?那大家想一想,从定向的原理是什么?这个我们可分析过,从定向指的是服务器把这个路径给浏览器,浏览器拿到这个请求之后自动再发出什么呢?拿到这个路径之后自动再发出第二次请求,是这样吗?当浏览器第二次在自动发出这个请求的时候怎么办呢?啊,匹配上了,又匹配上了,又怎样了,又进来了,是这样吗?又进来了,没登录过,还是啊,登录页没进没进来呢,人家又给我一个路径,我拿到这个路径啊。又访问一次。是这样吗?好,所以说啊死循环对不对,所以说啊,我们现在啊,啊要的确确实实是这个点度和点GSP,但是呢啊应该有一些资源是应该让我们默认就能够访问到的,让我们的请求要自动放行,而不需要去判断的,是这样吗?
我来说两句