Filter登录验证(权限控制)小案例

使用Filter实现登录权限验证 主要为大家详细介绍了使用Filter实现登录权限验证,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 立即下载

一、登录验证

案例1_登录验证

  • 需求:
  1. 访问day17_case案例(这里是https://blog.youkuaiyun.com/QLBFA/article/details/110428015)这个项目资源。验证其是否登录
  2. 如果登录了,则直接放行。
  3. 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。

在这里插入图片描述

在这个:(总)用户信息查询案例代码中在src建一个filter子包,建一个LoginFilter 的Filter:

package cn.itcast.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
 * 登录验证的过滤器
 * @author QLBF
 * @version 1.0
 * @date 2020/12/1 22:25
 */
@WebFilter("/*")
public class LoginFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        //0.强制转换,因为ServletRequest不是HttpServletRequest
        HttpServletRequest request=(HttpServletRequest)req;
        //1.获取资源请求路径
        String uri = request.getRequestURI();
        //2.判断是否包含登录相关资源路径,要注意排除掉 (web下的)css/js/图片/验证码等资源
        if(uri.contains("/login.jsp") || uri.contains("/LoginServlet") || uri.contains("/css/")
                || uri.contains("/js/") || uri.contains("/fonts/") || uri.contains("/checkCodeServlet") ){
            //包含,用户就是想登录。放行进上述uri.contains()里面写着的
            chain.doFilter(req,resp);
        }else {
            //如果请求的不是登录有关的资源(则先叫他登录先),需要验证用户是否登录
            //3.从获取session中获取user(loginServlet设置的)
            Object user = request.getSession().getAttribute("user");
            if (user!=null){
                //登录了。放行(他想访问什么资源就访问什么资源)
                chain.doFilter(req,resp);
            }
            else {
                //没有登录。跳转登录页面,login_msg设置和loginServlet错误的一样,好在login.jsp统一展示
                request.setAttribute("login_msg","您尚未登录,请登录!");
                request.getRequestDispatcher("/login.jsp").forward(request,resp);
            }
        }


    }

    public void init(FilterConfig config) throws ServletException {

    }

}

1.首次访问时,如果你没登录就想访问里面的add.jsp(不在排除的登录资源内),过滤器会把你拦截下来不给你访问(而是先跳转到登录页面叫你登录(自己过滤器定义的,见上)):在这里插入图片描述
2.当登录后,只要你的session没清除掉(这里浏览器管了就清楚session了),你就可以访问你想的资源了,这是你访问add.jsp就可以访问了:
在这里插入图片描述

jsp实现登录验证的过滤器 本文实例为大家分享了jsp实现登录验证的过滤器,供大家参考,具体内容如下 1.新建一个Dynamic Web Project项目,里面新建1个filter文件、1个servlet文件和2个jsp文件,整体的框架如图所示: 2.LoginFilter.java里面的代码如下所示: package filter; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.Fi 立即下载

相关推荐

python爬虫入门教程(非常详细)

爬虫指的是一种自动化程序,能够模拟人类在互联网上的浏览行为,自动从互联网上抓取、预处理并保存所需要的信息。爬虫运行的过程一般是先制定规则(如指定要抓取的网址、要抓取的信息的类型等),紧接着获取该网址的HTML源代码,根据规则对源代码进行解析和抽取,最后进行处理和保存。爬虫在实际应用中广泛使用,如搜索引擎、大数据分析、交易数据采集等领域,都需要用到爬虫技术来实现信息的定向采集和处理。

工宗浩生财指南针 2万+

Filter过滤器案例1 -- 实现登入验证

需求: 访问服务器资源。验证其是否登录 如果登录了,则直接放行。 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。 分析: 1.首先我们要判断,浏览器访问的是否是和登入有关的资源。 是:放行 (访问如如登入页面) 不是:判断是否登入(访问如其他内部资源) 2.判断是否登入(判断session中有没有name 等于 user的) 有:放行 没有:重定向到登入页面 3.注意:判断是否包含登录相关资源路径,要注意排除掉 css/js/图片/验证码等资源,不然的话这些静态资源会在再次访问登入页面

qq_43507104的博客 1269

CVE-2017-7921漏洞深度解析:海康设备明文密码泄露原理与七层防御

