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()
,但我不能。
答案 0 :(得分:2)
我想从函数javascript“ShowMessage()”调用方法checkPrimes(long n),但我不能。
是的,你不能。
Java在服务器端播放,javascript在客户端播放。
Java需要编译代码,而Javascript只是浏览器解释的脚本语言。
您需要的只是向服务器发出请求。
该请求可能是
表单提交
的Ajax
除了使用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;
}
如果您想使用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)
你不能这样打电话。您应该对doGet
或doPost
方法执行操作,而不是编写结果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);
}
}