struts2 session不一致问题

比如说有如下场景:

 

第一个ajax请求到服务器用来保存用户 session.setAttribute("user",userObj);

然后第二个ajax请求到服务器来获取用户,这时候拿到的userObj为null. 怎么回事呢?

 

取到用户对象为null肯定是session对象不一致,session对象不一致肯定页面的sessionid不一样(用火狐firebug查看一下就能发现)

 

那么我们就可以推断出ajax提交请求的方式不一样了

 

第一个ajax请求是异步形式

第二个ajax请求是同步形式

 

这样就会出现问题

 

解决方法是统一用同步的方式

 

在做项目中也需要权衡什么时候用异步,什么时候用同步

 

一般是读取数据的时候用异步,提交数据的时候用同步

 

下面是jquery的异步同步提交方式:

$.ajax({
  url: "test.html",
  async: false/true,// (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。
  success: function(html){
    $("#results").append(html);
  }
});

 

你可能感兴趣的:(struts2 session不一致问题)