javaweb过滤器filter-判断用户是否登录

JavaWeb——基于过滤器的用户权限控制 实现步骤: 1、创建一个过滤器操作类。 2、修改web.xml文件,在web.xml文件中配置过滤器的内容 3、创建相应的Jsp页面。 具体代码 创建一个过滤器操作类 package com.caokaiyuan.filter; import java.io.IOException; import javax.servlet.Filter; import ja 阅读详情
javaweb过滤器filter-判断用户是否登录


1.首先在web.xml文件添加filter
    <filter>  
        <filter-name>wxloginfilter</filter-name>  
        <filter-class>com.src.mian.filter.WXLoginFilter</filter-class>  
        <async-supported>true</async-supported>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>wxloginfilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>

2.添加class类继承Filter

public class WXLoginFilter implements Filter {
    //标示符:表示当前用户未登录
    String NO_LOGIN_NO = "NO_LOGIN_NO";
    //排除url
    //String[]此处的url路径需要登录后,才有权访问
    String[] excludeUrls = new String[]{"gift/getgift","gift/userGiftList","gift/giftInfo","game/addComment"};//
    
    
    public WXLoginFilter() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see Filter#destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
    }

    /**过滤器
     * 判断url数组String[] excludeUrls中的url访问时是否已登录
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        HttpSession session = request.getSession();
        String uri = request.getRequestURI();
        
        //System.out.println("filter url:"+uri);
        //System.out.println("sessionid:"+session.getId());
        boolean pass = false;
        if(excludeUrls != null){
            for(String url : excludeUrls){
                if (uri.indexOf(url)>-1){
                    pass = true;
                    break;
                }
            }
        }        
        if (!pass) {
            filterChain.doFilter(servletRequest, servletResponse);
        } else {
            if(session.getAttribute("userKey_session") != null){
               // System.out.println("userKey_session:"+session.getAttribute("userKey_session"));
                filterChain.doFilter(request, response);
            }else{
                String requestType = request.getHeader("X-Requested-With");
                //判断是否是ajax请求
                if(requestType!=null && "XMLHttpRequest".equals(requestType)){
                    response.getWriter().write(this.NO_LOGIN_NO);
                }else{
                    response.sendRedirect(request.getContextPath()+"/user/login");
                }
                return;
            }
        }
    }

    /**初始化
     * @see Filter#init(FilterConfig)
     */
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub
    }

}



JavaWeb笔记整理+图解——Filter过滤器 阅读详情

相关推荐

JavaWeb过滤器(Filter)详解

Filter表示过滤器,是 JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等。下面我们通过Filter快速入门程序掌握过滤器的基本使用操作:第1步,定义过滤器 :1.定义一个类,实现 Filter 接口,并重写其所有方法。第2步,配置过滤器:Filter类上加 @WebFilter 注解,配置拦截资源的路径。

Delu3376451753的博客 2737

【JavaWeb开发-Servlet】应用过滤器实现登录功能验证(filter-login)

