在JSP中将JavaScript变量分配给Java变量

在JSP中将JavaScript变量分配给Java变量,java,javascript,jsp,variables,Java,Javascript,Jsp,Variables,好了 我试图将javascript变量的值赋给java变量。但我不知道怎么做?比如说,我有: <html> <head> <script type="text/javascript"> function return variable(){ var a = "hello"; return a; } </script> </head> <body>

好了

我试图将javascript变量的值赋给java变量。但我不知道怎么做?比如说,我有:

<html>
<head>
   <script type="text/javascript">
       function return variable(){
          var a = "hello";
          return a;
       }
   </script>
</head>
<body>

<%
   //The java code
   String b = //how do I get that javascript variable here?
%>

</body>
</html>

函数返回变量(){
var a=“你好”;
返回a;
}

我认为没有办法做到这一点,除非您在URL上传递JavaScript变量的值,但这是一个丑陋的解决方法。

Java脚本在浏览器上播放,Java代码是服务器端的东西,所以您不能简单地这样做

您可以通过表单提交,或者使用URL参数,或者使用AJAX调用,将计算出的变量从javascript提交到服务器,然后在服务器上使其可用

HTML

<input type="hidden" id="hiddenField"/>

在服务器上,您可以将此作为
请求的一部分来获取

您需要阅读一些关于JSP生命周期的内容。试试这个:

JavaScript在客户机上运行,但为了更改jsp,您需要访问服务器。这可以通过Ajax实现(http://en.wikipedia.org/wiki/Ajax_%28programming%29)

以下是一些与Ajax相关的链接:


你做不到。。因为jsp被编译并转换为html服务器端,而javascript在客户端执行。
您可以将该值设置为一个隐藏的html元素,并在请求中发送到servlet,以备将来使用,因为JavaScript是客户端,JSP是服务器端

所以Javascript在到达浏览器之前不会执行, 但是Java在服务器上执行。 因此,Java不知道JavaScript变量的值


但是,您可以将Java变量的值赋给JavaScript变量。

答案是您不能。Java(在您的例子中是JSP)是一种服务器端脚本语言,这意味着它是在所有javascript代码之前编译和执行的。您可以将javascript变量分配给JSP变量,但不能反过来分配。如果可能的话,您可以让变量出现在查询字符串中,或者通过表单(通过隐藏字段)传递它,通过JSP发布并提取变量。但这需要重新提交页面


希望这有帮助。

JavaScript在客户端启动,JSP在服务器端启动。所以我可以说这是不可能的。

如果您了解jsp是如何工作的,您就会知道在浏览器中呈现页面之前,java部分在服务器端执行。这意味着当任何javascript有机会执行时,它已经执行了。所以你需要重新思考你在这里要做什么。可能的重复:可能重复一个很老的问题,但是简单地说“你不能”的ppl都错了,是的,你可以,这取决于你的环境,也许我在使用jsp、jsp或其他什么,你为什么说“你不能”?有趣..嗯,我明白。。因为我想做的一切。它在JSP中有一个HTML表单,并通过onClick事件触发javascript方法,然后返回一个变量。然后这个变量就可以和表单的其他输入值一起发送。。。那么deff没有办法做到这一点吗?你可以在一些隐藏字段中设置它,然后通过表单提交发送它。类似这样的:?啊,太完美了,我可以做到,这样仍然可以解决我的问题。因此,我将在隐藏输入类型中设置如下值:?是的,你是对的,你必须在方法本身中设置此元素的值,并将该元素保留在表单中,以便在提交表单时将其添加到url中。
document.getElementById("hiddenField").value=yourCalculatedVariable;