0
我想在JavaScript检测到会话对象发生变化时使用javascript来做某件事。但是,在调用UpdateServlet之后,javascript并未检测到会话对象中的更改。所有这些都是在同一页面上完成的(即没有刷新的页面)使用Javascript刷新Java会话对象
请帮忙!谢谢。
的index.jsp
<%
//initial settings
session.setAttribute("dataUpdated", "false");
%>
<script>
$(function() {
var updates = '<%=session.getAttribute("dataUpdated")%>';
alert(updates);
//Shows false even after update
if (updates=="true"){
//alert("Updated");
}
});
</script>
UpdateServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
session.setAttribute("dataUpdated", "true");
//session object set to true
}
这就是对的!谢谢!现在,我还有一个问题,我需要在成功函数后将会话对象重置为false。我怎么做? 我试过如果 (objectChanged){<%= session.setAttribute(“dataUpdated”,“true”)%>} 但它不起作用。我必须再次使用AJAX吗? – newtodatatables
是的,你会再次需要ajax,但最好是在同一个ajax调用中重置服务器上的会话对象,所以你可以将逻辑'if(objectChanged)...'移动到服务器。 –
哦,你是对的。最好重置servlet端的对象。谢谢你的提示。 – newtodatatables