网络摄像头安全本质上是嵌入式Web服务安全,其核心在于身份认证机制是否健全。CVE-2017-7921并非传统远程执行漏洞,而是因信任错位导致的未授权API暴露——`/Security/users/1`接口绕过Session校验,直接返回admin明文密码。该问题根植于安防设备早期‘物理隔离+前端可控’的设计假设,在P2P、云平台等新场景下全面失效。技术价值在于揭示了轻量级HTTP服务中路径级访问控制缺失的普遍风险;典型应用场景包括ONVIF协议接管、Telnet后门登录及NVR侧横向移动。本文基于DS-2

weixin_33324197的博客 394

使用过滤器完善登录

我们已经完成了后台系统的登录功能开发,但是目前还存在一个问题,就是用户如果不登录,直接访问系统首页面,照样可以正常访问。

一切总会归于平淡 2281

如何加载交易策略EA到MT4/MT5

1、打开MT4/MT5软件 2、首先,必须有一个EA,而且必须是mq4/ex4为扩展名。点击左上角“文件”—“打开数据文件夹”,找到安装路径 3、将EA的ex4或mq4文件放到MT4目录\MQL4\Experts里面(本文以名为Demo的EA为例) 4、如果有DLL库文件,复制到experts目录下的libraries子目录中 5、如果有tpl模板文件,复制到templates目录中 6、添加完成后重启MT4,点击允许EA运行图标 7、在导航中找到刚才安装的EA,拖拽到...

weixin_41364817的博客 7358

逆变器LCL滤波器参数设计(一)

1.基本介绍 并网型逆变器一般是电流源逆变器,滤波器基本用LCL结构。 假设要设计额定功率10KVA的单相逆变器,采用两电平的全桥拓扑,采用SPWM控制,载波频率20KHz,电网等级220V,频率50Hz。 拓扑结构如图所示: 直流输入电压分为上下母线各1/2Vin,半母线电压为380V。 L1采用高频磁芯绕制,称为高频电感;L2用工频电感绕制,称工频电感;C是滤波电容,为高频谐波电流提供通路;Vg为电网电压。 载波调制比为:Mr=220*1.414/380=0.819 2.高频电感量的计算 逆变器可以等

weixin_43549807的博客 5万+

过滤器实现判断用户是否登录未登录则跳转登录页面———java笔记

1.新建过滤器类实现Filter接口并在dofilter方法中写下判断逻辑,我这里的登录界面是index.jsp。另外这里的limitStr 是根据自己的去求来设置的,你也可以只是限制固定的访问地址,或者直接在web.xml的配置中来设置要限制的地址格式。为了不让没有登录的用户来访问我们的网站,希望在每次请求的时候检查用户是否登录,如果没有登录则跳转到登录界面。这里的url-pattern可以自己设置,我这里是设置过滤所有的请求。2.使用web.xml配置或者使用注解进行配置。

weixin_42128648的博客 1430

Python手记-9:Python LXML库XPath的爬取晋江书目

1. lxml库 lxml是功能最丰富且易于使用的库,用于处理Python语言中的XML和HTML,还可实现WEB爬取,官文参考:https://lxml.de/,完整的PDF文档下载链接https://lxml.de/lxmldoc-4.5.0.pdf,但是阅读起来……em……怪自己不够聪明的样子。 Linux下安装lxml库:[root@chengyu ~]# pip3 instal...

成屿的专栏 4万+

验证登陆案例

1. 案例1_登录验证 * 需求: 1. 访问day17_case案例的资源。验证其是否登录 2. 如果登录了,则直接放行。 3. 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。 具体步骤 LoginFilter的业务逻辑; 1.判断是否是登录相关的资源: *是,直接放行 *不是,判断是否登陆 2,判断当前用户是否登陆,判断Session中是否由User *...

拉格朗日的学习笔记 496

学术类PPT制作总结

本文分享了科技类PPT的制作技巧,希望相关的信息能帮助到读者。

奇妙水果的技术博客,欢迎交流技术~ 2879

Google 二次签名 导致 Facebook , Google 登录失败

google 授权登录

xq610928的博客 1957

登录验证---过滤器(Fileter)

