我保存了一些会话属性。我有一个jsp页面,通过它调用servlet。这个servlet更新了一个会话变量,但我无法在jsp.Pls帮助中看到这些变化的反映。
在我的servlet中
List<DriverList> abc = dao.getABC();
request.getSession().removeAttribute("abc");
request.getSession().setAttribute("abc", abc);
在我的jsp中
function update()
{
var url = "updateServlet";
var req = $.ajax({
type: 'GET',
url: url,
cache: false,
type: "GET",
success: function()
{
latlng = [];
latlng = [<c:forEach var="test" items="${abc}">
[<c:out value="${test.latitude}"/>,<c:out value="${test.longitude}"/>,"<c:out value= "${test.name}" />",<c:out value="${test.cellNo}"/>],
</c:forEach> ];
},
error: function (status) {
}
});
}
${abc}
的值与之前相同。如何获得新价值?
确切的流程 -
当调用登录servlet abc
时,设置sessionAttribute
的值。
现在重定向到base.jsp。我第一次使用abc。现在每30秒后调用一次update()
函数。此更新函数通过ajax调用servlet,其中会话属性abc已更新。
在ajax请求的成功函数中,我想使用这个新的abc值但是再次获取旧的值。
答案 0 :(得分:3)
要访问JSP中的abc
变量,请尝试:
${sessionScope.abc}
另请注意,在设置之前删除通常是多余的。所以:
request.getSession().removeAttribute("abc");
request.getSession().setAttribute("abc", abc);
可以简单地成为:
request.getSession().setAttribute("abc", abc);
答案 1 :(得分:0)
我有类似的问题。 事实证明,当你使用
HttpSession
控制器中的对象,不应使用
进行注释@SessionAttributes