当前位置: 首页 > news >正文

SpingMVC拦截器-用户登录权限控制分析

 视频链接:08-SpringMVC拦截器-用户登录权限控制代码实现2_哔哩哔哩_bilibili

114

1、做了一个用户跟角色添加的相关操作

1.1 这个后台工程,没有进行相关操作也能够进行登录:

2、现在我做一个用户的权限控制,如果当前我没有进行操作,那我的后台就不进行操作:同时让你跳转到登录页面

3、功能写到那,写到inter...,控制器里面,专门验证一下,页面有没有进行登录

4、业务流程操作是这样的,如下。用户登还是没登,如何进行判断,用session,进行判断,如果不做集群,存session,如果做集群,存到redis里面

4.1

5、以下为设置拦截器的功能:

5.1

6、现在我们演示的是Spring_interceptor工程中转换到Spring_test工程:

7、我先把他发布过去:

8、移除掉

 选择test那个文件:

9、把服务器关掉,然后再重新启动

10、这时候,我要创建一个inter...包

11、建个包

12、创建好之后,我要创建一个权限控制器:

13、

14、写好之后实现固定的那个接口:

15、覆盖一下方法:

16、本质逻辑是判断用户有没有进行登录:

17、session通过request进行获取

17.1.var可以获得session对象:

17.2 获取谁啊!获取user,返回的是user对象

 17.3 强转之后做判断:

 17.4 如果判断没有登录,这里跳转,这里我要设置重定向命令:

 

17.5 重定向

17.6 内部requestContextPath,这个可以获取外部名称

17.7 设置request,login.jsp 

 17.8 你想要这东西,你还得return false 最终不放行

 17.9 如果不是null,就可以实现放行

 17.10 写完这些之后,可以进行相应的配置

 17.11 找到springMVC,将包进行相应的配置

18、内部inter

19、把之前放的路径放到这里;

19.1 配完之后,我们把他发布一下看一下效果

20、效果:这个拦截器,跳转到登录页面已经完成了

21、-------------------接下来实现登录操作

21.1 登录功能比较简单了,表单输入密码和用户名,实现登录:。如果不正确,跳回到我们的登录页面:

22、先找到表单,这里有表单传送数据表单

22.1 设置好路径的方法:接受表单发送过来的数据,这里数据比较少: 

22.2 login执行login方法,并把他返回为一个user对象

 22.3 之后我再对其进行判断,对其进行session的注入,看到产生形参,我就把session给你 

22.4 session的对象就是user

22.5 传递完值之后,跳转页面 

 22.6 如果登录失败去那跳:继续跳到我们的jsp页面

 22. 7 alt + insert 将方法快速实现一下:

 其他

 22.8 把user给返回一下:同时把username和password的数据传输一下

22.9上面红色标记实现一下方法,alt + insert ,然后实现一下Dao层,点旁边的绿色按钮

 22.10 找Dao层进行实现:

 22.11 Dao层用jdbc模板,然后你再接收一下实体

 22.12 接收一个实体:

22.13 后面是一个User.class字节码类型 

22.14 再后面是我们的实参username和password

22.15 这个方法,给我们的返回值返回一下:

 22.16 这里面的user,我们就return一下

22.17 发布一下我们就给他return一下:

23、出现了bug,根本就过不去

24、原因是将密码输入完之后,他直接去找我们的资源 

