java Filter过滤器例外URL设置
在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;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import com.iqbon.jcms.util.KeyConstant; /**
* session过滤器
*/ public class SessionFilter implements Filter { /**
* 需要排除的页面
*/ private String excludedPages;
private String[] excludedPageArray; /**
* @see Filter#destroy()
*/ public void destroy() {
return;
} /**
* 对session进行判断当前访问是否有登录
*/ public void doFilter(ServletRequest request, 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;
}
}
http://blog.csdn.net/Error_case/article/details/41946449
- import java.io.IOException;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.commons.lang3.StringUtils;
- import com.iqbon.jcms.util.KeyConstant;
- /**
- * session过滤器
- */
- public class SessionFilter implements Filter {
- /**
- * 需要排除的页面
- */
- private String excludedPages;
- private String[] excludedPageArray;
- /**
- * @see Filter#destroy()
- */
- public void destroy() {
- return;
- }
- /**
- * 对session进行判断当前访问是否有登录
- */
- public void doFilter(ServletRequest request, 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;
- }
- }
java Filter过滤器例外URL设置的更多相关文章
- Java Filter过滤器(拦截路径的配置+拦截方式的配置+生命周期+多个过滤器的先后执行顺序)
Java Filter过滤器+Listen监听器 啥是过滤器 顾名思义即过滤掉一些东西,比如我们经历的高考中考都是过滤器,他过滤掉一些在学习这一方面不是很好的人,而那些成绩好的人则升入高中,大学. 但 ...
- Java Filter过滤器的简单总结
1.Filter的介绍 Filter技术是servlet 2.3新增加的功能.它能够对Servlet容器的请求和响应对象进行检查和修改. Filter本身并不生成请求和响应对象,只是提供过滤功能. F ...
- java filter过滤器及责任链设计模式
什么是Filter? Filter属于sevlet规范,翻译为过滤器. Filter在web开发中有什么作用? 案例一:一个web站点只有用户登录才能继续访问该站点的资源,那么需要用户每次访问都判断是 ...
- 【Servlet】Java Serlvet Filter 过滤器
Filter的设计思想Filter是一种AOP(aspect-oriented programming)的设计思想 : 面向切面编程.用于的请求和响应都会走 使用filter的登录案例我们通过一张图片 ...
- JAVA中的使用Filter过滤器设置字符集
Filter是什么? Filter不是一个Servlet,它可以叫做Servlet链,它可以用来改变一个request,修改一个response.它虽然不能产生一个response,但可以在一个req ...
- java之过滤器Filter
Java三大器之过滤器(Filter)的工作原理和代码演示 一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对w ...
- java:(九大内置对象,计算服务器访问次数,filter过滤器,MVC框架,MVC和三层架构的关系)
1.九大内置对象: <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- Java防止SQL注入2(通过filter过滤器功能进行拦截)
首先说明一点,这个过滤器拦截其实是不靠谱的,比如说我的一篇文章是介绍sql注入的,或者评论的内容是有关sql的,那会过滤掉:且如果每个页面都经过这个过滤器,那么效率也是非常低的. 如果是要SQL注入拦 ...
- java使用Filter过滤器对Response返回值进行修改
转:java使用Filter过滤器对Response返回值进行修改 练习时只做了对request 的处理,这里记录一下,filter 对 response的处理. 原文地址:java使用Filter过 ...
随机推荐
- js实现移动端图片预览:手势缩放, 手势拖动,双击放大...
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- ECS——安装nginx
安装nginx和配置nginx.conf文件 进入home目录,执行以下命令: wget https://nginx.org/download/nginx-1.14.0.tar.gz 下载完成后,执行 ...
- Java内存区域与内存溢出异常--运行时数据区
Java与C之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”. C.C++程序开发在内存管理区域,既拥有每一个对象的“所有权”,又担负着每一个对象声明开始到终结的责任,而Java在虚拟机自动管理 ...
- j2me必备之网络开发数据处理
第9章 无线网络开发MIDP提供了一组通用的网络开发接口,用来针对不同的无线网络应用可以采取不同的开发接口.基于CLDC的网络支持是由统一网络连接框架(Generic Connection Frame ...
- linux 关于时间日期date
一.查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" 2. 修改设置Linux服务器时区 方法 A 命令 : "tzselect" ...
- Java多线程:CAS与java.util.concurrent.atomic
锁的几种概念 悲观锁 总是假设最坏的情况,每次获取数据都认为别人会修改,所以拿数据时会上锁,一直到释放锁不允许其他线程修改数据.Java中如synchronized和reentrantLock就是这种 ...
- mongodb crud
//添加数据 db.users.insert({,"gender":"男"}); db.users.insert({"name":" ...
- Zookeeper学习笔记——2 Shell和Java API的使用
ZooKeeper的使用一般都接触不到,因为平时工作甚少直接使用ZK.但是通过手动操作一下ZK,还是能对其中的门道了解各一二. shell 常用命令 help 查看所有支持的命令 [zk: local ...
- 使用 IntraWeb (28) - 基本控件之 TIWTemplateProcessorHTML、TIWLayoutMgrHTML、TIWLayoutMgrForm
TIWTemplateProcessorHTML //使用外部的 html 文件做模板 TIWLayoutMgrHTML //直接输入 Html 文本做模板 TIWLayoutMgrForm //这应 ...
- 广州移动宽带DNS
目前还搞不明白这些DNS服务器是怎么得出来的,现在只停留在网上收集. 下面是收集比较靠谱的DNS广州移动宽带的: ns3.gd.cnmobile.net 221.179.38.7 ns4.gd.cnm ...