JSP - 如何在session.setAttribute中传递javascript var?

时间:2015-10-01 10:10:00

标签: javascript java jsp session

学习JSP的新手,并尝试在两个页面之间传递数据。

我想知道是否可以将javascript变量传递给session.setAttribute()

目前,我可以通过2个jsp文件传递一串文本,如下所示:

JSP1:

<% String text = "hello";
session.setAttribute("test", text);%>

JSP2:

var someText = "<%=session.getAttribute("test")%>"

工作正常。

但是,是否可以通过var转换为session.setAttribute?我将一些数据存储在javascript变量中,并希望将其发送到第二个JSP文件。

例如:

var number = 7;
<%session.setAttribute("test", number);%>

我已经尝试过了,我收到错误&#34;号码无法解析为变量&#34;

谢谢!

1 个答案:

答案 0 :(得分:7)

你不能这样做,因为javascript在客户端&amp; JSP在服务器端执行。

如果要将javascript变量设置为JSP会话,则可以通过URL传递此变量,如此

Context

现在在JSP页面中收到此var

var number = 7;
window.location="http://example.com/index.jsp?param="+number;

现在将其设置为会话

String var = request.getParameter("param");

编辑:

session.setAttribute("test", var);

在上面的代码中,服务器只会执行&lt; %%&gt;内的代码。它不知道JSP标记之外的任何内容。因此,它也不会知道您的javascript变量var number = 7; <%session.setAttribute("test", number);%>

服务器执行代码&amp;结果将发送到浏览器,然后您的浏览器将执行该javascript代码number

希望,现在很清楚。