24.1 你在找资源,我在配置的时候,配置/**,对任何请求都要执行过滤操作:包括你的login

25 重点我们如何选择对那些资源进行放行:要一个exlude

26、如果你要多个资源,你可以选择多个资源进行配置:

27、放行之后,登录成功

28、密码登录

29、Empty 通的结果的数据返回的异常

30、Dao层数据爆了错

==

31、这就是Dao层:

31.1

32、如果用户密码是错的,查不到user,queryForObject查询不到就会抛出异常,我最终想要转换为null,而不是想要真的异常

33、他为什么返回了真么一个异常:

34、他有这个异常为什么不抓呀! 一般情况下,我们会在业务层进行操作,统一try catch,抛出去谁调用这个try catch方法

34.1、 

34.2 catch() 获取对象:

35、try之后,return

36、把异常抛出去,这样就是空的:抛到业务层转成null

37、转成null,转成成功

相关文章:

SpingMVC拦截器-用户登录权限控制分析

视频链接:08-SpringMVC拦截器-用户登录权限控制代码实现2_哔哩哔哩_bilibili 114 1、做了一个用户跟角色添加的相关操作 1.1 这个后台工程,没有进行相关操作也能够进行登录: 2、现在我做一个用户的权限控制,如果当前我没有进行操…...

MDTA模块(Restormer)

From a layer normalized tensor Y ∈ R H ^ W ^ C ^ \mathbf{Y} \in \mathbb{R}^{\hat{H} \times \hat{W} \times \hat{C}} Y∈RH^W^C^, our MDTA first generates query ( Q ) (\mathbf{Q}) (Q), key ( K ) (\mathbf{K}) (K) and value ( V ) (\mathbf{V}) (V) project…...

C++ 新特性 | C++ 11 | decltype 关键字

一、decltype 关键字 1、介绍 decltype 是 C11 新增的一个用来推导表达式类型的关键字。和 auto 的功能一样,用来在编译时期进行自动类型推导。引入 decltype 是因为 auto 并不适用于所有的自动类型推导场景,在某些特殊情况下 auto 用起来很不方便&…...

2023国赛数学建模思路 - 案例:退火算法

文章目录 1 退火算法原理1.1 物理背景1.2 背后的数学模型 2 退火算法实现2.1 算法流程2.2算法实现 建模资料 ## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上&a…...

ubuntu20.04 编译安装运行emqx

文章目录 安装依赖编译运行登录dashboard压力测试 安装依赖 Erlang/OTP OTP 24 或 25 版本 apt-get install libncurses5-dev sudo apt-get install erlang如果安装的erlang版本小于24的话,可以使用如下方法自行编译erlang 1.源码获取 wget https://github.com/erla…...

ARM linux ALSA 音频驱动开发方法

+他V hezkz17进数字音频系统研究开发交流答疑群(课题组) 一 linux ALSA介绍 ALSA (Advanced Linux Sound Architecture) 是一个用于提供音频功能的开源软件框架。它是Linux操作系统中音频驱动程序和用户空间应用程序之间的接口。ALSA 提供了访问声卡硬件的低级别API,并支持…...

设计模式二十三:模板方法模式(Template Method Pattern)

定义了一个算法的框架,将算法的具体步骤延迟到子类中实现。这样可以在不改变算法结构的情况下,允许子类重写算法的特定步骤以满足自己的需求 模版方法使用场景 算法框架固定,但具体步骤可以变化:当你有一个算法的整体结构是固定…...

[Linux]进程状态

[Linux]进程状态 文章目录 [Linux]进程状态进程状态的概念阻塞状态挂起状态Linux下的进程状态孤儿进程 进程状态的概念 了解进程状态前,首先要知道一个正在运行的进程不是无时无刻都在CPU上进行运算的,而是在操作系统的管理下,和其他正在运行…...

Python爬虫逆向实战案例(五)——YRX竞赛题第五题

题目:抓取全部5页直播间热度,计算前5名直播间热度的加和 地址:https://match.yuanrenxue.cn/match/5 cookie中m值分析 首先打开开发者工具进行抓包分析,从抓到的包来看,参数传递了查询参数m与f,同时页面中…...

js识别图片中的文字插件 tesseract.js

使用方法及步骤 1.安装依赖 npm i tesseract.js 2.引入插件 import { createWorker } from tesseract.js;//worker多线程引入这个import Tesseract from tesseract.js;//js单线程引入这个 3.使用插件识别图片 //使用worker线程识别(async () > {console.time()const wo…...

Linux设备驱动移植(设备数)

一、设备数 设备树是一种描述硬件信息的数据结构,Linux内核运行时可以通过设备树将硬件信息直接传递给Linux内核,而不再需要在Linux内核中包含大量的冗余编码 设备数语法概述 设备树文件 dts 设备树源文件 dtsi 类似于头文件,包含一些公共的…...

【移动端开发】鸿蒙系统开发入门:代码示例与详解

一、引言 随着华为鸿蒙系统的日益成熟,越来越多的开发者开始关注这一新兴的操作平台。本文旨在为初学者提供一份详尽的鸿蒙系统开发入门指南,通过具体的代码示例,引导大家逐步掌握鸿蒙开发的基本概念和技术。 二、鸿蒙系统开发基础 鸿蒙系…...

Jenkins的流水线详解

来源:u.kubeinfo.cn/ozoxBB 什么是流水线 声明式流水线 Jenkinsfile 的使用 什么是流水线 jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkins 推荐使用声明式流水线。…...

DIFFEDIT-图像编辑论文解读

文章目录 摘要算法Step1:计算编辑maskStep2:编码Step3:使用mask引导进行解码理论分析: 实验数据集:扩散模型:ImageNet数据集上实验消融实验IMAGEN数据集上实验COCO数据集上实验 结论 论文: 《D…...

【优选算法】—— 字符串匹配算法

在本期的字符串匹配算法中,我将给大家带来常见的两种经典的示例: 1、暴力匹配(BF)算法 2、KMP算法 目录 (一)暴力匹配(BF)算法 1、思想 2、演示 3、代码展示 (二&…...

Docker容器:docker consul的注册与发现及consul-template守护进程

文章目录 一.docker consul的注册与发现介绍1.什么是服务注册与发现2.什么是consul3.docker consul的应用场景4.consul提供的一些关键特性5.数据流向 二.consul部署1.consul服务器(192.168.198.12)(1)建立 Consul 服务启动consul后…...

Blazor 依赖注入妙用:巧设回调

文章目录 前言依赖注入特性需求解决方案示意图 前言 依赖注入我之前写过一篇文章,没看过的可以看看这个。 C# Blazor 学习笔记(10):依赖注入 依赖注入特性 只能Razor组件中注入所有Razor组件在作用域注入的都是同一个依赖。作用域可以看看我之前的文章。 需求 …...

Python 基础 -- Tutorial(三)

7、输入和输出 有几种方法可以表示程序的输出;数据可以以人类可读的形式打印出来,或者写入文件以备将来使用。本章将讨论其中的一些可能性。 7.1 更花哨的输出格式 到目前为止,我们已经遇到了两种写值的方法:表达式语句和print()函数。(第三种方法是使…...

基于STM32的四旋翼无人机项目(二):MPU6050姿态解算(含上位机3D姿态显示教学)

前言:本文为手把手教学飞控核心知识点之一的姿态解算——MPU6050 姿态解算(飞控专栏第2篇)。项目中飞行器使用 MPU6050 传感器对飞行器的姿态进行解算(四元数方法),搭配设计的卡尔曼滤波器与一阶低通滤波器…...

微信小程序开发教学系列(1)- 开发入门

第一章:微信小程序简介与入门 1.1 简介 微信小程序是一种基于微信平台的应用程序,可以在微信内直接使用,无需下载和安装。它具有小巧、高效、便捷的特点,可以满足用户在微信中获取信息、使用服务的需求。 微信小程序采用前端技…...

Nginx虚拟主机(server块)部署Vue项目

需求 配置虚拟主机,实现一个Nginx运行多个服务。 实现 使用Server块。不同的端口号,表示不同的服务;同时在配置中指定,Vue安装包所在的位置。 配置 Vue项目,放在 html/test 目录下。 config中的配置如下&#xf…...

JAVA开发环境接口swagger-ui使用总结

一、前言 swagger-ui是java开发中生产api说明文档的插件&#xff0c;这是后端工程师和前端工程师联调接口的桥梁。生成的文档就减少了很多没必要的沟通提高开发和测试效率。 二、 swagger-ui的使用 1、引入maven依赖 <dependency><groupId>io.springfox</grou…...

mongodb 数据库管理(数据库、集合、文档)

目录 一、数据库操作 1、创建数据库 2、删除数据库 二、集合操作 1、创建集合 2、删除集合 三、文档操作 1、创建文档 2、 插入文档 3、查看文档 4、更新文档 1&#xff09;update() 方法 2&#xff09;replace() 方法 一、数据库操作 1、创建数据库 创建数据库…...

分布式与集群的定义及异同

分布式与集群的定义及异同 分布式定义优点不足 集群优点不足 异同 分布式 定义 分布式是指将一个系统或应用程序分散到多个计算机或服务器上进行处理和管理的技术。它是指多个系统协同合作完成一个特定任务的系统。例如&#xff0c;可以将一个大业务拆分成多个子业务&#xf…...

电脑端teams一直在线小程序,简单好用易上手

居家办公的你&#xff0c;会不会想要摸鱼&#xff01;&#xff01;会不会想要下楼拿快递&#xff01;&#xff01;会不会想要出去下馆子&#xff01;&#xff01;&#xff01;然而&#xff0c;teams的5分钟不操作电脑状态就变为离开大大的阻挡了你幸福生活的脚步&#xff01;&a…...

YOLOv5算法改进(4)— 添加CA注意力机制

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。注意力机制是近年来深度学习领域内的研究热点&#xff0c;可以帮助模型更好地关注重要的特征&#xff0c;从而提高模型的性能。在许多视觉任务中&#xff0c;输入数据通常由多个通道组成&#xff0c;例如图像中的RGB通道或…...

无涯教程-PHP - XML GET

XML Get已用于从xml文件获取节点值。以下示例显示了如何从xml获取数据。 Note.xml 是xml文件&#xff0c;可以通过php文件访问。 <SUBJECT><COURSE>Android</COURSE><COUNTRY>India</COUNTRY><COMPANY>LearnFk</COMPANY><PRICE…...

Spark Standalone环境搭建及测试

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 篇一&#xff1a;Linux系统下配置java环境 篇二&#xff1a;hadoop伪分布式搭建&#xff08;超详细&#xff09; 篇三&#xff1a;hadoop完全分布式集群搭建&#xff08;超详细&#xf…...

【PHP】流程控制-ifswitchforwhiledo-whilecontinuebreak

文章目录 流程控制顺序结构分支结构if分支switch分支 循环结构for循环while循环do-while循环continue和break 流程控制 顺序结构&#xff1a;代码从上往下&#xff0c;顺序执行。&#xff08;代码执行的最基本结构&#xff09; 分支结构&#xff1a;给定一个条件&#xff0c;…...

Pytorch-day04-模型构建-checkpoint

PyTorch 模型构建 1、GPU配置2、数据预处理3、划分训练集、验证集、测试集4、选择模型5、设定损失函数&优化方法6、模型效果评估 #导入常用包 import os import numpy as np import torch from torch.utils.data import Dataset, DataLoader from torchvision.transfor…...

福州网站建设多少钱/灰色关键词排名技术

Android项目运行时出现 Failed to load E:\eclipse\android-sdk-windows\build-tools\27.0.3\lib\dx.jar Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder! 可能的原因&#xff1a; 更新了sdk之后才有这个错误&#xff0c;可能是因为项目…...

网站功能提升权限/百度搜索引擎官网

java环境变量配置视频教程&#xff1a; https://ke.qq.com/course/149432?tuin57912c43 有技术问题或者面试方面想学习交流的加我个人微信renlliang2013&#xff0c;本人建了一个微信答疑群&#xff0c; 有学习疑问的同学加我拉你进群。 常用的快捷键操作 Tab 缩进、 Windo…...

自适应网站 响应式网站模板/杭州百度快照优化排名

numpy库基础结构 可以通过打印help(numpy.XXX函数)看相应的帮助文档 import numpy as np #读取一个文件&#xff0c;并且以XX作为分隔符 f np.genfromtxt(./data/world_alcohol.txt,delimiter ,,dtype str) print(type(f)) print(f)<class numpy.ndarray> [[Year WH…...

做新闻微网站/sem是什么岗位

继承 继承&#xff1a;子类可以使用父类的所有功能&#xff0c;并且对这些功能进行扩展。继承的过程&#xff0c;就是从一般到特殊的过程。类继承 // 父类 var supperClass function() {var id 1;this.name [js];this.superVal function() {console.log(supreVal is true);…...

wordpress 登陆 没反应/搜索引擎优化的方法包括

--显示当前读取的Master节点二进制日志文件和文件位置&#xff0c;对应线程I/O thread Master_Log_File: mysql-bin.000011Read_Master_Log_Pos: 120--显示当前Slave节点正在处理的中继日志文件和位置&#xff0c;对应线程 SQL thread Relay_Log_File: relay-bin.000002Rel…...

做公司网站怎么推广/北京网络优化

Box Shadow(阴影)-Css3演示 演示地址https://www.css88.com/tool/css3Preview/Box-Shadow.html box-shadow:2px -6px 5px #333333;...