【问题标题】:Cannot clear session using javascript in jsp无法在 jsp 中使用 javascript 清除会话
【发布时间】:2016-01-18 21:44:43
【问题描述】:

使用 servlet 从 login.jsp 页面创建会话

String msg = "";
        HttpSession sess = request.getSession();
       // if(sess != null)

        //sess.invalidate();
        if (sess.getId() != null) {
            sess.setAttribute("uname", uname);
            sess.setAttribute("pwd", pwd);
        }

使用其他jsp页面检索会话

<b> Welcome ${uname}</b>

注销超链接

<a href="login_ml.jsp" id="logout_link" onclick='lgt()'>Logout</a></td>   

javascript 清除会话

function lgt(){
                var logout = document.getElementById("logout_link");
                logout.session.clear();
                alert("logout");
                }

【问题讨论】:

  • 使用 sess.invalidate();
  • 但 javascript 在其他 .js 文件中。
  • 您的客户端需要发出服务器请求以使服务器端的会话无效。
  • Javascript 只获取 HTML 中 id 为 logout_linka 元素。为什么您希望 a 元素具有 session 属性?
  • 你能举一个例子吗?如何做到这一点?

标签: javascript java jsp session servlets


【解决方案1】:

我们不能直接从 JS 代码中清除会话。您必须调用另一个 JSP 页面将使该会话无效:

Javascript 函数:

 function destroySession() {
        window.location = "killSession.jsp";
   }

killSession.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Log out</title>
</head>
<body>
<%
session.invalidate();
%>
User has been Logged out sucessfully!!!!
</body>
</html>

【讨论】:

  • 我刚刚使用 Logout 调用了该 javascript,但它不起作用
  • 它是在调用 JPS 页面吗?你用 JSP 写的内容/
  • 注销 这是我用jsp写的链接。
  • 没有。我说的是killSession.jspxmlhttp.open("GET","killSession.jsp",false);
  • 嘿,@Rehman 我知道了。我尝试使用“page1.jsp1”,这是我使用 ${uname} 调用会话的 jsp 页面的名称。
猜你喜欢
  • 1970-01-01
  • 2012-12-14
  • 2015-06-29
  • 1970-01-01
  • 2014-09-15
  • 2014-05-28
  • 2012-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多