首页
关于
友情链接
Search
1
Mybatis-动态SQL
93 阅读
2
Mybatis-XML映射文件
80 阅读
3
springboot配置文件yml
80 阅读
4
Mybatis-基础操作
79 阅读
5
拦截器(Interceptor)
74 阅读
学习记录
MySql
Java
vue
Mybatis
默认分类
代码记录
项目搭建教程
go项目
源码分享
经验分享
登录
Search
标签搜索
java
mysql
Mybatis
spring boot
编程
lombok
go
MinDoc
JAVAweb
Typecho
累计撰写
16
篇文章
累计收到
1
条评论
首页
栏目
学习记录
MySql
Java
vue
Mybatis
默认分类
代码记录
项目搭建教程
go项目
源码分享
经验分享
页面
关于
友情链接
搜索到
16
篇与
的结果
2024-02-03
时间戳计算出现的坑-相差8小时
什么是时间戳时间戳是一个表示特定时间点的数值,通常以秒为单位。它是从某个固定的起点(通常是1970年1月1日00:00:00 UTC)开始计算,到指定时间点所经过的秒数。时间戳可以用于记录事件发生的时间、进行时间计算和比较等操作。 说白了就是,表示某一刻的时间;问题截图在线工具转换结果出现问题出现原因时间戳的起点是世界标准时间的1970年1月1日,而中国处于东八区,所以,需要在标准时间的基础上加上八个小时。
2024年02月03日
28 阅读
0 评论
0 点赞
2023-12-26
java基础复习-引用调用
分为值传递和引用传递值传递 基本数据类型引用传递 数组 对象public class Main { public static void main(String[] args) { A a = new A(); a.遇见 = "6666"; System.out.println(a.遇见); b(a); System.out.println(a.遇见); } public static void b(A a) { a.遇见 = "7777"; System.out.println(a.遇见); } } class A { String 遇见; }
2023年12月26日
28 阅读
0 评论
0 点赞
2023-11-08
java基础复习-变量 数据类型 类型转换 运算符
暂无简介
2023年11月08日
42 阅读
0 评论
0 点赞
2023-08-22
实现某盘不限速下载
网站项目中所涉及的接口均来自百度官方,实现原理是通过curl获取网盘文件信息, 处理后显示在网页中。通过api接口以及 SVIP账号的Cookie(BDUSS)获取高速下载链接,本质就是用会员账号获取下载地址并发送给访客,所以,本网站相当于百度网盘超级会员的自愿大众共享使用,不存在违法行为。开源地址(非本人) https://github.com/yuantuo666/baiduwp-php 下载地址 https://07wl.lanzoul.com/iBOmY1621ucd 最后声明,该项目仅作学习研究使用,如有侵权,请联系告知处理。
2023年08月22日
55 阅读
0 评论
0 点赞
2023-06-05
拦截器(Interceptor)
概述概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法的执行。 作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码。 Interceptor 快速入门定义拦截器,实现HandlerInterceptor接口,并重写其所有方法。 注册拦截器@Component public class LoginCheckInterceptor implements HandlerInterceptor { @Override //目标资源方法运行前运行, 返回true: 放行, 放回false, 不放行 public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception { System.out.println("收到请求 ..."); return true; } @Override //目标资源方法运行后运行 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("postHandle ..."); } @Override //视图渲染完毕后运行, 最后运行 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("afterCompletion..."); } } @Configuration //配置类 public class WebConfig implements WebMvcConfigurer { @Autowired private LoginCheckInterceptor loginCheckInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { //注册拦截器 /**拦截所有资源 /*拦截一级目录 registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**"); } }拦截器-拦截路径 @Override public void addInterceptors(InterceptorRegistry registry) { //注册拦截器 /**拦截所有资源 /*拦截一级目录 registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**").excludePathPatterns("/login"); }拦截器-执行流程Filter 与 Interceptor不同接口规范不同:过滤器需要实现Filter接口,而拦截器需要实现HandlerInterceptor接口。 拦截范围不同:过滤器Filter会拦截所有的资源,而Interceptor只会拦截Spring环境中的资源。登录校验例子package com.tlias.interceptor; import com.alibaba.fastjson.JSONObject; import com.tlias.pojo.Result; import com.tlias.utils.JwtUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @Slf4j @Component public class LoginCheckInterceptor implements HandlerInterceptor { @Override //目标资源方法运行前运行, 返回true: 放行, 放回false, 不放行 public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception { //1.获取请求url。 String url = req.getRequestURL().toString(); log.info("LoginCheckInterceptor 请求的url: {}",url); //2.判断请求url中是否包含login,如果包含,说明是登录操作,放行。 if(url.contains("login")){ //已被排除 log.info("登录操作, 放行..."); return true; } //3.获取请求头中的令牌(token)。 String jwt = req.getHeader("token"); //4.判断令牌是否存在,如果不存在,返回错误结果(未登录)。 if(!StringUtils.hasLength(jwt)){ log.info("请求头token为空,返回未登录的信息"); Result error = Result.error("NOT_LOGIN"); //手动转换 对象--json --------> 阿里巴巴fastJSON String notLogin = JSONObject.toJSONString(error); resp.getWriter().write(notLogin); return false; } //5.解析token,如果解析失败,返回错误结果(未登录)。 try { JwtUtils.parseJWT(jwt); } catch (Exception e) {//jwt解析失败 e.printStackTrace(); log.info("解析令牌失败, 返回未登录错误信息"); Result error = Result.error("NOT_LOGIN"); //手动转换 对象--json --------> 阿里巴巴fastJSON String notLogin = JSONObject.toJSONString(error); resp.getWriter().write(notLogin); return false; } //6.放行。 log.info("令牌合法, 放行"); return true; //真 放行 假 拦截 } @Override //目标资源方法运行后运行 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("postHandle ..."); } @Override //视图渲染完毕后运行, 最后运行 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("afterCompletion..."); } }
2023年06月05日
74 阅读
0 评论
0 点赞
1
2
...
4