一.案例--登录验证 * 需求: 1. 浏览器访问case案例(服务器)的资源时。验证其是否登录 2. 如果登录了,则直接放行。 3. 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。 二.功能分析 三.代码的编写 由于前面的登录页面已经完成(前几篇博客),所以我们需要做的就是编写一个Filter类,来过滤用户通过浏览器访问服务器的页面,增强其功能。 过滤器首...

笼中鸟 3348

SAR图像去斑(Despeckling)研究的主流开源数据集

这些数据集专门用于训练监督学习去斑模型,提供了配对的含斑SAR图像和对应的无噪声参考图像(Ground Truth)。这些数据集主要用于目标检测/识别,但包含原始SAR图像,可用于。由于缺乏真实无噪声SAR图像,许多研究采用。

VectorShift的博客 128

Filter的登录验证案例(权限控制基础)

需求: 1. 访问day17_case案例的资源。验证其是否登录 判断Session是否有user 2. 如果登录了,则直接放行。 3. 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。 注意:排除登录相关的资源,直接放行,否则会出现页面死循环BUG 如 登录相关的静态资源,Servlet,JSP页面等 javax.servlet.Filter @Override public void doFilter(Servl

深耕java的博客 160

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java中Filter的使用

Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。Servlet 我们之前都已经学习过了,Filter和Listener 我们今天都会进行学习。过滤器可以把对资源的请求==拦截==下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有的资源(servlet、jsp、html等)而在访问到这些资源之前可以使过滤器拦截来下,也就是说在访问资源之前会先经过 Filter,如下图拦截器拦截到后可以做什么功能呢?

是程序喵呀 3361

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【JAVA WEB】 Filter过滤器详解

Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。Servlet 我们之前都已经学习过了,Filter和Listener 我们今天都会进行学习。过滤器可以把对资源的请求==拦截==下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有的资源(servlet、jsp、html等)而在访问到这些资源之前可以使过滤器拦截来下,也就是说在访问资源之前会先经过 Filter,如下图拦截器拦截到后可以做什么功能呢?

vdssdf的博客 2766

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JavaWeb过滤器案例——粗粒度权限控制

JavaWeb过滤器案例案例分析JSP的编写Servlet的编写Filter的编写演示截图分析与总结 案例分析 粗粒度权限控制(拦截是否登录、拦截用户名admin权限) 说明:给出三个页面:welcom.jsp(没有限制)、user.jsp(只有登录用户才能访问)、admin.jsp(只有管理员才能访问)。 分析: 首先需要一个登录页面(login.jsp)用于传递登录的用户名和密码。 然后创建一个Servlet,当用户登录成功后,进行判断权限级别,并把用户名保存到session域中。 最后创建LoginF

Chenaichenet的博客 387

12、JavaWeb三大组件之Filter

快速入门JavaWeb三大组件之一Filter,用Filter完成登录页面和注册页面的过滤

clear-ninghongkang的博客 729

javaweb之Filter(过滤器)

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

xrkhy的博客 1251

Java中的Filter过滤器

Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 它主要用于对用户请求进行预处理,也可以对HttpSe

SKlonglong的博客 177

Filter 过滤器

转载:http://www.cnblogs.com/coderland/p/5902878.htmlFilter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词

每日丶滴 394

Java 中的 Filter 过滤器详解

Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 它主要用于对用户请求进行预处理,也可以对HttpServl...

LTY_Sun的博客 382

Javaweb学习笔记之filter

配置Filter拦截资源的路径:在类上定义注解 在方法中输出一句话,并放行 Filter 执行流程 放行后访问对应资源,资源访问完成后,还会回到Filter中吗?会如果回到Filter中,是重头执行还是执行放行后的逻辑呢?放行后逻辑执行放行前逻辑放行访问资源执行放行后逻辑 放行前,对Request数据进行处理放行后,对Response数据进行处理Filter可以根据需求,配置不同的拦截资源路径 拦截具体的资源::只有访问index.jsp时

jihuaTEL的博客 216
上一篇: Filter(过滤器),快速入门、修改模板、执行过程、过滤器链
下一篇: Filter敏感词汇过滤,把文件的每一句加到集合
Mike-H
博客等级 码龄8年 27粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值