request.getSession()。setAttribute()有什么问题

时间:2009-08-04 06:56:08

标签: jsp

我用来在*.java*.jsp之间传递数据,因为这是一个MVC框架,它首先由*.java传递。所以我使用request.getSession().setAttribute("test", "01010101010")保存了值,然后在*.jsp中使用request.getSession().getAttribute("test")来获取值。 但它总是返回一个奇怪的字符串"682342348"

4 个答案:

答案 0 :(得分:2)

这可能是一个javascript问题,请尝试在alert参数的值周围添加引号。

改变这个:

<script>alert(<%=request.getAttribute("test")%>);</script>

对此:

<script>alert('<%=request.getAttribute("test")%>');</script>

答案 1 :(得分:1)

尝试将值从会话中删除时,尝试将值转换为字符串:

String.valueOf(request.getSession().getAttribute("test"));

答案 2 :(得分:0)

您的java类和JSP可能以某种方式获得不同的会话对象。您可以尝试比较从session.getId()获得的值,以确保它们是相同的。

但是,如果您要做的只是将对象从java类传递给JSP,那么您可能根本不需要使用会话。而是将数据存储为请求属性:

request.setAttribute("test", "01010101010")

答案 3 :(得分:0)

request.getSession() - 如果不存在,这将创建一个新会话。如果您想确保如果会话不存在,则需要使用request.getSession(false)