很多时候方法中没有带参数HttpServletRequest 和HttpServletResponse ,但是我们需要用到这个参数。
场景:
我们将用户的登陆信息存入了redis以token作为Key,在某些地方需要获取用户信息,我们就需要获取请求头中的token。
这时候我们需要获取HttpServletRequest来获取 请求头。
public Integer getUserId() {
ServletRequestAttributes sra = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequest request = sra.getRequest();
//HttpServletResponse response = sra.getResponse();
return Integer.valueOf((String)redisTemplate.opsForHash().get(UserConstant.TOKEN_KEY + request.getHeader("token"), "userId"));
}
这里更详细的总结:https://blog.youkuaiyun.com/u012706811/article/details/53432032