早教吧 育儿知识 作业答案 考试题库 百科 知识分享

java过滤器怎么不过滤一个页面里包含的多个请求意思就是:我要访问的一个页面里包含了好几个action,我的过滤器会过滤jsp、html和action,现在我希望我的过滤器只过滤一次,简单描述就是用户

题目详情
java过滤器怎么不过滤一个页面里包含的多个请求
意思就是:我要访问的一个页面里包含了好几个action,我的过滤器会过滤jsp、html和action,现在我希望我的过滤器只过滤一次,简单描述就是用户点击一下,过滤器执行一次,
我的过滤器是为了用户访问页面进行抽奖的,用了2楼的方法的话那么就不能实现浏览页面抽奖了
▼优质解答
答案和解析
abstract public class FilterPerRequest implements Filter {
private static final Boolean FILTERED = true;
private ThreadLocal statusLocal = new ThreadLocal();
@Override
final public void doFilter(ServletRequest req,ServletResponse resp,
FilterChain chain) throws IOException,ServletException {
if (hasNotFiltering()) {
doFilterAndDispatchRequest(req,resp,chain);
return;
}
//dispatch request only
chain.doFilter(req,resp);
}
private boolean hasNotFiltering() {
Boolean status = statusLocal.get();
if (status == null) {
return true;
}
return false;
}
private void doFilterAndDispatchRequest(ServletRequest req,
ServletResponse resp,FilterChain chain) throws IOException,
ServletException {
try {
doFilterPerRequest(req,resp);
setFiltered();
chain.doFilter(req,resp);
} finally {
cleanFilterStatus();
}
}
abstract protected void doFilterPerRequest(ServletRequest req,
ServletResponse resp);
private void setFiltered() {
statusLocal.set(FILTERED);
}
private void cleanFilterStatus() {
statusLocal.set(null);
}
}
那要就情况而定了.
如果是request范围内的话,就可以使用上面的过滤器.
如果是session范围内的话,就需要在session内存储一个标志变量,方式和request差不多.
如果是限制用户操作的话,那就必须将用户操作持久化.
由于你的问题不明确,我也不好多说...
看了 java过滤器怎么不过滤一个...的网友还看了以下:

帮忙用surprisingjoyingtouching组成一段话,要能表示一个人是一种令人惊奇出其不  2020-03-31 …

有啥好听的英文歌啊?老点少点没关系,一定要好听.像什么蚂蚁牙黑上帝是个女孩之类的不一定非要英文越南  2020-05-12 …

2010年春晚作文结尾要好点的结尾,我写不出来,内容到写好了。请各界人士帮帮忙,各出一份力,不要唧  2020-05-13 …

(一个字也没改)铁、镁、铝三种金属与适量的稀硫酸恰好完全反应,过滤后,滤纸上留有,滤液中存在的阳离  2020-05-14 …

写一篇英语作文你有什么爱好,你的父母及朋友又有什么爱好,并说明理由,谈一谈哪一种爱好最特别.100  2020-05-14 …

宣王好射的字词解释宣王好射,好:而终身自以为九石,身:为:宣王左右皆“中关而止”的原因是什么?  2020-05-16 …

“好”字的解释相传三国时大将军关羽写过一本《诫子书》,书中这样1句告诫儿子的话:“读书好,好读书,  2020-06-09 …

下列物质的分离方法不正确的是()A.用结晶的方法分离汽油和水;B.用过滤的方法除去氯化钠溶液中的泥  2020-06-21 …

将一块铁铝合金放入足量的稀盐酸中,完全反应后,向溶液中加入足量的氢氧化钠,然后过滤,将滤纸上的残渣  2020-06-28 …

下列家庭小实验中,不能成功的是[]A.用过滤的方法把矿泉水变成纯净水B.用洗涤剂除去餐具上的油污C  2020-07-01 …