项目小结二()

一.个人信息的界面

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

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

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("没有被允许访问!");
        }
    }
}
相关推荐
云飞云共享云桌面17 分钟前
东莞精密机械制造工厂如何10个SolidWorks共用一台服务器资源
java·运维·服务器·网络·数据库·电脑·制造
毕设源码-赖学姐23 分钟前
【开题答辩全过程】以 网络药店管理系统为例,包含答辩的问题和答案
java·eclipse
努力也学不会java24 分钟前
【Java并发】揭秘Lock体系 -- 深入理解ReentrantReadWriteLock
java·开发语言·python·机器学习
埃泽漫笔37 分钟前
消息队列延迟与过期问题的实战解决
java·mq
花花无缺1 小时前
资源泄露问题
java·后端·http
爱敲代码的TOM1 小时前
深入剖析Java通信架构下的三种IO模式2
java·开发语言·架构
杨DaB1 小时前
【JavaSE】JVM
java·jvm
lang201509281 小时前
掌握MyBatis Java API:高效操作数据库
java·数据库·mybatis
晨晖22 小时前
将聚合工程的ssm项目部署到本地tomcat
java·tomcat
Z_z在努力2 小时前
【杂类】理解 @Repository 和 Mapper 的关系
java·tomcat·mybatis