生命周期问题

来源:6-2 实现网关过滤器

py_builder

2020-09-09 15:30:16

http://img.mukewang.com/climg/5f587f3209d5dda510440668.jpg

如图

问题1:  RequestContext 是什么时候产生的,,是不是在  用户输入URL,发送请求的时候产生的??  它是什么时候销毁???   比如URL---产生请求---此时请求已经销毁,,,但RequestContext是不是还没有销毁,,相当于 我是不是还能从收到请求转发的网页,如jsp中使用  request.getAttribute()获得 RequestContext.setAttr()中的内容???

问题2.   常量 SEND-RESPONSE-FILTER-ODER -1  是什么含义??   发送响应之前???  也就是请求被处理完,但还没返回响应之前的 那个时机???

写回答

3回答

好帮手慕小脸

2020-09-09

同学你好,

1、理解有误,这里是用来获取上下文的,是在项目启动的时候生产的,项目关闭时销毁的

    2)这里可直接在servlet中使用getServletContext来获取该对象

2、由于过滤器可以有很多个,我们定义的只是其中一个,系统也会有其他的类型的过滤器;所以这里SEND_RESPONSE_FILTER_ODER -1 含义就是在系统的最后一个过滤器执行之前。  

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

1
hy_builder
h 你这么一说,我比较清楚了 1. 继承自 ZuulFilter类以后,,里面有一个方法 RequestContext.getCurrentContext(), 这个方法返回的 其实是 ServletContext 2. SEND_RESPONSE_FILTER_ODER 意思是 发送响应的过滤器的 序号,这个过滤器基本上就是最后一个执行了 , 如果在此基础上减一, 即比它先执行,,即 系统的最后一个过滤器执行之前
h020-09-15
共1条回复

好帮手慕小脸

2020-09-15

同学你好,getServletContext获取的是ServletContext,并不是RequestContext。如下:

http://img.mukewang.com/climg/5f60890209ae3a5309580178.jpg

同学不要搞混了哟。

祝学习愉快~

0

好帮手慕小脸

2020-09-15

同学你好,

1、上述方法的返回值是RequestContext,如下:

http://img.mukewang.com/climg/5f6078e6094dc7c208890133.jpg

2、理解是可以的

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


0
hy_builder
h 对于问题1: 我知道他获取的是 RequestContext对象,,我说的是 它相当于 ServletContext对象,,因为我之前问 RequestContext.setAttr("something")的内容,,你说 可以通过 getServletContext.getAttribute("something")来获取,那两者不就基本相等(就是对 ServletContest的包装罢了)
h020-09-15
共1条回复

0 学习 · 16556 问题

查看课程