在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;}
}

filter过滤器设置URL例外相关推荐

  1. [JAVA EE] Filter过滤器

    Filter过滤器 ◼ 过滤器(Filter)可以动态地拦截请求和响应. ◼ 应用场景:过滤敏感词汇.防止SQL注入.设置字符编码.进行URL级 别的权限访问控制.压缩响应信息等. 启动文件DemoA ...

  2. spring boot Filter过滤器的简单使用

    springboot使用Filter过滤器有两种方式: 一种是实现Filter接口然后通过@Component注解向项目加入过滤器 另一种是通过配置类来配置过滤器 @Component public ...

  3. 【Servlet】Filter过滤器详解、使用示例

    Filter过滤器讲解 定义 过滤器处于浏览器与servlet之间,是一个实现了 javax.servlet.Filter 接口的 Java 类 客户端发送的请求.服务器发送的资源,需要通过过滤器,才 ...

  4. java filter教程_Java Web Filter 过滤器学习教程(推荐)

    一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...

  5. Filter过滤器~~~编码过滤和登陆验证

    Filter过滤器··简介: Filter过滤器是一个小型的web组件(web三大组件之一), 可以动态地拦截url请求和响应, 以便查看.提取或操作包含在url请求和响应中的信息. Filter过滤 ...

  6. SpringBoot中AOP实现落地——Filter(过滤器)、Intercepter(拦截器)、Aspect(Spring AOP)

    文章目录 一.一切要从Servlet说起 1.1什么是Servlet 1.2为什么需要Servlet 1.3Servlet如何响应用户请求 1.4Servlet与Tomcat处理请求的流程 1.5Se ...

  7. SpringBoot之Filter过滤器的实现及排序问题

    相关文章: SpringBoot 之AOP切面的使用 SpringBoot之Listener注册到Spring容器中的多种方法 SpringBoot之Interceptor拦截器注入使用 Spring ...

  8. JavaWeb-10课Filter过滤器

    目录 一.JSTL中的Core标签库 1.标签 2. 标签 二.Filter过滤器 1.什么是Filter 2.过滤器如何实现拦截? 3.Filter生命周期 1.Filter接口中三个重要的方法 2 ...

  9. 前后端整合+Request(请求转发)+respon(重定向)+get+post+Filter过滤器

    一.请求Request 是指 从前端浏览器 到 后端的Servlet程序 的访问过程,叫请求的过程 可以使用Servlet提供的Request对象,来解析请求中的请求参数 1.常用方法 getPara ...

最新文章

  1. python使用matplotlib可视化跨年数值指标中位数变化率、使用pct_change函数计算变化率、年环比变化率(pct_change function)
  2. 谷歌浏览器扩展程序XDM_请立即更新您的谷歌Chrome浏览器 获取重要的安全补丁程序...
  3. Django 1.11 bootstrap样式文件无法加载问题解决
  4. 【Python】选择数组中的数,拼接成一个最大字符串数(易错题,cmp_to_key举例)
  5. 用户 IP,里面藏了多少秘密?
  6. 天池 在线编程 旅行计划(暴力回溯)
  7. ubuntu16.04 升级内核
  8. 3G了 由PC-手机 我们想了些什么呢
  9. 为什么要使用MQ消息中间件?
  10. Flink当中使用kafka Consumer
  11. 看我72变:解决Entity Framework中枚举类型与tinyint的映射问题
  12. MyBatis-Plus学习
  13. DNA序列转换为RNA序列
  14. 这里有最新最全最专业的便携图形工作站硬件配置方案,来看看?
  15. Windows提权—进程注入、Unattended Installs提权
  16. C/C++实现贪吃蛇游戏
  17. mysql中图片的属性名是啥_数据库属性名
  18. ch340t电路_USB转串口CH340各封装官方原理图、PCB参考电路图下载2018-3-23
  19. BBC:关于睡眠你应该知道的十件事
  20. 语音信号处理初学者概念总结

热门文章

  1. centos篇---安装mysql详细步骤
  2. uniapp上高德(百度)地图API的使用(APP安卓)
  3. Task 1 知识图谱介绍
  4. 71. 从Lotus Notes表单到XPage——兼谈程序里的二进制文件和文本文件
  5. 2017年5月问题记录与总结——powerpc p1020 spi flash驱动
  6. 深夜爬虫, 我很抱歉 , 附爬取“网抑云”最详细的爬虫教程!
  7. 无盘服务器 主板,服务器主板 无盘专用
  8. 背包问题不同要求下的初始化
  9. 微信小程序的wxml实现复杂运算或者数据处理
  10. android 关机闹钟 实现,android 关机闹钟