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

黑马JavaWeb+AI笔记 Day11 Web后端实战(登录模块)

 一、登录功能实现

请求路径:/login

请求方式:post

请求参数:application/json

✅ 核心流程
步骤说明
请求参数接收用户名、密码
查询数据库根据用户名和密码查询 emp 表
判断是否存在存在则登录成功,返回用户数据 + 令牌
登录失败处理返回错误信息(如 401 未认证)


二、登录校验(访问权限控制)

✅会话技术

概念:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应。

会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据。

会话跟踪方案

1、Cookie(客户端会话跟踪技术

  • HTTP协议中支持的技术

缺点

  • 移动端APP无法使用Cookie
  • 不安全,用户可以自己禁用Cookie
  • Cookie不能跨域

2、Session(服务端会话跟踪技术

  • 存储在服务端,安全

 缺点:

  • 集群部署时 Session 不共享,需额外配置共享机制(如 Redis)

3、令牌技术

优点:

  • 支持PC端、移动端
  • 解决集群环境下的认证问题
  • 减轻服务器端存储压力

缺点:

  • 需要自己实现

✅JWT令牌

概念:定义了一种简洁的、自包含的格式,用于在通信双方以 json 数据格式安全的传输信息

结构组成

部分内容说明
Header(头)记录令牌类型、 签名算法 {"alg":"HS256","typ":"JWT"}
Payload(有效载荷)存放自定义信息,如 idusername
Signature(签名)用于防止Token被篡改,将 header、payLoad 融入,并加入指定秘钥,通过指定签名算
法计算而来。

下载依赖

<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version>
</dependency>

 JWT 工具类

public class Jwt {private static final String SECRET_KEY = "emhhb2ppbg==";// 秘钥private static final long EXPIRATION_TIME = 12 * 60 * 60 * 1000;// 有效时间:12小时//生成Jwt令牌public static String generateToken(Map<String, Object> claims) {return Jwts.builder().signWith(SignatureAlgorithm.HS256, SECRET_KEY).addClaims(claims).setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME)).compact();}//解析Jwt令牌public static Claims parseToken(String token) throws Exception {return Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token).getBody();}
}

✅过滤器 Filter

概念:Filter 过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。

功能

  • 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。
  • 过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等。
@WebFilter(urlPatterns="/*") 拦截所有请求
@ServletComponentScan 开启了SpringBoot对Servlet组件的支持
chain.doFilter(request,response)放行

📌 Filter可以根据需求,配置不同的拦截资源路径:


✅过滤器链

介绍:一个web应用中,可以配置多个过滤器,这多个过滤器就形成了一个过滤器链。

顺序:注解配置的Filter,优先级是按照过滤器类名(字符串)的自然排序。


✅拦截器 Interceptor

概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,主要用来动态拦截控制器方法的执行。

作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码。

配置类:

//配置类
@Configuration
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate TokenInterceptor tokenInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(tokenInterceptor).addPathPatterns("/**")         //拦截所有请求.excludePathPatterns("/login"); //不需要拦截}
}

📌Interceptor 可以根据需求,配置不同的拦截资源路径:


✅Filter 与 Interceptor 区别
对比点FilterInterceptor
所属规范Java EE(Servlet)Spring MVC
作用范围所有请求,包括静态资源、第三方接口Controller 控制器方法请求(更精细)
执行顺序先于 Interceptor 执行Filter 执行完后才执行 Interceptor
适合用途登录校验、统一编码、跨域等权限校验、日志、性能分析等

文章转载自:

http://u8tZ3XsN.fwdLn.cn
http://tJH4li6W.fwdLn.cn
http://poACmgW8.fwdLn.cn
http://WagGnj8L.fwdLn.cn
http://HRDVlhfM.fwdLn.cn
http://FxwfwMNF.fwdLn.cn
http://CIhrZRKy.fwdLn.cn
http://AGF9yup4.fwdLn.cn
http://7xPytpAx.fwdLn.cn
http://kPP4GL7S.fwdLn.cn
http://IqhNaaBU.fwdLn.cn
http://3pLQARfw.fwdLn.cn
http://p5TNJ1kK.fwdLn.cn
http://mPh6MBo1.fwdLn.cn
http://FHLO4wMB.fwdLn.cn
http://zFdxCPDo.fwdLn.cn
http://oTtr53Vz.fwdLn.cn
http://xnm9bdd0.fwdLn.cn
http://5ubI6Qy5.fwdLn.cn
http://Cjk0fF0K.fwdLn.cn
http://82POGQhh.fwdLn.cn
http://1NZKOqc0.fwdLn.cn
http://ighgmbmw.fwdLn.cn
http://cagtc6AS.fwdLn.cn
http://rXPNZ4ja.fwdLn.cn
http://zYlM3PZl.fwdLn.cn
http://JlGdyOei.fwdLn.cn
http://ZfAj2qgc.fwdLn.cn
http://ykBEhfAk.fwdLn.cn
http://mVylvOpd.fwdLn.cn
http://www.dtcms.com/a/388665.html

相关文章:

  • Nocobase如何优雅的设置动态的自定义存储路径
  • 线性回归与 Softmax 回归:深度学习基础模型及训练逻辑解析
  • 第四章:职业初印象:打造你的个人品牌(3)
  • 大模型学习:什么是FastText模型架构
  • 【人工智能通识专栏】第十八讲:作业辅导提升
  • Python Matplotlib 布局
  • PHP自动计算文件大小,如:KB、MB、TB等
  • K近邻:从理论到实践
  • 微服务高可用流程讲解
  • 云HIS系统,HIS源码,基于云计算技术的医院信息管理平台,采用B/S架构和微服务技术开发,支持SaaS应用模式。
  • 【卷积神经网络详解与实例】10——经典CNN之GoogLeNet
  • C# 委托和事件详解,委托 vs 方法封装解析
  • MariaDB源码编译安装
  • 多智能体编排之王:深度解析微软Semantic Kernel的AgentOrchestration架构革命
  • AI工具推荐之ezremove.ai
  • 关于Address Editor中修改基地址和地址空间的指南
  • 【Linux 系统探幽:从入门到内核・系统编程开篇】基础指令与权限精讲,筑牢系统开发根基
  • 【STL库】哈希封装 unordered_map/unordered_set
  • 【AI编程】Qoder AI 编程工具从部署到深度使用实战详解
  • 网络原理——数据链路层
  • 大语言模型的 “幻觉” 难题:技术成因、解决方案与应用风险规避
  • 状态保留功耗门控 SRPG (State Retention Power Gating)
  • Elman神经网络多输入多输出回归预测+SHAP可解释分析+新数据预测(MATLAB源码)
  • 408 王道数据结构的学习记录
  • 使用内存映射读取文件和写入文件,并进行性能测试
  • SQL的UNION用法大全介绍
  • 从Web原生到高性能:如何优化企业数据库管理工具
  • 基于python新能源汽车数据分析可视化系统 懂车帝 Scrapy爬虫 Django框架 Vue框架 大数据项目(源码+文档)✅
  • 线性回归和 softmax 回归
  • mysql远程访问连接设置