[JavaWEB]Rest学习记录——Jersey学习(2)

创建自己的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,页面显示返回的响应数据内容:用户所填用户名和密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值