展开全部

首先在web.xml 配置 参数

noLoginPaths  参数名可自取

LoginFilter

com.imooc.filter.LoginFilter

noLoginPaths

login.jsp;fail.jsp;LoginServlet

charset

UTF-8

LoginFilter

/*

然后在 Filter 中,创建一个 FilterConfig 的引用, 这个引用在init中初始化,并且能够62616964757a686964616fe4b893e5b19e31333363373763通过它获取 中的key和value  ,

String noLoginPaths = config.getInitParameter("noLoginPaths");然后通过判断用户请求的url 是否符合 noLoginPaths 中设置的不过滤选项,如果如何,就调用do.filter放行

关键代码 :if(noLoginPaths!=null){

String[] strArray = noLoginPaths.split(";");

for (int i = 0; i

if(strArray[i]==null || "".equals(strArray[i]))continue;

if(request.getRequestURI().indexOf(strArray[i])!=-1 ){

arg2.doFilter(arg0, arg1);

return;

}

}

}

完整代码: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;

public class LoginFilter implements Filter {

private FilterConfig config;

@Override

public void destroy() {

}

@Override

public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) arg0;

HttpServletResponse response = (HttpServletResponse) arg1;

HttpSession session = request.getSession();

String noLoginPaths = config.getInitParameter("noLoginPaths");

String charset = config.getInitParameter("charset");

if(charset==null){

charset = "UTF-8";

}

request.setCharacterEncoding(charset);

if(noLoginPaths!=null){

String[] strArray = noLoginPaths.split(";");

for (int i = 0; i

if(strArray[i]==null || "".equals(strArray[i]))continue;

if(request.getRequestURI().indexOf(strArray[i])!=-1 ){

arg2.doFilter(arg0, arg1);

return;

}

}

}

if(session.getAttribute("username")!=null){

arg2.doFilter(arg0, arg1);

}else{

response.sendRedirect("login.jsp");

}

}

@Override

public void init(FilterConfig arg0) throws ServletException {

config = arg0;

}

}

java filter 不过滤器_java过滤器不过滤某个货某一些路径相关推荐

  1. java filter 不过滤器_Java中的Filter过滤器

    Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件 ...

  2. java filter加时间戳_java filter加时间戳

    java filter加时间戳 [2021-01-31 18:31:52]  简介: java时间戳转php时间戳的方法:首先将java时间戳转成字符串,代码为[$utStr = $javaUt . ...

  3. java 拦截器 排除_java – Spring MVC Interceptor排除HTTP方法的路径

    我有一些拦截器需要在我的API的一些请求中检查标头和授权.例如,某些请求应该要求用户身份验证(例如,从数据库更改用户详细信息),有些请求不需要身份验证(例如,创建用户).不幸的是,从拦截器中排除路径的 ...

  4. java file源码_java File源码理解,探索File路径

    1.方法: new File(path); 我们知道根据输入的路径path的不同 ,File可以根据path的不同格式,来访问文件.那么,path的形式有几种呢? 根据源码 可以知道,输入的路径pat ...

  5. java过滤器filter过滤某个包_Java过滤器Filter使用详解

    过滤器 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改.判断等,把不符合规则的请求在中途拦截或修改.也可以对响应进行过滤,拦截或修改响应. 如 ...

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

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

  7. filter过滤器_Java过滤器Filter讲解(Java基础)

    Java过滤器Filter讲解(Java基础)    双体的小伙伴们,Java过滤器Filter讲解(Java基础).初学JAVA的的学者们,今天满满的干货,跟随我一起学习吧.      超能就在这里 ...

  8. java 监听器 分类_java过滤器和监听器详解 分类: 学习专区

    过滤器 1.Filter工作原理(执行流程) 当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请求 ...

  9. java 过滤列表_Java 8 Stream过滤列表中列表的值

    我有一个看起来如下的对象 class MyObject { String type; List subTypes; } 是否有可能,给定一个MyObject列表,使用Java 8流来过滤类型和子类型? ...

最新文章

  1. “地理智慧 链接未来”,2020 GIS 软件技术大会主题大会召开
  2. 华为eNSP模拟器学习(一)
  3. 2兼容鼠标无法禁用一直乱动_雷柏ralemo气垫鼠标:金属镂空无线充电,机械滚珠情怀在线...
  4. linux基础命令_Linux命令基础大全
  5. BUUCTF-WEB:[极客大挑战 2019]LoveSQL 1
  6. PB代码动态解析执行器
  7. 【转载】【SQL】Sql Server Management Studio 18 打开闪退问题
  8. 硬件工程师成长之路(4)——元件焊接
  9. 音乐播放器的js代码
  10. 简谈校招新员工培养方案
  11. 特种浓缩分离:无机陶瓷膜设备性能描述
  12. 《Hexo: 从零开始编写自己的主题》3. 优化样式,设计自己的主题
  13. imu oracle,IMU技术
  14. CSS、HTML补充
  15. DPI、PPI、DP、PX 的详细计算方法及算法来源是什么
  16. zsh 缺少 /usr/local/share/zsh/site-functions/_brew_cask
  17. Error fetching server time: Detected 31.361999988555908 seconds time difference between your browser
  18. SfxMCP基于rtsp协议H5无插件直播方案中RTSP设备的接入方法 - sfxlab
  19. PTA 7-33 统计素数并求和
  20. 好时巧克力公司加入区块链广告联盟

热门文章

  1. gradle插件-了解插件及如何使用gradle插件
  2. 【计算机网络】【链路层和局域网-2】
  3. 可执行jar包使用exe4j改为exe执行文件并使用shielden加密
  4. 褚时健传 - 令人敬畏的匠人精神
  5. 集成电路开发及应用-模拟数字部分专栏目录
  6. 大一新生面临问题讨论
  7. YDH-1型压电电荷测量仪
  8. telerik grid ajax,Telerik ajax 控件学习笔记 - Ajax
  9. android 消息推送开发 锁屏显示_MIUI 第452周发布公告及更新日志(MIUI开发版公测)...
  10. go语言模拟网站登录并爬虫