session.getAttribute没有返回正确的值

时间:2012-09-11 13:11:51

标签: java

在我的一个应用程序中,我在会话中设置了一个变量(String)。详细代码如下所示。我的一个servlet。

HttpSession session = request.getSession();
String val1 = "http://abc.gmail.com/pp/hello.do?supplierId=894";
session.setAttribute("val1", val1);

现在我通过以下代码在一个jsp中检索了session属性的值。

<%
String val1 = (String) session.getAttribute("val1");
System.out.println("The value is-->>"+val1);
%>

但它只打印“http://abc.gmail.com/pp/hello.do?supplierId”

你能帮我修一下这个错误。我期待o / p “http://abc.gmail.com/pp/hello.do?supplierId=894”

谢谢, Sourav

2 个答案:

答案 0 :(得分:1)

有两个可能的原因:

  1. 代码中的其他位置,值被覆盖
  2. 发布示例时剥离了太多代码。
  3. 要找出哪个,你可以:

    1. System.out.println()之后立即添加session.setAttribute(),以查看实际投放到会话中的值。
    2. 创建一个过滤器,在每个请求之前和之后打印该值。这将帮助您缩小修改范围。
    3. session.setAttribute()的实现中设置断点。当设置了数千个属性时,可能不可行。

答案 1 :(得分:0)

我认为你有=

的问题

尝试以下

  1. 在base64中转换字符串,将其放入会话
  2. 从会话中获取字符串,将base64转换为普通
  3. 我应该工作