Javascript window.location.reload(true)是否将清除HttpSession?

Javascript window.location.reload(true)是否将清除HttpSession?,javascript,java,liferay,httpsession,Javascript,Java,Liferay,Httpsession,我有javascript,它调用一个函数来设置会话值,如 以下是客户端代码: <a id="sampleId "href="javascript:confirmTechSimulationSwitch('testLink'); function confirmTechSimulationSwitch(){ var url = window.location.protocol + "//" + window.location.host + "/dummy-proj/Toggl

我有javascript,它调用一个函数来设置会话值,如

以下是客户端代码:

   <a id="sampleId "href="javascript:confirmTechSimulationSwitch('testLink');

 function confirmTechSimulationSwitch(){
 var url = window.location.protocol + "//" + window.location.host +   "/dummy-proj/Toggle.jsp";
 var xmlHttpReq = new XMLHttpRequest();  
    if (window.XMLHttpRequest) {
      xmlHttpReq = new XMLHttpRequest();
      xmlHttpReq.open("POST",url, false);
      xmlHttpReq.send(null);
    } 
     if (xmlHttpReq.readyState == 4) { 
            if (xmlHttpReq.status == 200){
              var newResponse =xmlHttpReq.responseText.slice(0,4);
               if(xmlHttpReq.responseText !=null && newResponse =='true'){
          window.location.reload(true); 
               }
            }
          }
来自另一个java方法测试。我认为它是空的。
有谁能建议我如何在重新加载页面后获得为abc设置的会话值

首先,让我们回答标题:不,它不会使服务器会话无效您的错误不在这里

第二:这有什么意义

if(res !=null && res =='true'){
     var res="true";
     [..]
}
这样做没有意义


最后,我们需要更多的信息来最终解决您的问题。比如激发javascript执行的条件,或者javascript周围的整个HTML(如果包含在页面中)。

显示客户端代码。如果重新加载页面,浏览器可能会取消来自单击处理程序的飞行中请求。在该请求(及其会话工作)完成之前不要重新加载。还有,什么是“另一个java程序”?不是同一web应用程序的一部分(那么它将无法访问会话)?我还添加了客户端代码,请查看您的
trainingAvailableFlag
检查它是
true
还是
1
。只需在ajax响应中添加else case并检查响应。这是真的,我在上面的代码中做了什么错误吗?javascript函数在单击链接时被执行。我们只需点击一个链接,我就调用了这个confirmTechSimulationSwitch函数,对于if(res!=null&&res='true'){var res=“true”;[..]}我已经编辑了这个问题,但var res=“true”和window.location.reload()有什么意义?由于重新加载页面,所有javascript上下文都将被删除。如果你想加载用户的当前会话,你应该在页面加载时加载。为了进一步的逻辑目的,我添加了window.location.reloadTry来更改HttpSession session=request.getSession();by HttpSession session=request.getSession(false);如果会话不存在,那么代码的其余部分将触发NullPointerException,这意味着会话令牌不是由前端客户端提供的。如果没有,你肯定确定你的代币在这里。请看一看,我现在更新了问题,你现在可能会有一些想法吗
public void Test(HttpServletRequest request){
HttpSession session = request.getSession();
session.getAttribute("abc");// prints null
request.getAttribute("abc");//prints null
request.getSession().getAttribute("abc")//prints null
   }
if(res !=null && res =='true'){
     var res="true";
     [..]
}