filter过滤器设置URL例外
来源:互联网 发布:ringdivas 淘宝 编辑:程序博客网 时间:2024/05/01 04:32
在web.xml声明的一个filter中:
<!– session过滤filter –><filter><filter-name>SessionFilter</filter-name><filter-class>com.iqbon.jcms.web.util.SessionFilter</filter-class><init-param><param-name>excludedPages</param-name><param-value>/admin/login.do</param-value></init-param></filter><filter-mapping><filter-name>SessionFilter</filter-name><url-pattern>/admin/*</url-pattern></filter-mapping>
可以看到url-pattern的设置里面过滤的url规则是/admin/*,如果要把/admin/login.do排除在过滤url之外。
可以结合init-param的初始化参数和HttpServletRequest的getServletPath()方法来判断。
<init-param> <param-name>excludedPages</param-name> <param-value>/admin/login.do</param-value> </init-param>
其次在filter的java代码中加上判断:
import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.commons.lang3.StringUtils;importcom.iqbon.jcms.util.KeyConstant;/*** session过滤器*/public class SessionFilter implementsFilter {/*** 需要排除的页面*/private String excludedPages;private String[] excludedPageArray;/*** @see Filter#destroy()*/public void destroy() {return;}/*** 对session进行判断当前访问是否有登录*/public void doFilter(ServletRequestrequest, ServletResponse response, FilterChain chain) throws IOException,ServletException {boolean isExcludedPage = false;for (String page : excludedPageArray) { //判断是否在过滤url之外if(((HttpServletRequest)request).getServletPath().equals(page)) {isExcludedPage = true;break;}}if (isExcludedPage) {//在过滤url之外chain.doFilter(request, response);} else {//不在过滤url之外,判断session是否存在HttpSession session =((HttpServletRequest) request).getSession();if (session == null ||session.getAttribute(KeyConstant.SESSION_KEY_USER) == null) {((HttpServletResponse)response).sendRedirect(“/login.htm”);} else {chain.doFilter(request, response);}}}/*** 初始化函数,获取需要排除在外的url*/public void init(FilterConfig fConfig)throws ServletException {excludedPages =fConfig.getInitParameter(“excludedPages”);if(StringUtils.isNotEmpty(excludedPages)) {excludedPageArray =excludedPages.split(“,”);}return;}}
0 0
- Filter过滤器例外URL设置
- Filter过滤器例外URL设置
- filter过滤器设置URL例外
- Filter过滤器例外URL设置
- filter如何设置例外的请求
- SpringMVC filter设置例外的请求
- filter过滤器设置编码
- 采用Filter过滤器设置字符集
- 用过滤器filter设置编码格式
- Filter:JSP系统设置编码过滤器
- Filter:JSP系统设置多个过滤器
- JAVA中的使用Filter过滤器设置字符集
- PCAP过滤器设置 (PCAP-FILTER )
- 用过滤器filter设置编码格式
- 用过滤器filter设置编码格式
- 用过滤器filter设置编码格式
- 通过过滤器Filter来完成url访问权限限制
- 基于Bloom-Filter算法的URL过滤器的实现
- PAT乙级练习题B1016.部分A+B
- centos安装更新Python2.7以及pip的安装
- Android开发--CardView使用
- 一些简单知识点
- 浅谈 微信支付
- filter过滤器设置URL例外
- Android Tips
- vim的配置
- Description Resource Path LocationType Java compiler level does not match the version of the instal
- 剑指offer 面试题2 Singleton模式 C++实现
- Qt .pro文件部分变量解析
- JAVA之IO 基础(字节流和字符流)
- 串(四)
- 灵感