项目小结二()

一.个人信息的界面

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

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

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("没有被允许访问!");
        }
    }
}
相关推荐
徐徐同学7 小时前
cpolar为IT-Tools 解锁公网访问,远程开发再也不卡壳
java·开发语言·分布式
Mr.朱鹏8 小时前
Nginx路由转发案例实战
java·运维·spring boot·nginx·spring·intellij-idea·jetty
白露与泡影10 小时前
2026版Java架构师面试题及答案整理汇总
java·开发语言
历程里程碑10 小时前
滑动窗口---- 无重复字符的最长子串
java·数据结构·c++·python·算法·leetcode·django
qq_2290580110 小时前
docker中检测进程的内存使用量
java·docker·容器
我真的是大笨蛋10 小时前
InnoDB行级锁解析
java·数据库·sql·mysql·性能优化·数据库开发
钦拆大仁10 小时前
Java设计模式-单例模式
java·单例模式·设计模式
小手cool11 小时前
在保持数组中对应元素(包括负数和正数)各自组内顺序不变的情况下,交换数组中对应的负数和正数元素
java
笨手笨脚の11 小时前
深入理解 Java 虚拟机-04 垃圾收集器
java·jvm·垃圾收集器·垃圾回收
skywalker_1111 小时前
Java中异常
java·开发语言·异常