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

Tom*_*Tom 1 javascript java session jsp

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

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

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

JSP1:

<% String text = "hello";
session.setAttribute("test", text);%>
Run Code Online (Sandbox Code Playgroud)

JSP2:

var someText = "<%=session.getAttribute("test")%>"
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.

但是,是否有可能通过一个var进入session.setAttribute而不是?我将一些数据存储在javascript变量中,并希望将其发送到第二个JSP文件.

例如:

var number = 7;
<%session.setAttribute("test", number);%>
Run Code Online (Sandbox Code Playgroud)

我试过这个,我得到错误"数字无法解析为变量"

谢谢!

Har*_*ava 9

你不能这样做,因为javascript在客户端执行并且JSP在服务器端执行.

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

var number = 7;
window.location="http://example.com/index.jsp?param="+number;
Run Code Online (Sandbox Code Playgroud)

现在在这样的JSP页面中接收这个var

String var = request.getParameter("param");
Run Code Online (Sandbox Code Playgroud)

现在将其设置为会话

session.setAttribute("test", var);
Run Code Online (Sandbox Code Playgroud)

编辑:

var number = 7;
<%session.setAttribute("test", number);%>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,服务器只会执行<%%>中的代码.它不知道JSP标记之外的任何内容.所以,它也不会知道你的javascript变量number.

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

希望,现在对你来说很清楚.