Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java session.getAttribute未返回正确的值_Java - Fatal编程技术网

Java session.getAttribute未返回正确的值

Java session.getAttribute未返回正确的值,java,Java,在我的一个应用程序中,我在会话中设置了一个变量(字符串)。下面是我的一个servlet中的详细代码 HttpSession session = request.getSession(); String val1 = "http://abc.gmail.com/pp/hello.do?supplierId=894"; session.setAttribute("val1", val1); 现在,我通过下面的代码在一个jsp中检索会话属性的值 <% String val1 = (String

在我的一个应用程序中,我在会话中设置了一个变量(字符串)。下面是我的一个servlet中的详细代码

HttpSession session = request.getSession();
String val1 = "http://abc.gmail.com/pp/hello.do?supplierId=894";
session.setAttribute("val1", val1);
现在,我通过下面的代码在一个jsp中检索会话属性的值

<%
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"

谢谢,
苏拉夫

我想你对

试着跟随

  • 转换base64中的字符串,将其置于会话中
  • 从会话获取字符串,将base64转换为普通

  • 我应该工作有两个可能的原因:

  • 在代码的其他地方,该值被覆盖
  • 在发布示例时,您剥离了太多的代码
  • 要找出哪个是哪个,您可以:

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

  • 是否可以检查对会话对象的任何其他调用是否会更改其值?您可以调试和跟踪您的调用。@Sourav Bag您的代码的第一部分来自Servlet文件。??这段代码一切正常。我认为问题在于值正在重置或会话正在关闭。-1 web容器不会随意修改会话中保存的字符串值。没有理由对字符串值进行编码,因为它从未通过HTTP传递。是..问题似乎出在=。现在,我在jsp中添加了以下编码。但我还没有测试它。测试完成后会通知您。当然,谢谢您的回复。我会等待你的答复