创建自己的JerseyWebService
POST 实现
version : jersey-quickstart-webapp 2.23
run on server :
地址栏
http://localhost:8080/myJerseyTest/
显示index欢迎页面
测试:
地址栏输入web.xml配置的url-pattern/Path
http://localhost:8080/myJerseyTest/webapi/myresource
显示Got it!
项目创建成功!
【部分代码】
*rest.html
模拟用户登录表单
<form action="/webapi/userlogin/service" name="loginForm" id="loginForm">
用户名:<input type="text" name="username" id="username" value=""/> <br/>
密码:<input type="text" name="password" id="password" value=""/> <br/>
<input type="button" value="提交" onclick="doLogin()" />
</form>
<div id="idResult">
这里显示结果
</div>
向用户登录服务http://localhost:8080/myJerseyTest/webapi/userlogin/postuser发送数据,并输出结果(显示内容取决于POST请求所返回的内容)
<script type="text/javascript">
function doLogin(){
$.post("http://localhost:8080/myJerseyTest/webapi/userlogin/postuser",{
username:$("#username").val(),
password:$("#password").val()
}, function(data) {
alert("Data Posted: " + data);
$("#idResult").html(data);
});
}
</script>
提供用户登录服务的类UserLoginRest(部分代码)
URL:http://localhost:8080/myJerseyTest/webapi/userlogin/postuser
@Path("userlogin")
public class UserLoginRest implements IRestService {
@POST
@Path("/postuser")
@Produces("text/plain")
public String postTest(@FormParam("username") String username,
@FormParam("password") String password) {
String user = "username="+username +"; password="+password;
return user;
}
}
TIP
Jersey注解
https://docs.oracle.com/cd/E19776-01/820-4867/ggnyk/index.html
http://blog.csdn.net/qq383264679/article/details/50847295
HTTP Method
Operations Performed
GET
Get a resource
POST
Create a resource and other operations, as it has no defined semantics
PUT
Create or update a resource
DELETE
Delete a resource
http://blog.csdn.net/yehangdx/article/details/7561338?locationNum=8&fps=1
Bean注解说明
1.@Path
路径信息,表示映射出去的访问路径。
范例如下:@Path("/myResource")
2. @Produces
用于限制post和get方法返回的参数类型,支持json、string、xml、html
范例如下:@Produces({"application/xml", "application/json"})
3. @Consumes
用于限制输入的参数的类型,支持json、string、xml、html
范例如下:@Consumes("text/plain")
4. @QueryParam
通过request传入的参数,可以转换任何有以String为参数的构造函数的类。
5.@DefaultValue
@DefaultValue表示默认参数。
范例如下:@DefaultValue("2") @QueryParam("step") int step,
5. @PathParam
@ MatrixParam,@ HeaderParam,@ CookieParam和@ QueryParam FormParam听从以相同的规则。
@ MatrixParam提取URL路径段的信息。 @ HeaderParam提取的HTTP头信息。 @ CookieParam提取信息的Cookie饼干宣布相关的HTTP标头。
@ FormParam略有特殊,因为它提取请求表示,该类型匹配前面的@Consumes所声明的类型。
范例如下:
@POST
@Consumes("application/x-www-form-urlencoded")
public void post(@FormParam("name") String name) {
6.pojo层面等相关注解,@XmlRootElement,支持JPA注解。
7.Spring相关注解,比如@Autowired(required=true) 、@Qualifier("persionDao")、@Component
@Scope("request")
jQuery ajax - post() 方法 用法详解
http://www.w3school.com.cn/jquery/ajax_post.asp
例子 1
请求 test.php 页面,并一起发送一些额外的数据(同时仍然忽略返回值):
$.post("test.php", { name: "John", time: "2pm" } );
例子 2
向服务器传递数据数组(同时仍然忽略返回值):
$.post("test.php", { 'choices[]': ["Jon", "Susan"] });
例子 3
使用 ajax 请求发送表单数据:
$.post("test.php", $("#testform").serialize());
例子 4
输出来自请求页面 test.php 的结果(HTML 或 XML,取决于所返回的内容):
$.post("test.php", function(data){
alert("Data Loaded: " + data);
});
例子 5
向页面 test.php 发送数据,并输出结果(HTML 或 XML,取决于所返回的内容):
$.post("test.php", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
例子 6
获得 test.php 页面的内容,并存储为 XMLHttpResponse 对象,并通过 process() 这个 JavaScript 函数进行处理:
$.post("test.php", { name: "John", time: "2pm" },
function(data){
process(data);
}, "xml");
例子 7
获得 test.php 页面返回的 json 格式的内容:
$.post("test.php", { "func": "getNameAndTime" },
function(data){
alert(data.name); // John
console.log(data.time); // 2pm
}, "json");
测试:
-输入http://localhost:8080/myJerseyTest,进入欢迎页面,点击进入POST测试
-跳转至POST测试页面http://localhost:8080/myJerseyTest/rest1.html
输入用户名密码
-点击提交按钮,POST数据到指定URL:http://localhost:8080/myJerseyTest/webapi/userlogin/postuser,页面显示返回的响应数据内容:用户所填用户名和密码