0

我在 doGet() 中设置了一个会话变量,例如

HttpSession session = request.getSession(true);
session.setAttribute("MySessionVariable", "String goes here");

我正在尝试在我的 JSP 页面中显示它,就像

<%= session.getAttribute("MySessionVariable")%> 

我正在准备好调用servlet

<Script>
        $(document).ready(function() {
            $.ajax({
                type : "GET",
                url : "UserInfoDisplay"
            });
        });
</Script>

但我看到的是,该值第一次为空,当我再次刷新时,我得到了该值。那就是 ajax 调用 onReady 和页面加载并行发生。我应该如何解决这个问题?我希望数据出现在第一次加载本身上。

4

2 回答 2

0

嗯,不完全是这样。页面加载首先发生,当页面加载时,它调用 servlet。在浏览器获取任何 HTML 之前,您必须考虑在<%= session.getAttribute("MySessionVariable")%>服务器端执行的操作。然后,浏览器获得响应,您的脚本再次调用服务器并设置属性,但页面已经呈现。你必须以不同的方式做到这一点。你能解释一下你想达到什么目标吗?

于 2013-06-07T12:00:11.540 回答
0

如果您只是第一次需要它,那么为什么首先要进行 ajax 调用呢?Ajax 用于发送异步请求。如果我错了,请纠正我,更好的方法是将请求重定向到 servlet 并获得响应,不是吗?

于 2013-10-11T12:18:28.217 回答