请教过滤器问题

keerqin 2006-07-04 07:40:54
当把请求提交时经过过滤器过滤,如下所示:
代码1;
filterchain.dofilter();
代码2;
请问对客户端请求过滤时代码2执行吗?代码2是不是对服务器回应信息的过滤?
...全文
176 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
funcreal 2006-07-13
  • 打赏
  • 举报
回复
你问这么多,加上断点调试一下不就知道了吗?

过滤器就是要在访问所请求的网页前做一些事情,访问完后再做一些事情。除非你在要访问的页面中跳转了。

System.out.println("请求之前");
filterchain.dofilter();
System.out.println("请求之后");

有点装饰模式的意思
keerqin 2006-07-13
  • 打赏
  • 举报
回复
再麻烦楼上一下:
过滤request用代码1,filterchain.dofilter()调用过滤器链中中下一个过滤器继续过虑,当都过滤后,把请求提交给目标资源,目标资源处理后,再把处理结果response用代码2过滤,最后返回客户端。是这样吗?
shangqiao 2006-07-05
  • 打赏
  • 举报
回复
差不多,filterchain.dofilter()会继续会执行链后面的主件,如servlet,jsp等等,如果没有这个,就直接返回而不会继续执行了,所以当filterchain.dofilter()返回时链后面的主件都执行完了
shangqiao 2006-07-04
  • 打赏
  • 举报
回复
在servlet2.3规范中filter有类型区分。看样子LZ想实现的是一个request类型的。servlet执行的模型类型于一条链,而filter则是在这条链中插入“一脚”,当来时和回来时截获住。所以你上面的理解是对的。但是filter可以在这条链的什么地方插入“一脚”呢,这个就是和类型相关了,如request就是客户端与服务器之间接墒的地方,而FORWARD则是在你代码中调用forward到另一个组件时触发,还有INCLUDE,ERROR也类似


The dispatcher has four legal values: FORWARD, REQUEST, INCLUDE,
and ERROR. A value of FORWARD means the Filter will be applied
under RequestDispatcher.forward() calls. A value of REQUEST
means the Filter will be applied under ordinary client calls to
the path or servlet. A value of INCLUDE means the Filter will be
applied under RequestDispatcher.include() calls. A value of
ERROR means the Filter will be applied under the error page
mechanism. The absence of any dispatcher elements in a
filter-mapping indicates a default of applying filters only under
ordinary client calls to the path or servlet.
shanshuiboy 2006-07-04
  • 打赏
  • 举报
回复
不是很明白楼主的意思啊,你是要用户登录还是要过滤敏感字?

请说清一点
keerqin 2006-07-04
  • 打赏
  • 举报
回复
楼上意思是不是
客户端向服务器的请求信息用代码1过滤,服务器对客户端回应信息用代码2过滤。是这样吗

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