日期:2014-05-17  浏览次数:20695 次

请教一个JSP/JS问题
写了一个退出系统的jsp,用到JS,问题是选择取消时也执行了确定中的<% session.invalidate(); %>,不知为什么?请大家看看。代码如下:


<html>
<head>
<script type="text/javascript">
function exit(){
 var close = window.confirm('退出系统?');
 if(close){
<%
session.invalidate();
%>
window.close();
 }
 else{
 history.go(-1)
}
}
</script>

</head>

<body onload="exit();">

</body>
</html>


------解决方案--------------------
 history.go(-1)改为
 history.back(-1);
------解决方案--------------------
个人感觉在页面加载完成前就已经销毁session了。不存在是在点击取消后才退出登录。
------解决方案--------------------
jsp页面中的<%%>里面的JAVA代码、在从服务器段响应给客户端的时候就已经执行了!!!
你要销毁session的话可以换一个页面!!!
var close = window.confirm('退出系统?');
if(close){
    window.location.href="logout.jsp——退出页面";
}

logout.jsp——退出页面代码:
session.invalidate();
out.print("<script>window.location='你退出是想要跳转的页面地址';</script>");

------解决方案--------------------
你要搞清楚,session是服务器端的东西,<% %>中的代码都是在服务器端执行,而JS代码是在客户端执行的。就你的代码,即使没有onload="exit();"这句,Session照样销毁,就是你在看到页面的时候,实际上那个销毁代码已经执行完毕!