返回顶部
首页 > 资讯 > 后端开发 > Python >Java利用过滤器实现完善登录功能
  • 607
分享到

Java利用过滤器实现完善登录功能

2024-04-02 19:04:59 607人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1、问题引入2、解决思路3、代码实现3.1 定义登录校验过滤器3.2 开启组件扫描1、问题引入 我们已经完成了后台系统的登录功能开发,但是目前还存在一个问题,就是用户如果不登录,

1、问题引入

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

很明显,上面这种情况并不合理,我们希望看到的效果应该是,只有登录成功后才可以访问系统中的页面,如果没有登录, 访问系统中的任何界面都直接跳转到登录页面。

2、解决思路

使用 过滤器或者拦截器来实现,在过滤器、拦截器中拦截前端发起的请求,判断用户是否已经完成登录,如果没有登录则返回提示信息,跳转到登录页面,那我这篇博客选择的是过滤器来实现这个效果。

过滤器具体的处理逻辑如下:

A. 获取本次请求的URI

B. 判断本次请求, 是否需要登录, 才可以访问

C. 如果不需要,则直接放行

D. 判断登录状态,如果已登录,则直接放行

E. 如果未登录, 则返回未登录结果

如果未登录,我们需要给前端返回什么样的结果呢? 这个时候, 可以去看看前端代码是如何处理的,大家可以先看看我这里的前端是如何处理的。(每个前端处理方式都不一样,随机应变)

这个是我们前端的拦截器,这个拦截器就是用来拦截我们服务端给页面上的响应的,一旦我们后端给前端响应之后,它就会执行下面的代码进行判断。

大家也可以看到它里面的if判断 ,如果我们后端给前端返回的数据是

res.data.code = 0 && res.data.msg='NOTLOGIN'

那它就会自动跳到登录界面。

3、代码实现

3.1 定义登录校验过滤器

首先我们创建一个过滤器 LoginCheckFilter 并实现 Filter 接口, 在doFilter方法中完成校验的逻辑。


