JAX-RSでRESTful webサービス構築してみる(AjaxでPOST)
JAX-RSでRESTful webサービス構築してみるで作成したプロジェクトにはindex.jspがあるとおもいます。
http://localhost:8080/sample-jax-rs/index.jspでアクセスできます。
このindex.jspファイルからAjaxでPOSTしてみたいと思います。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<script src="http://code.jquery.com/jquery.js"></script>
</head>
<body>
<button type="button" value="button" id="aaa" >button</button>
<div id="result"></div>
<script>
$("#aaa").click(function(){
$.ajax({
url:"restful/sample/tekitou-url",// 適当です
type:"POST",
dataType:"JSON",
data:{"key":"value"},
success : function(data) {
$("#result").append(data.key);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("エラー:" + textStatus +":\n" + errorThrown);
}
});
});
</script>
</body>
</html>
urlは適当に一意にしています。サーバ側で@Pathでマッピングすればそのメソッドが呼ばれます。
レスポンスのデータを、divタグに追加しています。
以下はPOSTでJSON形式を受信するメソッドです。面倒なのでべた書きしていますが、クライアントから送られたJSON形式のデータをJSONICで解析したりして、JSON形式で返します。
package com.confrage.jaxrs;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/sample")
public class SampleServlet{
@GET
public String aaaaa() {
return "wahaha";
}
@POST
@Path("/tekitou-url")
@Produces(MediaType.APPLICATION_JSON)
public String bbbbb(String json) {
String resJson = "{\"key\" : \"返信\"}";
return resJson;
}
}
mvnでビルドしてTomcatに再配置して再起動するとボタンの下に、「返信」って文字が出ます。これでサーバとのPOSTでの通信ができています。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント