【问题标题】:Reinitialize a session variable in java在java中重新初始化会话变量
【发布时间】:2014-06-06 06:39:58
【问题描述】:

当页面转到其他 servlet 时,我在登录时声明一个会话,我想更改值或会话 .. 它包含布尔类型变量,例如 true 或 false,但是当页面从 jsp 上的 servlet 返回时……我正在打印session 的值,因此它包含第一个 false ,它是登录时间的值,第二个是 true,它是第二个 serverlt

在登录 servlet 上,我正在创建可验证的会话

 session.setAttribute("check_insRow_button", false);

第二次

  session.setAttribute("check_insRow_button", true);

【问题讨论】:

  • 我不能很好地理解你的问题。
  • 我想在第二个 servlet 上更改 session 的值

标签: java jsp session servlets


【解决方案1】:

如果要在第二个servlet中设置check_insRow_button的值,可以直接获取HttpSession对象并在调用时设置值。

因此,在您的第一个 servlet 中,在您的 doGetdoPost 方法中,具体取决于您调用的内容。

HttpSession session = request.getSession();
session.setAttribute("check_insRow_button",true);

当你从这里导航到另一个 servlet 时,同样的事情

HttpSession session = request.getSession();
session.setAttribute("check_insRow_button",true);

【讨论】:

    【解决方案2】:

    您可以先删除该属性并再次创建它,而不是重新初始化会话变量:

    session.removeAttribute("check_insRow_button");
    session.setAttribute("check_insRow_button", true);
    

    【讨论】:

    • 通过 session.getAttribute() 方法检查该属性是否为空。如果它为空,那么它很好;您可以创建新的会话属性。但如果它不为空,则先删除该属性,然后再次创建它。这应该有效。如果仍然无法正常工作,则错误在其他地方。
    • 第一次它包含 false .. 当我点击提交按钮和页面转到 servlet 时,我想更改 session 的值,但它同时显示 .. 一次又一次我也尝试这个bt 我得到了同样的结果
    猜你喜欢
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2016-12-21
    • 2010-09-24
    • 2014-04-15
    • 1970-01-01
    相关资源
    最近更新 更多