添加过滤器后每次访问不同路径都会先进行session过滤,看是否已经登录,登录了就可以访问其他页面,没登录就返回登录界面。因为此时session为空,跳转到登录页,此时session还是为空,陷入死循环,程序无法正常启动。原来需要一个一个写,现在通过过滤器拦截与放行可以实现一劳永逸了。修改方法:获取请求路径并进行判断,允许特定的几个页面放行。将filter写在最上面,/*可以拦截所有路径。

有朋自远方来,不亦乐乎。 2611

JavaWeb-使用Filter过滤器进行权限检查

文章目录1. 什么是Filter过滤器2. Filter初体验3. Filter的生命周期4. FilterConfig类5. FilterChain过滤器链6. Filter的拦截路径6.1 精确匹配6.2 目录匹配6.3 后缀名匹配 1. 什么是Filter过滤器 Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器。 Filter 过滤器它是 JavaEE 的规范,也就是接口。 Filter过滤器的作

郭松源的博客 2688

过滤器Filter实现及执行顺序

过滤器(Filter)是JavaWeb的一个强大组件,基于servlet规范实现,不依赖任何框架。实现对用户请求的预处理,请求资源包含静态资源,如:js、css、图片等。在请求到达servlet之前进行拦截,决定是否放行到请求的servlet,或在返回客户端之前,对数据进行处理。常用于权限认证、日志记录。

铃萌的博客 3258

Ansys Lumerical 启动时出现 Error: Could not connect to Ansys license server specified at 1055@ 的一种解决办法

考虑到 2020 版的时候是直接在全局变量里指定具体地址,但是 2024 版本是写成 1055@localhost ,并且之后在站里搜相关 Ansys 的问题都指向 1055 端口被占用,虽然问题不一样,但是本着死马当活马医,就按照。我最近在跑超透镜结构,听说2024版本现在有GPU加速可以用,就把Lumerical从2020升到2024版本,结果发现一开头的破解办法完全不一样了。一开始安装的时候以为2020没有删干净,导致2024版的安装一直锁着目标地址,解决办法参考。的办法来操作,在关闭了。

qq_51404184的博客 5753

AS7341光谱传感器实战:如何用STM32F103精准测量环境色温(附完整代码)

本文详细介绍了如何使用STM32F103驱动AS7341光谱传感器实现环境色温的精准测量。从硬件连接到驱动开发,再到色温计算算法的实现,提供了完整的代码示例和优化建议,帮助开发者在智能照明、农业监测等领域快速应用AS7341进行高精度色温检测。

weixin_30352645的博客 478

JEECMS——web.xml配置

JEECMS的源码下载及安转运行,JEECMS项目包结构,JEECMS项目入口web.xml配置,JEECMS的过滤器和拦截器,JEECMS安全框架Shiro,JEECMS模板引擎Freemarker,JEECMS持久层框架Hibernate,JEECMS搜索引擎Lucene, JEECMS定时任务Quartz,JEECMS缓存Ehcache,JEECMS日志系统Logbac,JEECMS后台管理系统之内容,栏目模块

枣面包的博客 1778

Seedance2.5本地部署指南:从环境配置到生产优化的完整实践

在 AI 内容生成领域,本地部署方案正逐渐成为开发者和技术团队关注的焦点。Seedance2.5 作为一款支持图像和视频生成的 AI 工具,其完全离线运行的能力解决了云端服务在数据隐私、使用成本和访问稳定性方面的痛点。对于需要处理敏感内容、频繁生成素材或希望完全掌控生成流程的技术人员来说,掌握本地部署方法具有实际价值。 本文将以 Seedance2.5 的本地部署为例,详细介绍从环境准备、依赖配置到运行验证的完整流程,同时深入分析关键参数配置、常见问题排查方法以及生产环境下的优化建议。通过实际部署过程,理解

weixin_33139275的博客 731

cxf、struts、spring中web.xml过滤url问题解决方案

利用struts2自带的正则匹配,应该说这算是最官方的解决方案了在struts.properties中加正则匹配struts.action.excludePattern=/webservice/.*web.xml Xml代码 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app ver...

213

逆向Shopee签名机制:从参数分析到稳定采集方案

本文深入解析了Shopee签名机制的逆向过程,从参数分析到稳定采集方案的实现。通过抓包定位关键参数`sap-ri`和`x-sap-sec`,还原了签名生成算法,并提供了Python实现代码。文章还分享了反反爬策略、性能优化技巧及长期维护建议,帮助开发者构建稳定的Shopee数据采集方案。

weixin_27722377的博客 672

power bi 演唱会-佐罗

我是业务分析人员,注重使用性,因此,课程不到 30% 的内容就可以解决目前为止我碰到的所有业务问题,剩下的 70% 内容是帮助我提升,优化,升华,精益求精用的,比如第三方工具,比如代码运行速度优化,比如查询逻辑优化等等。系统性上来说,结构明晰,安排上非常有条理,层层递进;《BI 真经》,中有真经二字,略显夸大,而当我第一次证明了这点的时候,我也非常惊讶,这就是我做以下所有事情的一切动力。《BI 真经》综合考量思想性,系统性,本质性,创新性,通用性,技巧性,启发性,对比其他课程有压倒性的显著优势。

v_1090213742的博客 911

使用Filter验证用户是否登陆,完整示例

<br />/*  使用Filter进行用户信息验证等操作是个不错的选择。  这是OnlineFilter.java  初学者注意,这里用到的是javax.servlet.*,不包含在j2sdk里,需要从j2ee sdk中,或者$tomcat_home/lib/ 或者$resin_home/lib/下找到那个jar包。  */  package cn.techtiger.struts;     import java.io.IOException;     import javax.servlet.Filt

hld_hepeng的专栏 748

OpenEuler22.03 LTS下Zabbix7.0监控系统的容器化部署避坑指南(含Docker-Compose完整配置)

本文详细介绍了在OpenEuler22.03 LTS操作系统上容器化部署Zabbix7.0监控系统的完整流程,包括Docker引擎配置、Docker-Compose编排、网络模式选择及性能调优等关键步骤。针对OpenEuler环境下的特殊问题提供了解决方案,帮助用户高效搭建稳定可靠的监控系统。

python9snake的博客 268

java filter 登陆_javaweb过滤器filter-判断用户是否登录