@WEBFilter(filterName = "loginCheckFilter", urlPatterns = "
@WebFilter(filterName = "loginCheckFilter", urlPatterns = "
    public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();
 
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ioException, ServletException {
        httpservletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        String requestURI = request.getRequestURI();
        log.info("拦截到请求,{}", requestURI);
 
        //2、判断本次请求是否需要处理
        //定义不需要处理的请求路径
        String[] urls = new String[]{
                "/employee/login",
                "/employee/loGout",
                "/backend/**",
                "/front/**"
        };
        boolean check = check(urls, requestURI);
 
        //3、如果不需要处理,则直接放行
        if (check) {
            log.info("本次请求{}不需要处理", requestURI);
            filterChain.doFilter(request, response);
            return;
        }
 
        //4、判断登录状态,如果已登录,则直接放行
        if (request.getSession().getAttribute("employee") != null) {
            log.info("用户已登录,用户id为:{}", request.getSession().getAttribute("employee"));
            filterChain.doFilter(request, response);
            return;
        }
        log.info("用户未登录");
        //5、如果未登录则返回未登录结果,通过输出流方式向客户端页面响应数据
        response.getWriter().write(JSON.tojsONString(R.error("NOTLOGIN")));
        return;
    }
 
    public boolean check(String[] urls, String requestURI) {
        for (String url : urls) {
            boolean match = PATH_MATCHER.match(url, requestURI);
            if (match) {
                return true;
            }
        }
        return false;
    }
}

3.2 开启组件扫描

需要在启动类上, 加上Servlet组件扫描的注解, 来扫描过滤器配置的@WebFilter注解, 扫描上之后, 过滤器在运行时就生效了。

到此这篇关于Java利用过滤器实现完善登录功能的文章就介绍到这了,更多相关Java过滤器 登录内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java利用过滤器实现完善登录功能

本文链接: https://lsjlt.com/news/167968.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java利用过滤器实现完善登录功能
    目录1、问题引入2、解决思路3、代码实现3.1 定义登录校验过滤器3.2 开启组件扫描1、问题引入 我们已经完成了后台系统的登录功能开发,但是目前还存在一个问题,就是用户如果不登录,...
    99+
    2024-04-02
  • java 使用过滤器实现登录拦截处理
    目录滤器实现登录拦截处理一、什么是过滤器二、工作原理及生命周期三、过滤器使用filter简易实现登录功能拦截LoginFlitercontroller结果图滤器实现登录拦截处理 一、...
    99+
    2024-04-02
  • Java Web实现用户登录功能
    文章目录 一、纯JSP方式实现用户登录功能(一)实现思路1、创建Web项目2、创建登录页面3、创建登录处理页面4、创建登录成功页面5、创建登录失败页面6、编辑项目首页 (三)测试结果 ...
    99+
    2023-10-02
    java 前端 servlet
  • 功能完善的Java连接池调用实例(转)
    文章来源:www.jspcn.net 原作者:薄冰import java.io.*;import java.sql.*;import java.util.*;import java.util.Date;[@more@]public clas...
    99+
    2023-06-03
  • 利用struts1怎么实现一个登录功能
    利用struts1怎么实现一个登录功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实例开始工作—导入jar包,在官网上下载struts1框架包,解压之后导入工...
    99+
    2023-05-31
    struts2 st
  • Android通过PHP服务器实现登录功能
    Android客户端和PHP、MySQL搭建的服务器之间的简单交互,实现登录功能 。 实现原理图: Handler消息机制原理: Handler机制主要包括4个关键对象,分别...
    99+
    2022-06-06
    php服务器 PHP Android
  • Angularjs如何使用过滤器完成排序功能
    这篇文章给大家分享的是有关Angularjs如何使用过滤器完成排序功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下<!DOCTYPE html>...
    99+
    2024-04-02
  • Java怎么实现qq登录功能
    要实现qq登录功能,可以使用qq登录的开放平台提供的API。下面是一种实现的方法: 注册成为qq开放平台的开发者,获取App I...
    99+
    2023-10-21
    Java
  • java实现登录验证码功能
    本文实例为大家分享了java实现登录验证码功能的具体代码,供大家参考,具体内容如下 登录验证码 登录验证是大多数登录系统都会用到的一个功能,它的验证方式也是有很多种,例如登录验证码,...
    99+
    2024-04-02
  • C#中实现登录功能的完整步骤
    1. 准备工作 新建一个数据库StudentDB -- 使用master 数据库 use master go if exists(select *from sysda...
    99+
    2024-04-02
  • Java-web实现用户登录、注册功能
    源码在资源里 目录 环境搭建数据库 用户登录需求分析代码实现编写UserMapper类编写User类编写loginServlet类编写login.html编写login.css ...
    99+
    2023-10-10
    java 前端 servlet
  • 【JDBC实战】 水果库存系统[功能实现②] 功能完善+使用效果
    CSDN话题挑战赛第2期 参赛话题:学习笔记 JDBC专栏 (点击进入专栏) 【1】idea添加mysql-jar包 【2】使用IDEA连接数据库,执行增删改操作。 【3】IDEA连接数据库,执行查询操作,返回结果集并输出。 【4】JDB...
    99+
    2023-08-16
    java intellij-idea 开发语言 mysql sql
  • 使用PHP实现登录注册功能的完整指南
    🏆作者简介,黑夜开发者,全栈领域新星创作者✌,2023年6月csdn上海赛道top4。多年电商行业从业经验,对系统架构,数据分析处理等大规模应用场景有丰富经验。 🏆...
    99+
    2023-10-07
    php 开发语言 登录 注册
  • java+mysql实现登录和注册功能
    初学JAVA  EE,老师留下一小作业,用JAVA实现与服务器端交互,实现登录和注册功能,初学一种专业课很多老师都会留下一种让学生实现登录和注册的作业。 下面是记录的实现步...
    99+
    2024-04-02
  • Java后端登录功能怎么实现
    本篇内容介绍了“Java后端登录功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 登录需求分析页面原型 登录页面展示:项目路径...
    99+
    2023-06-30
  • java注册登录功能如何实现
    Java注册登录功能可以通过以下步骤来实现:1. 创建数据库表:- 创建一个用户表,包括用户ID(主键),用户名,密码等字段。2. ...
    99+
    2023-08-11
    java
  • 利用java实现一个微信小程序登录态维护功能
    利用java实现一个微信小程序登录态维护功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。作为服务端,如果想获得到使用微信小程序的会员信息,就需要小程序作为客户...
    99+
    2023-05-31
    微信小程序 ava java
  • 如何利用DataSet部分功能实现网站登录
    小编给大家分享一下如何利用DataSet部分功能实现网站登录,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先,我之前必须完成过注册,并把个人信息存入数据库中。其次,这部分的个别对象是存于...
    99+
    2024-04-02
  • Android中怎么利用OKhttp3实现登录注册功能
    这期内容当中小编将会给大家带来有关Android中怎么利用OKhttp3实现登录注册功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、Android前端实现新建一个login的项目,主要的几个文件在这...
    99+
    2023-06-20
  • Android中怎么利用MVP实现登录注册功能
    这篇文章给大家介绍Android中怎么利用MVP实现登录注册功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。model包:import com.bwei.mvps.bean.UserBean;public&...
    99+
    2023-05-30
    android mvp
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作