小程序后台管理系统(1)登入,登出,及拦截器讲解

2024-04-15 14:32

本文主要是介绍小程序后台管理系统(1)登入,登出,及拦截器讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、拦截器配置
//springmvc.xml(配置拦截器)

<mvc:mapping path="/*/**"/>表示对所有路径都进行拦截,然后<mvc:exclude-mapping path="/static/**"/>对静态资源文件进行开放,和springboot里面的拦截器配置是换汤不换药,而对于login接口是不需要进行拦截的。

<mvc:interceptors><mvc:interceptor><mvc:mapping path="/*/**"/><mvc:exclude-mapping path="/static/**"/><bean class="com.atlantis.interceptor.LoginInterceptor"><property name="unCheckUrls"><list><value>/login.action</value></list></property></bean></mvc:interceptor></mvc:interceptors>

//LoginInterceptor.class(拦截器注册类)

如果请求的路径为放行的Url,则直接放行,如果session失效,则返回登陆页面。

public class LoginInterceptor implements HandlerInterceptor {private List<String> unCheckUrls; // 需要放行的url集合public List<String> getUnCheckUrls() {return unCheckUrls;}public void setUnCheckUrls(List<String> unCheckUrls) {this.unCheckUrls = unCheckUrls;}@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {String requestUrl = request.getRequestURI();requestUrl = requestUrl.replaceAll(request.getContextPath(), "");// 判断是否针对匿名路径需要拦截,如果包含,则表示匿名路径,需要拦截,否则通过拦截器if (unCheckUrls.contains(requestUrl)) {// 包含需要放行的url,直接跳过return true;}if (null == request.getSession().getAttribute("sessionAdmin")) {response.sendRedirect(request.getContextPath() + "/login.action");return false;}// 放行return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {}
}

二、登入
//login接口

这里写死了登陆名和密码,登陆成功后利用UUID随机生成了一个token,然后把token和用户信息封装成一个对象,放到session里面去

@PostMapping("login")
@ResponseBody
public ResultByJSON adminLogin(String username, String password, HttpServletRequest request, HttpServletResponse response) {if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {return ResultByJSON.errorMsg("用户名和密码不能为空");} else if (USERNAME.equals(username) && PASSWORD.equals(password)) {String token = UUID.randomUUID().toString();Admin admin = new Admin(token, username, password);request.getSession().setAttribute("sessionAdmin", admin);return ResultByJSON.ok();}return ResultByJSON.errorMsg("登陆失败,请重试...");}

这篇关于小程序后台管理系统(1)登入,登出,及拦截器讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/906080

相关文章

Java集合中的List超详细讲解

《Java集合中的List超详细讲解》本文详细介绍了Java集合框架中的List接口,包括其在集合中的位置、继承体系、常用操作和代码示例,以及不同实现类(如ArrayList、LinkedList和V... 目录一,List的继承体系二,List的常用操作及代码示例1,创建List实例2,增加元素3,访问元

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

Kafka拦截器的神奇操作方法

《Kafka拦截器的神奇操作方法》Kafka拦截器是一种强大的机制,用于在消息发送和接收过程中插入自定义逻辑,它们可以用于消息定制、日志记录、监控、业务逻辑集成、性能统计和异常处理等,本文介绍Kafk... 目录前言拦截器的基本概念Kafka 拦截器的定义和基本原理:拦截器是 Kafka 消息传递的不可或缺

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

Mybatis拦截器如何实现数据权限过滤

《Mybatis拦截器如何实现数据权限过滤》本文介绍了MyBatis拦截器的使用,通过实现Interceptor接口对SQL进行处理,实现数据权限过滤功能,通过在本地线程变量中存储数据权限相关信息,并... 目录背景基础知识MyBATis 拦截器介绍代码实战总结背景现在的项目负责人去年年底离职,导致前期规