【发布时间】:2012-06-24 13:48:33
【问题描述】:
如何使用 javascript 更改 java 变量的值?
假设我在 java servlet 中声明了一个变量,例如 int x=0;
所以现在我想在 servlet 上的任何按钮的 onclick 事件上将其值更改为 1 我该怎么做?
谢谢
【问题讨论】:
标签: java javascript html servlets
如何使用 javascript 更改 java 变量的值?
假设我在 java servlet 中声明了一个变量,例如 int x=0;
所以现在我想在 servlet 上的任何按钮的 onclick 事件上将其值更改为 1 我该怎么做?
谢谢
【问题讨论】:
标签: java javascript html servlets
注意!您不应该在 servlet 内部保存状态,因为它可能被多个线程(多个用户)使用。此类值应存储在 Session 对象中,或存储在某些后端 - 例如数据库中。
现在回到您的问题:您的浏览器 JavaScript 代码不能直接对服务器上执行的 Java 代码进行操作。但是,您可以将click 事件处理程序绑定到您的按钮,并对您的servlet 执行AJAX 调用以增加该值。请参阅this answer 以获取有关如何使用 JQuery 执行此操作的示例。
【讨论】:
您不能使用 javascript 更改 java 变量,尽管您可以反过来做。 Javascript是客户端,jsp页面中的java代码在服务器端执行
【讨论】:
无法从 javascript 更改 java 变量的值。
但是通过java代码我们可以改变java脚本变量的值。
【讨论】:
不,如果不向服务器发送请求,您就无法做到这一点,如果您准备好发送请求,那么您可以在 <input> 值中分配变量值并将其发送到请求中,或者使用 Ajax 通过 javascript 执行此操作。
【讨论】:
JavaScript在客户端执行,Servlets写在Java在服务器端执行。
两者都是不同的环境。如果你想从JavaScript改变服务器端对象的状态,你应该通过AJAX来做。
问题:假设我在 java servlet 中声明了一个变量,例如 int x=0;所以现在我想在 servlet 上的任何按钮的 onclick 事件上将其值更改为 1 我该怎么做?
答案: Servlet 中不应该有变量。因为Servlets are not Thread Safe. 我想你只是想改变客户端的状态,可能存储为会话。
【讨论】:
您不能直接使用 javascript 更改 java 变量的值。你可以做什么首先通过放置隐藏文件或将其传递给url来获取请求参数中的javascript变量,然后使用`rwquest.getParameter("field")获取值。
Javascript runs on client browser so you can't get it directly.
【讨论】:
我不明白为什么每个人都说你不能这样做。
当然可以。我已经多次使用 JavaScript 中的远程 API 从 javascript 调用 java 方法。例如,如果使用 Seam,您可以这样做:http://docs.jboss.com/seam/latest/reference/en-US/html/remoting.html
在这里,OP 必须找出他想要使用的框架,或者最适合 OP 的远程技术
例如,您调用一个以 int 作为参数的 java 方法,并将值应用于变量。
【讨论】: