如何在JSP会话中存储JavaScript变量值

时间:2011-04-07 09:16:24

标签: java javascript jsp servlets java-ee

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

从JSP到另一个执行该操作的JSP进行AJAX调用。 jsp将变量名称及其值作为请求参数,并将变量放入会话中。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

程序应该有一个自然流程,因此您不必为了存储变量而专门存储变量的机制。我的意思是,如果你要存储一个userName,它应该是在登录时,或者如果你正在获取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);