有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java会话。getAttribute未返回正确的值

在我的一个应用程序中,我在会话中设置了一个变量(字符串)。下面是我的一个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"

谢谢, 苏拉夫


共 (2) 个答案

  1. # 1 楼答案

    这可能有两个原因:

    1. 在代码的其他地方,该值被覆盖
    2. 在发布示例时,您剥离了太多代码

    要找出哪个是哪个,您可以:

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

    我想你对

    试着跟随

    1. 转换base64中的字符串,将其放入会话
    2. 从会话中获取字符串,将base64转换为普通

    我应该工作