首页 > 其他分享 >Filter-案例-登录验证

Filter-案例-登录验证

时间:2023-07-03 14:12:53浏览次数:22  
标签:登录 验证 resp req request Filter user import

 

 

package com.itheima.web.Filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
/*
* 登陆验证的过滤器
* */
@WebFilter("/*")
public class LoginFilter implements Filter {
    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        //先把接收到的req强转成HttpServletRequest格式的,不然获取不了Session对象
        HttpServletRequest request = (HttpServletRequest) req;

        //判断访问资源路径是否和登录注册相关
        String[] urls = {"/login.jsp","/imgs/","/css/","/loginServlet","/registerServlet","/register.jsp","/checkCodeServlet"};

        //获取当前路径资源
        String url = request.getRequestURL().toString();

        //循环判断
        for (String u : urls) {
            if (url.contains(u)){//contains包含
                //找到了
                //放行
                chain.doFilter(req,resp);
                //结束方法
                return;
            }
        }

        //1. 获取到session对象中的user数据
        HttpSession session = request.getSession();
        Object user = session.getAttribute("user");

        //2. 判断session中是否有user
        if (user != null){
            //登录过了
            //放行
        }else {
            //没有登录,储存提示信息,跳转到登录页面
            request.setAttribute("login_msg","您尚未登陆!");
            request.getRequestDispatcher("/login.jsp").forward(req,resp);
        }
        //放行
        chain.doFilter(req, resp);
    }

    public void destroy() {
    }

    public void init(FilterConfig config) throws ServletException {

    }

}

 

标签:登录,验证,resp,req,request,Filter,user,import
From: https://www.cnblogs.com/Karl-hut/p/17522745.html

相关文章

  • 免费看小说软件[阅读](无需登录,没有广告,体积小,资源丰富)
    软件只是一个开源的框架,需要导入书源才能使用;大佬的微信公众号 [开源阅读软件] 负责软件的更新维护; [开源阅读] 八卦、吃瓜、聊天、使用教程等 一、软件的下载1.关注大佬的微信公众号[开源阅读软件],点击软件下载,根据提示进行操作;2.不想关注的可以点击下面链接进......
  • 如何使用libavfilter库给pcm音频采样数据添加音频滤镜?
    一.初始化音频滤镜初始化音频滤镜的方法基本上和初始化视频滤镜的方法相同,不懂的可以看上篇博客,这里直接给出代码://audio_filter_core.cpp#defineINPUT_SAMPLERATE44100#defineINPUT_FORMATAV_SAMPLE_FMT_FLTP#defineINPUT_CHANNEL_LAYOUTAV_CH_LAYOUT_STEREOsta......
  • springboot+token+redis,模拟登录
    登录测试的controller:loginTest.javapackagecom.example.demo.controller;importcom.example.demo.po.ResponseBean;importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.web.bind.annotation.*;importjavax.annotation.Resource;i......
  • Filter-快速入门
       ......
  • 案例-验证码-校验
     //获取用户输入的验证码StringcheckCode=request.getParameter("checkCode");//获取程序生成的验证码,从Session中获取HttpSessionsession=request.getSession();StringcheckCodeGen=(String)session.getAttribute("checkC......
  • 授人以渔:如何获得当前登录 SAP ABAP 系统用户的主机名
    本文写作动机来自我的知识星球里一个朋友的提问。我们复习一下本教程第二篇文章里学习到的知识:1.ABAP标准培训教程BC400学习笔记之一:ABAP服务器的架构和一个典型的ABAP程序结构介绍这是ABAP系统典型的三层架构。广大SAP从业者,在自己本地电脑安装了SAPGUI,那么这......
  • 案例-用户登录-和上次案列联动一样
     packagecom.itheima.mapper;importcom.itheima.pojo.User;importorg.apache.ibatis.annotations.Insert;importorg.apache.ibatis.annotations.Param;importorg.apache.ibatis.annotations.Select;publicinterfaceUserMapper{/***根据用户名和......
  • 基于Sa-Token实现微服务之前的单点登录
    修改配置文件,准备好四个域名127.0.0.1auth.server.com127.0.0.1user.server.com127.0.0.1third.server.com127.0.0.1eureka.server.com注册中心:eureka-server服务pom依赖<dependency><groupId>org.springframework.cloud</groupId>......
  • 验证码生成技术的学习总结(C#)
    作者:光脚丫思考 一、概述一直以来对于验证码这玩意都是使用了别人编写好的代码,最多也就是稍微的做点修改罢了。虽然别人做的东西并不是非常的适合自己使用,但还是给将就将就了一番。这几天呢?不知道是哪里高兴了,终于是好好的把一些别人早就已经使用过的验证码技术给好好的拿来学习学......
  • 前端Vue自定义注册界面模版 手机号邮箱账号输入框 验证码输入框  包含手机号邮箱账号
    前端Vue自定义注册界面模版手机号邮箱账号输入框验证码输入框 包含手机号邮箱账号验证,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13306效果图如下:......