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;
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例外相关推荐
- [JAVA EE] Filter过滤器
Filter过滤器 ◼ 过滤器(Filter)可以动态地拦截请求和响应. ◼ 应用场景:过滤敏感词汇.防止SQL注入.设置字符编码.进行URL级 别的权限访问控制.压缩响应信息等. 启动文件DemoA ...
- spring boot Filter过滤器的简单使用
springboot使用Filter过滤器有两种方式: 一种是实现Filter接口然后通过@Component注解向项目加入过滤器 另一种是通过配置类来配置过滤器 @Component public ...
- 【Servlet】Filter过滤器详解、使用示例
Filter过滤器讲解 定义 过滤器处于浏览器与servlet之间,是一个实现了 javax.servlet.Filter 接口的 Java 类 客户端发送的请求.服务器发送的资源,需要通过过滤器,才 ...
- java filter教程_Java Web Filter 过滤器学习教程(推荐)
一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...
- Filter过滤器~~~编码过滤和登陆验证
Filter过滤器··简介: Filter过滤器是一个小型的web组件(web三大组件之一), 可以动态地拦截url请求和响应, 以便查看.提取或操作包含在url请求和响应中的信息. Filter过滤 ...
- SpringBoot中AOP实现落地——Filter(过滤器)、Intercepter(拦截器)、Aspect(Spring AOP)
文章目录 一.一切要从Servlet说起 1.1什么是Servlet 1.2为什么需要Servlet 1.3Servlet如何响应用户请求 1.4Servlet与Tomcat处理请求的流程 1.5Se ...
- SpringBoot之Filter过滤器的实现及排序问题
相关文章: SpringBoot 之AOP切面的使用 SpringBoot之Listener注册到Spring容器中的多种方法 SpringBoot之Interceptor拦截器注入使用 Spring ...
- JavaWeb-10课Filter过滤器
目录 一.JSTL中的Core标签库 1.标签 2. 标签 二.Filter过滤器 1.什么是Filter 2.过滤器如何实现拦截? 3.Filter生命周期 1.Filter接口中三个重要的方法 2 ...
- 前后端整合+Request(请求转发)+respon(重定向)+get+post+Filter过滤器
一.请求Request 是指 从前端浏览器 到 后端的Servlet程序 的访问过程,叫请求的过程 可以使用Servlet提供的Request对象,来解析请求中的请求参数 1.常用方法 getPara ...
最新文章
- python使用matplotlib可视化跨年数值指标中位数变化率、使用pct_change函数计算变化率、年环比变化率(pct_change function)
- 谷歌浏览器扩展程序XDM_请立即更新您的谷歌Chrome浏览器 获取重要的安全补丁程序...
- Django 1.11 bootstrap样式文件无法加载问题解决
- 【Python】选择数组中的数,拼接成一个最大字符串数(易错题,cmp_to_key举例)
- 用户 IP,里面藏了多少秘密?
- 天池 在线编程 旅行计划(暴力回溯)
- ubuntu16.04 升级内核
- 3G了 由PC-手机 我们想了些什么呢
- 为什么要使用MQ消息中间件?
- Flink当中使用kafka Consumer
- 看我72变:解决Entity Framework中枚举类型与tinyint的映射问题
- MyBatis-Plus学习
- DNA序列转换为RNA序列
- 这里有最新最全最专业的便携图形工作站硬件配置方案,来看看?
- Windows提权—进程注入、Unattended Installs提权
- C/C++实现贪吃蛇游戏
- mysql中图片的属性名是啥_数据库属性名
- ch340t电路_USB转串口CH340各封装官方原理图、PCB参考电路图下载2018-3-23
- BBC:关于睡眠你应该知道的十件事
- 语音信号处理初学者概念总结
热门文章
- centos篇---安装mysql详细步骤
- uniapp上高德(百度)地图API的使用(APP安卓)
- Task 1 知识图谱介绍
- 71. 从Lotus Notes表单到XPage——兼谈程序里的二进制文件和文本文件
- 2017年5月问题记录与总结——powerpc p1020 spi flash驱动
- 深夜爬虫, 我很抱歉 , 附爬取“网抑云”最详细的爬虫教程!
- 无盘服务器 主板,服务器主板 无盘专用
- 背包问题不同要求下的初始化
- 微信小程序的wxml实现复杂运算或者数据处理
- android 关机闹钟 实现,android 关机闹钟