首页>代码>springboot仿百度网盘开发的在线云盘项目>/CJPan/src/main/java/com/whut/pan/config/WebInterceptor.java
package com.whut.pan.config;

import com.whut.pan.dao.model.User;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import java.lang.reflect.Method;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 拦截配置
 *
 * @author Sandeepin
 */
public class WebInterceptor implements HandlerInterceptor {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
        throws Exception {
        boolean flag = true;
        if (handler instanceof HandlerMethod) {
            String ip = request.getRemoteAddr();
            long startTime = System.currentTimeMillis();
            request.setAttribute("requestStartTime", startTime);
            HandlerMethod handlerMethod = (HandlerMethod) handler;
            Method method = handlerMethod.getMethod();
            logger.warn("用户ip:" + ip + ",访问目标:" + method.getDeclaringClass().getName() + ":" + method.getName());
            User user = (User) request.getSession().getAttribute("user");
            if (null == user) {
                logger.warn("未登录");
                response.sendRedirect("toLogin");
                flag = false;
            } else {
                logger.warn("登录的账号:{}", user.getUserName());
                flag = true;
            }
        }
        return flag;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
        ModelAndView modelAndView) {
        if (handler instanceof HandlerMethod) {
            HandlerMethod handlerMethod = (HandlerMethod) handler;
            Method method = handlerMethod.getMethod();
            long startTime = (Long) request.getAttribute("requestStartTime");
            long endTime = System.currentTimeMillis();
            long executeTime = endTime - startTime;
            // 打印方法执行时间
            if (executeTime > 1000) {
                logger.warn(
                    "[" + method.getDeclaringClass().getName() + "." + method.getName() + "] 执行耗时 : " + executeTime
                        + "ms");
            } else {
                logger.warn("[" + method.getDeclaringClass().getSimpleName() + "." + method.getName() + "] 执行耗时 : "
                    + executeTime + "ms");
            }
        }
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
        Exception ex) {
    }
}
最近下载更多
francochan  LV6 5月4日
kkkllll  LV2 1月26日
shuangfu  LV25 2023年10月19日
molu123456 2023年10月10日
暂无贡献等级
thsgli  LV8 2023年3月14日
MAOMAO999999  LV4 2023年3月4日
xxn1234567  LV1 2023年2月1日
cxz2132132  LV11 2022年11月18日
qlpqlp  LV7 2022年11月14日
huyuxin  LV3 2022年11月9日
最近浏览更多
Boss绝  LV9 11月12日
charleswang  LV7 10月21日
grant1123  LV2 6月22日
TY0165  LV20 6月21日
17380184110 6月19日
暂无贡献等级
来一杯西瓜冰咩  LV6 5月13日
xiaozhi丶  LV15 3月24日
暂无贡献等级
wyyz5211314  LV4 1月30日
kkkllll  LV2 1月26日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友