如何在本地主机服务器上使用javascript ajax调用java类函数
我得到了这样的东西:如何在本地主机服务器上使用javascript ajax调用java类函数,javascript,java,ajax,function,server,Javascript,Java,Ajax,Function,Server,我得到了这样的东西: package beans; import javax.ejb.Stateless; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("cc") @Stateless public class CardBean impleme
package beans;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("cc")
@Stateless
public class CardBean implements ICardRemote {
@Produces(MediaType.APPLICATION_JSON)
@Path("validate/{creditCard}")
@GET
@Override
public boolean Validate(@PathParam("creditCard")String creditCard){
int sum = 0;
boolean alternate = false;
for (int i = creditCard.length() - 1; i >= 0; i--)
{
int n = Integer.parseInt(creditCard.substring(i, i + 1));
if (alternate)
{
n *= 2;
if (n > 9)
{
n = (n % 10) + 1;
}
}
sum += n;
alternate = !alternate;
}
return (sum % 10 == 0); //or true or false
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="code.jquery.com/jquery-3.1.1.min.js"; integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"> </script>
</head>
<body>
<a
href="http://localhost:8080/CreditCardWEB/rest/cc/validate/4111111111111111">Validan</a>
<br>
<a
href="http://localhost:8080/CreditCardWEB/rest/cc/validate/4111111111111112">Nevalidan</a>
<br>
<br>
<input type="text" name="txtCC" value="4111111111111111" id="txtCC1">
<button name="btn" onclick="myFunction()">Click me!</button>
<br>
<br>
<p id="res">Result: </p>
<script>
function myFunction() {
// document.getElementById("res").innerHTML = "Result:" + txtCC1.value;
var str = txtCC1.value;
$.ajax({
type: 'GET',
url: './validate/'+str,
success: function(data) {
document.getElementById("res").innerHTML = "Result:" + data;
},
error: function(jqXHR, textStatus, errorThrown) {
//Do something on ERROR here
}
});
}
</script>
<br>
</body>
</html>
我得到了函数验证
现在我得到了一个HTML页面,看起来像这样:
package beans;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("cc")
@Stateless
public class CardBean implements ICardRemote {
@Produces(MediaType.APPLICATION_JSON)
@Path("validate/{creditCard}")
@GET
@Override
public boolean Validate(@PathParam("creditCard")String creditCard){
int sum = 0;
boolean alternate = false;
for (int i = creditCard.length() - 1; i >= 0; i--)
{
int n = Integer.parseInt(creditCard.substring(i, i + 1));
if (alternate)
{
n *= 2;
if (n > 9)
{
n = (n % 10) + 1;
}
}
sum += n;
alternate = !alternate;
}
return (sum % 10 == 0); //or true or false
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="code.jquery.com/jquery-3.1.1.min.js"; integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"> </script>
</head>
<body>
<a
href="http://localhost:8080/CreditCardWEB/rest/cc/validate/4111111111111111">Validan</a>
<br>
<a
href="http://localhost:8080/CreditCardWEB/rest/cc/validate/4111111111111112">Nevalidan</a>
<br>
<br>
<input type="text" name="txtCC" value="4111111111111111" id="txtCC1">
<button name="btn" onclick="myFunction()">Click me!</button>
<br>
<br>
<p id="res">Result: </p>
<script>
function myFunction() {
// document.getElementById("res").innerHTML = "Result:" + txtCC1.value;
var str = txtCC1.value;
$.ajax({
type: 'GET',
url: './validate/'+str,
success: function(data) {
document.getElementById("res").innerHTML = "Result:" + data;
},
error: function(jqXHR, textStatus, errorThrown) {
//Do something on ERROR here
}
});
}
</script>
<br>
</body>
</html>
在此处插入标题
点击我!
结果:
函数myFunction(){
//document.getElementById(“res”).innerHTML=“结果:”+txtCC1.value;
var str=txtCC1.0;
$.ajax({
键入:“GET”,
url:“./validate/”+str,
成功:函数(数据){
document.getElementById(“res”).innerHTML=“结果:”+数据;
},
错误:函数(jqXHR、textStatus、errorshown){
//在这里做一些错误的事情
}
});
}
最后,我有一个文本字段,里面有一个硬编码的数字
单击按钮,我需要获取该号码并将其发送到我的验证功能中
一旦函数完成,我需要把结果写在按钮下面…这里
<p id="res">Result: </p>
结果:
所以它必须类似于Result:true或Result:false您将在以下链接中找到问题的答案:
阅读有关使用javascript使用rest服务的更多信息(请确保包含jQuery库!):
这是正确的代码…thx到Mechkov
function myFunction() {
console.log($);
var str = txtCC1.value;
$.ajax({
type: 'GET',
url: 'http://localhost:8080/CreditCardWEB/rest/cc/validate/' +str,
success: function(data) {
document.getElementById("res").innerHTML = "Result: " + data;
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR +' : '+ textStatus +' : '+ errorThrown);
}
});
}
你打算使用javascript吗?由于代码完全可以用js-alonejavascript-ajax-jquery来完成,所以我可以使用jquery,但是,有人告诉我根据您的代码使用AJAXas。在这个过程中似乎不需要它。但是如果你真的喜欢它,那就随它去吧。。似乎您要从另一页获得验证。你可以这样做。创建一个页面,然后使用jqueryajax/post/get创建一个请求。顺便说一句,jquery有一个内置的ajax函数。如果你想的话,你可以查看它的文档。我只是找不到解决我的具体问题的任何方法……但是没有http请求,有可能做到吗?这是不可能的,此方法只能由HTTP GET REQUESTMATE调用…但当我将其复制到代码中时…在这里键入在获得响应后执行操作…应该有一行document.getElementById(“res”).innerHTML=“Result:+data;做我希望做的,那就是键入结果:true…但它没有做任何事情--我不知道如何处理错误部分。。。?在同一行中,什么是数据?对,错?或411111…的字符串?错误部分是可选的。仅当您希望得到通知或对错误执行某些操作时。对于你的第一个问题,一旦你得到了数据(注意成功后你是如何得到函数(数据)),那么一旦你得到了“数据”,检查它是否是你需要设置为“真”的任何东西。你决定逻辑是什么,结果是真是假,基于你的控制器逻辑(它返回一个布尔值),我这样做。。。函数myFunction(){//document.getElementById(“res”).innerHTML=“结果:”+txtCC1.value;var str=txtCC1.value;$.ajax({type:'GET',url:'./Validate/'+str,success:function(data){document.getElementById(“res”).innerHTML=“结果:”+data;},error:function(jqXHR,textStatus,errorThrown){//Do-on-error-here}}};}