请教一个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照样销毁,就是你在看到页面的时候,实际上那个销毁代码已经执行完毕!