我有HttpSession的问题,我没有它 我想我忘了Annotation或类似的东西 我是否需要在任何地方进行session.create()?
在UserController中:
@Controller
public UserController{
public ResponseHttp connection(User userSent, HttpSession session) {
ResponseHttp responseHttp = new ResponseHttp();
//function to check login/mdp
if (check) {
responseHttp.setSuccess(true);
responseHttp.setMessage("Connection success");
//some code
//
//
session.setAttribute("userId", 1); // this is an example
System.out.println(session.getAttribute("userId")) // return 1
return responseHttp;
}
}
responseHttp.setSuccess(false);
responseHttp.setMessage("Connection failed");
return responseHttp;
}
}
在另一个控制器中:
@Controller
public class MyController{
public void test(HttpSession session){
System.out.println(session.getAttribute("userId")) ; // return null
}
}
更新25-06-2017
我试图在两个控制器中注入@HttpSession 在连接时,我会检查会话:
if(httpSession.isNew()){
System.out.println("New") // ok return new !
System.out.println(httpSession.getId()); // A87AC018FD8DDA33B023FAA6C1C2D71C
}
在另一个控制器中
if(httpSession.isNew()){
System.out.println("New") // it's returning new again
System.out.println(httpSession.getId()); // 2FE08FB68EA53F7FEBB8143CFEE6A9EB
}else{
System.our.println("not new")
}
问题:为什么不是同一个会话?