【发布时间】:2011-07-31 12:39:32
【问题描述】:
我想在 JSP 会话中存储一个 JavaScript 变量值,以便在我的 Java 类方法中进一步使用它。请提供在 JSP 会话中存储任何 JavaScript 变量的解决方案。
【问题讨论】:
标签: java javascript jsp servlets jakarta-ee
我想在 JSP 会话中存储一个 JavaScript 变量值,以便在我的 Java 类方法中进一步使用它。请提供在 JSP 会话中存储任何 JavaScript 变量的解决方案。
【问题讨论】:
标签: java javascript jsp servlets jakarta-ee
你的程序应该有一个自然的流程,这样你就不必为了存储变量而专门存储变量的机制。我的意思是,如果您要存储用户名,则应该在登录时进行,或者如果您正在获取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);
【讨论】:
您最好的选择是将值存储在 cookie 中。客户端javascript和服务器端jsp都可以访问cookies。
【讨论】:
使用 ajax 将该变量传递给 Servlet 或将其设置在某个隐藏字段中,当表单将被提交时,它也会被 POST。
【讨论】:
从您的 JSP 向执行此操作的其他 JSP 进行 AJAX 调用。 jsp 将变量名称及其值作为请求参数,并将变量放入会话中。
您不能仅使用客户端 (javascript) 代码执行此操作!
【讨论】:
sessionStorage 或localStorage。