项目小结二()

一.个人信息的界面

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

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

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("没有被允许访问!");
        }
    }
}
相关推荐
知其然亦知其所以然4 分钟前
SpringAI + Groq 实战:3 分钟教你搭建超快聊天机器人!
java·后端·openai
阿波罗尼亚18 分钟前
ExcelUtils实现 设置内容 插入行 复制行列格式
java·开发语言
Monkey-旭26 分钟前
Android 定位技术全解析:从基础实现到精准优化
android·java·kotlin·地图·定位
带刺的坐椅26 分钟前
Solon StateMachine 实现状态机使用示例详解
java·solon·状态机
Yyyy48240 分钟前
MyCAT高可用
java·运维
华仔啊1 小时前
final在Java中到底有啥用?5个实际场景告诉你
java·后端
the beard1 小时前
Maven 入门与进阶:聚合、继承与生命周期详解
java
csdn_aspnet1 小时前
解决 Spring Boot 应用程序中的“无法配置数据源”错误
java·spring boot
灵魂猎手2 小时前
9. Mybatis与Spring集成原理解析
java·后端·源码
AAA修煤气灶刘哥2 小时前
避坑!线程 / 线程池从入门到华为云实战,面试官听了都点头
java·后端·面试