广告
返回顶部
首页 > 资讯 > 精选 >SSM项目中如何使用拦截器实现登录验证功能
  • 916
分享到

SSM项目中如何使用拦截器实现登录验证功能

2023-06-28 22:06:27 916人浏览 八月长安
摘要

小编给大家分享一下SSM项目中如何使用拦截器实现登录验证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!登录接口实现public User 

小编给大家分享一下SSM项目中如何使用拦截器实现登录验证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

登录接口实现

SSM项目中如何使用拦截器实现登录验证功能

public User queryUser(String UserName, String PassWord,httpservletRequest request, HttpServletResponse response) {        User user = userMapper.queryUser(UserName,Password);        if(!StringUtils.isEmpty(user)){            //1.获取session            HttpSession session = request.getSession();            //2.获取sessionid            String sessionId = session.getId();            //3.将sessionid作为key,用户信息user作为value,放入session中            session.setAttribute(sessionId,user);            //4.将sessionId存到cookie中,"jsESSIONID"为自定义的key值            Cookie cookie = new Cookie("JSESSIONID",sessionId);            //5.设置cookie的有效路径            cookie.setPath(request.getContextPath());            //6.将cookie返回给页面            response.addCookie(cookie);        }        return user;    }

代码思路:

用户输入账号密码登录成功后获取用户信息(User)

获取session,得到sessionid(注:每一个session对象都有一个sessionid)

将sessionid作为key,用户信息(User)作为value,放入session中

创建一个Cookie对象,将"JSESSIONID"作为key,sessionId作为value,放入cookie中

设置cookie的有效路径,将cookie返回给页面,此时页面就可以收到key为"JSESSIONID",value为sessionId的cookie信息,如下图。

SSM项目中如何使用拦截器实现登录验证功能

拦截器类代码实现

SSM项目中如何使用拦截器实现登录验证功能

public class Filter extends HandlerInterceptorAdapter {    private static Logger logger = Logger.getLogger(Filter.class);        @Override    public boolean preHandle(HttpServletRequest request,                             HttpServletResponse response, Object handler)throws Exception    {        //1.定义sessionid变量        String sessionid = "";        //2.获取session对象        HttpSession session=request.getSession();        //3.获取页面上所有的cookie        Cookie[] cookies = request.getCookies();        //4.循环寻找名称为"JSESSIONID"的cookie        for(Cookie cookie:cookies){            if(cookie.getName().equals("JSESSIONID")){                sessionid = cookie.getValue();            }        }        //5.根据sessionid获取用户信息        User user = (User) session.getAttribute(sessionid);        if(StringUtils.isEmpty(user)) {            logger.info("用户未登录");            //用户未登录跳转到登录页面            response.sendRedirect("login");            return false;        }        logger.info("用户已登录");        return  true;    }}

代码思路:

自定义一个拦截器类,首先要继承HandlerInterceptorAdapter,并重写preHandle方法,在此方法中编写拦截器的逻辑代码

获取cookies数组,这个数组有浏览器中的所有cookies信息,循环遍历找到name为"JSESSIONID"的cookies,并获取到其value值,这个值就是sessionid

通过sessionid查找user对象,如果能获取对象证明登录过,如果不能获取到对象证明没有登录过

如果登录过就直接访问接口,如果没有登录过就跳转到登录页面进行登录

配置文件实现

SSM项目中如何使用拦截器实现登录验证功能

<!--自定义拦截器-->    <mvc:interceptors>        <mvc:interceptor>            <!--配置要拦截的路径-->            <mvc:mapping path="/**"/>            <!--配置登录接口不被拦截-->            <mvc:exclude-mapping path="/user/login"/>            <!--指定拦截器类路径-->            <bean class="com.lishiqi.Util.Filter"></bean>        </mvc:interceptor>    </mvc:interceptors>

配置含义:

我们使用拦截器肯定要规定拦截哪些接口,首先我们将所有的接口都拦截

然后我们发现问题,此时登录接口也在拦截范围中,所以我们正常调用登录接口之前他也会拦截判断一下用户是否登录过,这个时候用户肯定没有登录过,那么就会又跳转到登录界面,我们再次登录还是跳转到登录页面,一直登录不上,所以我们需要把登录接口配置为不拦截

然后我们指定我们配置好的拦截器类路径,这个时候可以在该类中进行登录验证操作了

此配置文件为spring-mvc.xml配置文件

以上是“SSM项目中如何使用拦截器实现登录验证功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: SSM项目中如何使用拦截器实现登录验证功能

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SSM项目使用拦截器实现登录验证功能
    目录登录接口实现拦截器类代码实现配置文件实现登录接口实现 public User queryUser(String UserName, String Password,HttpSe...
    99+
    2022-11-13
  • SSM项目中如何使用拦截器实现登录验证功能
    小编给大家分享一下SSM项目中如何使用拦截器实现登录验证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!登录接口实现public User ...
    99+
    2023-06-28
  • 使用Struts2拦截器如何实现一个登录验证功能
    使用Struts2拦截器如何实现一个登录验证功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Struts2拦截器Struts2拦截器的概念和Spring Mvc拦截器一样...
    99+
    2023-05-31
    struts 登录验证 拦截器
  • SpringBoot登录验证token拦截器如何实现
    这篇文章主要讲解了“SpringBoot登录验证token拦截器如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot登录验证token拦截器如何实现”吧!用户访问接口验...
    99+
    2023-07-02
  • SSM项目实现短信验证码登录功能的示例代码
    目录1.登入网站 zz短信平台2.导入工具类MessageUtil3.ajax 模块4. html页面5.编写controller层1.登入网站 zz短信平台 http:/...
    99+
    2022-11-13
  • 如何使用SpringBoot拦截器实现登录拦截
    小编给大家分享一下如何使用SpringBoot拦截器实现登录拦截,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!可以对URL路径进行拦截,可以用于权限验证、解决乱码...
    99+
    2023-06-29
  • SSM项目中使用拦截器和过滤器的实现示例
    一、拦截器概述 Spring MVC 也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定 的功能,自定义的拦截器必须实现 HandlerInterceptor 接口 ...
    99+
    2022-11-12
  • Go WEB框架使用拦截器验证用户登录状态实现
    目录wego拦截器main函数登录逻辑登录拦截器的实现index页面的实现wego拦截器 wego拦截器是一个action(处理器函数)之前或之后被调用的函数,通常用于处理一些公共逻...
    99+
    2022-11-13
  • 怎么使用Spring MVC拦截器实现一个登录功能
    怎么使用Spring MVC拦截器实现一个登录功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。HandlerInterceptor接口Spring MVC中的Intercep...
    99+
    2023-05-31
    springmvc
  • vue拦截器如何实现统一token并兼容IE9验证功能
    小编给大家分享一下vue拦截器如何实现统一token并兼容IE9验证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!项目中使用...
    99+
    2022-10-19
  • Django中使用pillow实现登录验证码功能(带刷新验证码功能)
    首先在项目里建立common目录,编写验证码的函数 verification_code.py import random from PIL import Image, Imag...
    99+
    2022-11-12
  • 如何在PHP项目中实现用户登录和注册功能?
    如何在PHP项目中实现用户登录和注册功能?在许多Web应用程序中,用户登录和注册功能是必不可少的。无论是电子商务网站、社交媒体还是论坛,用户登录和注册功能是为了确保用户身份安全,并为用户提供个性化的服务。本文将介绍如何在PHP项目中实现用户...
    99+
    2023-11-02
    PHP用户认证 PHP登录功能 PHP注册功能
  • 怎么在java中使用JDBC实现一个验证登录功能
    怎么在java中使用JDBC实现一个验证登录功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整...
    99+
    2023-06-14
  • 如何在java项目中利用google的身份验证器实现一个动态口令验证功能
    这篇文章给大家介绍如何在java项目中利用google的身份验证器实现一个动态口令验证功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。google身份验证器的原理是什么呢?客户端和服务器事先协商好一个密钥K,用于一次...
    99+
    2023-05-31
    google ava java
  • 腾讯云服务器如何使用登录密码验证功能
    腾讯云服务器如何使用登录密码验证功能需要注意以下几点: 服务器需要使用 SSLTLS 协议,以便验证用户输入的登录信息。 登录密码需要与用户名和密码相同。如果登录密码不正确,服务器将拒绝登录请求。 服务器需要在登录时使用用户名和密码,以...
    99+
    2023-10-27
    腾讯 如何使用 密码
  • 如何在SpringBoot中使用Shiro怎么实现一个邮件验证码登录功能
    如何在SpringBoot中使用Shiro怎么实现一个邮件验证码登录功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。导入依赖(pom.xml)  &...
    99+
    2023-06-06
  • 在Spring项目中使用 Hibernate如何实现一个分页功能
    本篇文章给大家分享的是有关在Spring项目中使用 Hibernate如何实现一个分页功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最关键的是运用Hibernate的que...
    99+
    2023-05-31
    spring hibernate 分页
  • Spring Boot 项目中如何使用 Python 实现文件下载功能?
    随着互联网技术的不断发展,文件下载已经成为了现代应用程序中的必备功能之一。在 Spring Boot 项目中,我们可以使用多种语言来实现文件下载功能,其中 Python 也是一个不错的选择。本文将为大家介绍如何在 Spring Boot ...
    99+
    2023-09-04
    文件 关键字 spring
  • 浅析vue项目中如何使用Intro.js实现用户指引功能
    vue项目中怎么实现用户指引功能?下面本篇文章给大家介绍一下在vue项目中使用Intro.js实现用户指引功能的方法,希望对大家有所帮助!系统发布新版本或者上线新功能后,为方便用户快速了解新功能,通常需要添加一些用户指引界面。常见的用于实现...
    99+
    2023-05-14
    前端 Vue.js
  • 如何在springmvc中使用spring与mybatis实现一个用户登录功能
    如何在springmvc中使用spring与mybatis实现一个用户登录功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。web.xml<!-- Spring...
    99+
    2023-05-31
    springmvc spring mybatis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作