Javascript window.location.reload(true)是否将清除HttpSession?
我有javascript,它调用一个函数来设置会话值,如 以下是客户端代码: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
<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";
[..]
}