【问题标题】:How to store JavaScript variable value in JSP session [duplicate]如何在 JSP 会话中存储 JavaScript 变量值 [重复]
【发布时间】:2011-07-31 12:39:32
【问题描述】:

我想在 JSP 会话中存储一个 JavaScript 变量值,以便在我的 Java 类方法中进一步使用它。请提供在 JSP 会话中存储任何 JavaScript 变量的解决方案。

【问题讨论】:

    标签: java javascript jsp servlets jakarta-ee


    【解决方案1】:

    你的程序应该有一个自然的流程,这样你就不必为了存储变量而专门存储变量的机制。我的意思是,如果您要存储用户名,则应该在登录时进行,或者如果您正在获取contactInfo,那么您应该有一个专门用于该目的的servlet。无论如何,这里是您问题的三个部分的答案。它非常笼统且不具体,但一旦充实就会完成您想要的:

    这是 web.xml 文件:

        <servlet>
            <servlet-name>StoreVariableServlet</servlet-name>
            <servlet-class>tests.servlets.StoreVariableServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>StoreVariableServlet</servlet-name>
            <url-pattern>/storeVariableServlet</url-pattern>
        </servlet-mapping>
    

    这里是 jQuery 代码:

        $.ajax({
            type: "POST",
            url: "/storeVariableServlet",
            data: ({
                variable : $(variableName).val()
            }),
            success: function(){
                alert("Success");
            }
        });
    

    这是 Servlet 代码:

        String variableToBeStored = request.getParameter("variable");
        HttpSession session = request.getSession();
        session.setAttribute("variableXYZ", variableToBeStored);
    

    【讨论】:

      【解决方案2】:

      您最好的选择是将值存储在 cookie 中。客户端javascript和服务器端jsp都可以访问cookies。

      【讨论】:

        【解决方案3】:

        使用 ajax 将该变量传递给 Servlet 或将其设置在某个隐藏字段中,当表单将被提交时,它也会被 POST。

        【讨论】:

          【解决方案4】:

          从您的 JSP 向执行此操作的其他 JSP 进行 AJAX 调用。 jsp 将变量名称及其值作为请求参数,并将变量放入会话中。

          您不能仅使用客户端 (javascript) 代码执行此操作!

          【讨论】:

          • “您不能仅使用客户端 (javascript) 代码执行此操作!”但你可以使用sessionStoragelocalStorage
          • 这些不是 HTML 5 特性吗?也许你可以使用它们,但我希望有一个后备机制,以防我的浏览器不支持它们......
          • 您可以回退到 IE7 和旧版浏览器的 cookie。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-06
          • 1970-01-01
          • 2013-08-06
          • 2020-03-12
          • 1970-01-01
          相关资源
          最近更新 更多