JSP中在JS函式中巢狀Java程式碼的執行問題
阿新 • • 發佈:2018-12-30
function exitSystem()
{
var ok = confirm("您確定要退出該系統嗎?");
if(ok){
<%session.removeAttribute("user");%>
}
window.close();
}
問題:包含這個js的頁面,函式沒執行,但是session中的user被清除了。
分析: <%session.removeAttribute("user");%> 是在服務端執行的,而js是在瀏覽器端執行的。流程:訪問伺服器-》服務端執行Java程式碼,生成靜態內容-》返回給客戶端瀏覽器-》瀏覽器展示並執行js程式碼,也就是session清除user屬性的操作在服務端已經執行了,這才會導致明明登入了,session中卻沒有user的問題。
解決:
function exitSystem()
{
var ok = confirm("您確定要退出該系統嗎?");
if(ok){
location.href="${pageContext.request.contextPath}/removeUser";
}
window.close();
}
//在removeUser函式中清除session中user屬性