在setUser
方法中把User
对象存入session,在同一个方法中获取user
没问题,但是在getUser
方法中拿到user
,强转就会报错,整了半天没找到原因,哪位大神可以解惑?
项目是前后端分离的,用nginx做代理进行请求跳转,难道有代理的时候session中的值就转成了字符串吗???
我没有在前端操作session,只是在后端存了user,再取出user
@Controller
public class Test {
@GetMapping("/setUser")
@ResponseBody
public User setUser(HttpServletRequest request) {
User user = new User("李逵", 20);
HttpSession session = request.getSession();
session.setAttribute("user", user);
// 在当前方法中拿取user不会报错
User user = (User) session.getAttribute("user");
return user;
}
@GetMapping("/getUser")
public String getUser(HttpServletRequest request) {
HttpSession session = request.getSession();
// 这里强转为User会报错:java.lang.String can not cast to Uesr
User user = (User) session.getAttribute("user");
return "ok";
}
}
可能有其他地方设置了一个字符串的session
先去掉强转,或者debug进,看一下取到了什么