项目小结二()

一.个人信息的界面

这里可以进行用户信息的修改,并渲染数据上去

二.这两天,出现的问题:

1.mybatis中 字段取别名 (还没验证,是否正确)

问题描述:由于实体类中的变量名,与数据库中的字段名不相同,导致mybatis框架执行错误。

2.在前端js代码出现问题

问题描述:因为方式如果不是异步的,就会出现问题,这个原理还不是很了解

这里的异步函数,如果不使用这个异步就会出现问题

3.在样式方面

有时候这个样式 active不同成功加上去,目前也还没发现哪里出现了问题。后面有时间再回来解决。

三. 后端过滤器(检测token是否过期)

复制代码
package com.csdn.controller;


import com.csdn.util.TokenUtil;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

// 过滤器,过滤掉accessToke过期的
@WebFilter("/token/*")
public class AuthFilter implements Filter {
    private static final List<String> WHITE_LIST_URLS = Arrays.asList(

                                        // 可以根据需要添加更多URL
    );

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {


        HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
        HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
        httpResponse.setContentType("application/json;charset=utf-8");
        httpRequest.setCharacterEncoding("utf-8");

        String accessToken = httpRequest.getHeader("Authorization");
        String requestURI = httpRequest.getRequestURI();
        if (WHITE_LIST_URLS.contains(requestURI)) {
            // 如果在白名单中,则不进行Token验证,直接放行
            filterChain.doFilter(servletRequest, servletResponse);
            return;
        }
        if (accessToken != null && accessToken.startsWith("Bearer ")) {
            accessToken = accessToken.substring(7); // 提取Token值
            try {
                // 验证Token
                if (TokenUtil.verifyToken(accessToken)) {
                    // Token验证通过,继续执行
                    System.out.println("\n\nToken验证通过,继续执行\n|||||||||||||||||||||||||||||||\n");
                    filterChain.doFilter(servletRequest, servletResponse);
                } else {
                    // Token验证失败,返回401
                    httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
                    httpResponse.getWriter().write("Unauthorized");
                }
            } catch (Exception e) {
                // Token验证异常处理
                e.printStackTrace();
                httpResponse.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                httpResponse.getWriter().write("Internal Server Error");
            }
        } else {
            // 如果没有Token或者格式不正确,返回401
            httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);


            httpResponse.getWriter().write("没有被允许访问!");
        }
    }
}
相关推荐
怀旧诚子13 分钟前
timeshift之Fedora43设置,已在VM虚拟机验证,待真机验证。
java·服务器·数据库
1104.北光c°18 分钟前
滑动窗口HotKey探测机制:让你的缓存TTL更智能
java·开发语言·笔记·程序人生·算法·滑动窗口·hotkey
云原生指北3 小时前
GitHub Copilot SDK 入门:五分钟构建你的第一个 AI Agent
java
Leinwin7 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
薛定谔的悦8 小时前
MQTT通信协议业务层实现的完整开发流程
java·后端·mqtt·struts
enjoy嚣士8 小时前
springboot之Exel工具类
java·spring boot·后端·easyexcel·excel工具类
罗超驿8 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
盐水冰9 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
凸头9 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun3141599 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm