java filter 跳过_如何在java中的过滤器链中跳过一个过滤器
您可以在请求中设置属性,并在第二个过滤器中进行检查。
public class FirstFilter implements Filter {
//...
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setAttribute("executeSecondFilter", true);
//...
if(someReason)
servletRequest.setAttribute("executeSecondFilter", false);
filterChain.doFilter(servletRequest, servletResponse);
}
}
public class SecondFilter implements Filter {
//..
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
if (servletRequest.getAttribute("executeSecondFilter") == null || !((Boolean) servletRequest.getAttribute("executeSecondFilter"))) {
filterChain.doFilter(servletRequest, servletResponse);
}
//...
}
}
您可以简化上述代码,如下所示:
public class FirstFilter implements Filter {
//...
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//...
if(someReason)
servletRequest.setAttribute("executeSecondFilter", false);
filterChain.doFilter(servletRequest, servletResponse);
}
}
public class SecondFilter implements Filter {
//..
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
if (servletRequest.getAttribute("executeSecondFilter") != null) {
filterChain.doFilter(servletRequest, servletResponse);
}
//...
}
}
这样你只需检查属性“executeSecondFilter”的存在
java filter 跳过_如何在java中的过滤器链中跳过一个过滤器相关推荐
- java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧
java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...
- java整数的因式分解_如何在Java中找到整数的质数-因式分解
java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...
- Java poi 列移动_如何在java xssf中移動列poi
如何將現有列數據和格式化到Apache POI中的下一列並將下一列移到右側.如何在java xssf中移動列poi 我試過了. 讓說我的代碼是這樣... XSSFCell oldCell = work ...
- java 精确到微妙_如何在Java中以微秒精度测量时间?
我在Internet上看到应该使用System.nanoTime(),但这对我不起作用-它为我提供了毫秒级的时间.我只需要函数执行前后的微秒,就可以知道需要多长时间.我正在使用Windows XP. ...
- java 方法当参数_如何在Java中将函数作为参数传递?
如何在Java中将函数作为参数传递? 这个问题在这里已有答案: Java Pass方法作为参数 14个答案 是否可以将方法作为参 ...
- java 千位分隔符_如何在Java中设置千位分隔符?
问题 如何在Java中设置千位分隔符?我有BigDecimal的String表示,我想设置千位分隔符并返回String. #1 热门回答(180 赞) 你可以使用格式功能","; ...
- java 判断是否换行_如何在java中检测换行符
是的,我已经阅读了一些关于换行符的其他帖子,但他们没有帮助我.如何在java中检测换行符 我的Java程序应该读取一个.PHP文件,并将源代码分成逐行格式.问题是我似乎无法区分一个换行符和另一个换行符 ...
- java如何实例化集合_如何在java中实例化一个Queue对象?
Queue是一个接口,这意味着你不能直接构造一个Queue . 最好的select是构造一个已经实现Queue接口的类,如下所示: AbstractQueue , ArrayBlockingQueue ...
- java date加月_如何在Java中向当前日期添加一个月?
LocalDate::plusMonths 例: LocalDate.now( ) .plusMonths( 1 ); 最好指定时区. LocalDate.now( ZoneId.of( " ...
最新文章
- Beta 冲刺(5/7)
- 1049. Counting Ones (30)
- sublime text3注册激活及失效解决办法
- 【Python基础】盘点 Python 10 大常用数据结构(上篇)
- idf实验室--简单编程字符统计
- .net 门槛高不高之我见
- 基础知识很扎实 - 但是面试就是做不出来, 怎么办? (长, 慎入)
- leetcode - 120. 三角形最小路径和
- Android 常用语句
- 王通讲生物信息学学习方法
- 纯新手DSP编程--5.29--DSP/BIOS任务管理和后台线程
- 【效率】专为Win7系统设计的极简番茄计时器 - MiniPomodoro (附源码)
- windows下USB通讯
- (Josephus )约瑟夫环问题 C语言实现
- 一些常用软件镜像地址
- 五年饮冰,难凉热血”,一名专科生的求学历程
- vs2013 qt5.6.3安装
- HDU - 6438 Buy and Resell (贪心 + 优先队列)
- 2015.4.28 今天开博客了
- python中英文字母和中文汉字所占的字节