小编典典

JSP-如何在session.setAttribute中传递JavaScript变量?

jsp

是学习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);%>

我已经尝试过了,但出现错误“数字无法解析为变量”

谢谢!


阅读 759

收藏
2020-06-08

共1个答案

小编典典

您无法执行此操作,因为javascript在客户端执行,而JSP在服务器端执行。

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

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

现在像这样在您的JSP页面中接收此var

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

现在在会话中进行设置

session.setAttribute("test", var);

编辑:

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

在上面的代码中,服务器将仅在<%%>内部执行代码。它不知道JSP标记之外的任何内容。因此,它也不知道您的javascript变量number

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

希望,现在对您来说很清楚。

2020-06-08