1.首先在web.xml文件添加filterwxloginfiltercom.src.mian.filter.WXLoginFiltertrueencodingUTF-8wxloginfilter/*2.添加class类继承Filterpublic class WXLoginFilter implements Filter {//标示符:表示当前用户未登录String NO_LOGIN_NO = ...

weixin_33573700的博客 291

【速通RAG实战:索引】4.RAG文档解析技术

通过本文技术方案,可构建高精准、高效率的文档解析流水线,为 RAG 应用提供坚实的知识底座。核心在于**格式解析的鲁棒性**和**语义分块的准确性**,后续通过持续的性能优化和质量监控,逐步提升索引质量和检索效率。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1545

SAP 系统间 SSO 的真正价值,从 SM59 到可信 RFC 的安全设计

SAP S/4HANA系统间Single Sign-On(SSO)的核心价值在于集中管理通信身份与信任关系,而非仅减少密码输入。传统固定账号密码方式在系统规模扩大后会面临密码管理、审计追踪等挑战。通过SM59配置可信RFC目标系统,结合SSL证书或SAP Trusted System等强认证机制,能有效降低安全凭据暴露风险。SSO配置需配合授权对象、角色管理等建立清晰的信任边界,实现系统间安全通信的同时保持可审计性。这种方案特别适用于Fiori前端与S/4HANA后端等场景,通过可信RFC传递用户身份,避免

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1063

java filter 登陆访问_javaweb过滤器filter-判断用户是否登录

1.首先在web.xml文件添加filterwxloginfiltercom.src.mian.filter.WXLoginFiltertrueencodingUTF-8wxloginfilter/*2.添加class类继承Filterpublic class WXLoginFilter implements Filter {//标示符:表示当前用户未登录String NO_LOGIN_NO = ...

weixin_42360953的博客 254

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

过滤器Filter总结

过滤器是JavaWeb三大组件之一(Servlet、Filter,Listner); 作用: 把对资源(servlet、jsp、html等)的请求拦截下来,从而实现一些特殊的功能; 如权限控制、统一编码处理、敏感字符处理等;

机械工程跑路哥 1775

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【JavaWeb】过滤器Filter

1、概念2、案例 1、概念 过滤器可以拦截到指定的请求,对该请求拦截后可以进行对请求和响应进行操作,然后放行,可以自己去寻找对应的servlet或者其他过滤器。 使用的业务场景: 用户在客户端发送请求----> 拦截验证:是否为登陆的状态(session),如果是放行,不是的话跳转登陆。 定义: servlet定义的一个web组件,用来拦截servlet请求,以便获取请求中的资源的参数,过滤的对象主要是客户端请求的web资源。 优点: 热插拔,随时用,随时也可以去掉,不会影

MY9_19的博客 299

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

瑞吉外卖之登录篇(过滤器)

改良登录功能,编写过滤器

weixin_61723488的博客 260

Filter 过滤器基本内容及案例改进

过滤器Filter笔记

qq_45681515的博客 299

黑马学习javawebday12中 从cookie 令牌 fliter有感

fliter 也就是过滤器的作用 就是在前端发送请求的时候 传送给后端时 使用过滤器获取前端请求token里面的编码信息 并且通过解码判断是不是已登录的用户信息 来判断是不是要放行 使得后端可以调用controller层的代码来完成相应的各种操作。令牌就可以当做一个 身份证一样的id 是独一无二的 是通过你给的签名秘钥来通过一个指定的算法来编码 相应的 可以通过这个算法来解码 并将编码后的码存储在前端的请求体中的token携带着 每次请求传递给后端 让后端判断用户的身份。

Thecozzy的博客 215

[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别

过滤器与拦截器的区别,过滤器是JavaWeb的三大核心组件之一,它是用来拦截请求的,拦截到请求之后执行相应的逻辑决定是否放行该请求,从而实现一些特殊功能。注意:过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等。类似于过滤器。Spring框架中提供的,用来动态拦截controller层方法的执行。过滤器隶属Web容器,定义一个过滤器需实现Filter接口,并加入"/x")注解指定拦截路径。

Panci_的博客 2342

SpringBoot之过滤器Filter详解及登录校验

对于校验令牌的这一块操作,我们使用登录校验的过滤器,在过滤器当中来校验令牌的有效性。而这个链上的过滤器在执行的时候会一个一个的执行,会先执行第一个Filter,放行之后再来执行第二个Filter,如果执行到了最后一个过滤器放行之后,才会访问对应的web资源。访问完web资源之后,按照我们刚才所介绍的过滤器的执行流程,还会回到过滤器当中来执行过滤器放行后的逻辑,而在执行放行后的逻辑的时候,顺序是反着的。使用了过滤器之后,要想访问web服务器上的资源,必须先经过滤器,过滤器处理完毕之后,才可以访问对应的资源。

qq_62254095的博客 5712

javaweb之Filter(过滤器)

Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。Servlet 我们之前都已经学习过了。想要了解的同学可以观看我之前的博客JavaWeb之Servlet(1)和JavaWeb之Servlet(2)Request&Response。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有的资源(servlet、jsp、html等)

xrkhy的博客 1252
上一篇: SpringMVC 文件上传配置,多文件上传,使用的MultipartFile
下一篇: 生成验证码、二维码图片流
caodongfang126
博客等级 码龄15年 148粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值