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