写了一个退出系统的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>

解决方案 »

  1.   

     history.go(-1)改为
     history.back(-1);
      

  2.   

    个人感觉在页面加载完成前就已经销毁session了。不存在是在点击取消后才退出登录。
      

  3.   

    jsp页面中的<%%>里面的JAVA代码、在从服务器段响应给客户端的时候就已经执行了!!!
    你要销毁session的话可以换一个页面!!!
    var close = window.confirm('退出系统?');
    if(close){
        window.location.href="logout.jsp——退出页面";
    }
    logout.jsp——退出页面代码:
    session.invalidate();
    out.print("<script>window.location='你退出是想要跳转的页面地址';</script>");
      

  4.   

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

  5.   

    感谢hzw2312!感谢大家,做一个JSP的项目,边学边干,有许多不清楚的地方。
    按照hzw2312方法问题解决了。
    感谢大家。
    结贴给分。