【问题标题】:Change value of java variable using javascript?使用javascript更改java变量的值?
【发布时间】:2012-06-24 13:48:33
【问题描述】:

如何使用 javascript 更改 java 变量的值?

假设我在 java servlet 中声明了一个变量,例如 int x=0; 所以现在我想在 servlet 上的任何按钮的 onclick 事件上将其值更改为 1 我该怎么做?

谢谢

【问题讨论】:

    标签: java javascript html servlets


    【解决方案1】:

    注意!您不应该在 servlet 内部保存状态,因为它可能被多个线程(多个用户)使用。此类值应存储在 Session 对象中,或存储在某些后端 - 例如数据库中。

    现在回到您的问题:您的浏览器 JavaScript 代码不能直接对服务器上执行的 Java 代码进行操作。但是,您可以将click 事件处理程序绑定到您的按钮,并对您的servlet 执行AJAX 调用以增加该值。请参阅this answer 以获取有关如何使用 JQuery 执行此操作的示例。

    【讨论】:

      【解决方案2】:

      您不能使用 javascript 更改 java 变量,尽管您可以反过来做。 Javascript是客户端,jsp页面中的java代码在服务器端执行

      【讨论】:

        【解决方案3】:

        无法从 javascript 更改 java 变量的值。

        但是通过java代码我们可以改变java脚本变量的值。

        【讨论】:

          【解决方案4】:

          不,如果不向服务器发送请求,您就无法做到这一点,如果您准备好发送请求,那么您可以在 <input> 值中分配变量值并将其发送到请求中,或者使用 Ajax 通过 javascript 执行此操作。

          【讨论】:

            【解决方案5】:

            JavaScript在客户端执行,Servlets写在Java在服务器端执行。

            两者都是不同的环境。如果你想从JavaScript改变服务器端对象的状态,你应该通过AJAX来做。

            问题:假设我在 java servlet 中声明了一个变量,例如 int x=0;所以现在我想在 servlet 上的任何按钮的 onclick 事件上将其值更改为 1 我该怎么做?

            答案: Servlet 中不应该有变量。因为Servlets are not Thread Safe. 我想你只是想改变客户端的状态,可能存储为会话。

            【讨论】:

              【解决方案6】:

              您不能直接使用 javascript 更改 java 变量的值。你可以做什么首先通过放置隐藏文件或将其传递给url来获取请求参数中的javascript变量,然后使用`rwquest.getParameter("field")获取值。

              Javascript runs on client browser so you can't get it directly.

              【讨论】:

                【解决方案7】:

                我不明白为什么每个人都说你不能这样做。

                当然可以。我已经多次使用 JavaScript 中的远程 API 从 javascript 调用 java 方法。例如,如果使用 Seam,您可以这样做:http://docs.jboss.com/seam/latest/reference/en-US/html/remoting.html

                在这里,OP 必须找出他想要使用的框架,或者最适合 OP 的远程技术

                例如,您调用一个以 int 作为参数的 java 方法,并将值应用于变量。

                【讨论】:

                • 也许我误解了这个问题。
                • 远程 API 将在内部进行服务器调用。
                • 是的,而且? OP 从未说过他不能拨打服务器电话
                猜你喜欢
                • 2012-09-17
                • 2018-08-24
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-10-29
                • 2014-02-17
                • 2017-08-28
                相关资源
                最近更新 更多