如何在函数javascript中调用方法java servlet?

时间:2013-10-28 10:32:27

标签: java javascript servlets

function ShowMessage() {
    var url = '/primes/PrimesServlet';
    var result = CQ.HTTP.eval(url);
    var i = Number(document.getElementById("input").value);
    var str = document.getElementById("test");
    // if(result.checkPrimes(i)) // Want to call here
    str.innerHTML = i + " là số nguyên tố";
    // else str.innerHTML = i + " là hợp số";
    document.getElementById("output").style.display="block";
}

public class PrimesServlet extends HttpServlet {
    public boolean checkPrimes(long n) {
        boolean _return;
        MillerRabin obj = new MillerRabin();
        _return = obj.checkPrimes(n);
        return _return;
    }
 }

我想从我的函数checkPrimes(long n)调用方法ShowMessage(),但我不能。

4 个答案:

答案 0 :(得分:2)

  

我想从函数javascript“ShowMessage()”调用方法checkPrimes(long n),但我不能。

是的,你不能。

Java在服务器端播放,javascript在客户端播放。

Java需要编译代码,而Javascript只是浏览器解释的脚本语言。

您需要的只是向服务器发出请求。

该请求可能是

  1. 表单提交

  2. 的Ajax

  3. 除了使用javascript之外,您还可以查看Prime。

    function isPrime1(n) {
        if (isNaN(n) || !isFinite(n) || n%1 || n<2) return false; 
        var m=Math.sqrt(n);
        for (var i=2;i<=m;i++) if (n%i==0) return false;
        return true;
    }
    

    Just found here.

    如果您想使用JavaScript发出请求,Ajax就是您的朋友。

    一个很好的例子:How to use Servlets and Ajax?

答案 1 :(得分:0)

你无法使用javascript调用方法,因为javascript在客户端运行而javacodes位于服务器端。

调用方法checkPrimes,您可以使用ajax。

答案 2 :(得分:0)

您可以使用AJAX-Calls或编写控制器,并通过JavaScript的请求调用它。

问题是(正如其他人所说),javascript在客户端的浏览器中运行,而你的businesslogic在网络服务器上运行。

使用AJAX,您可以触发服务器执行代码。

答案 3 :(得分:0)

你不能这样打电话。您应该对doGetdoPost方法执行操作,而不是编写结果on PrintWriter.write方法。

public class PrimesServlet extends HttpServlet {

 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                           throws ServletException, IOException{
 boolean _return;
 MillerRabin obj = new MillerRabin();
 _return = obj.checkPrimes(n);
 resp.getWriter().write(_return);

 }
}