Jersey搭建restFul形式接口

1、依赖

  <dependencies>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-servlet</artifactId>
      <version>1.19</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

2、web.xml

  <servlet>
    <servlet-name>servletContainer</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>com.strive.controller</param-value>    <!--扫描该包下的接口-->
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>servletContainer</servlet-name>
    <url-pattern>/rest/*</url-pattern>          <!--配置扫描的包所对应的路径-->
  </servlet-mapping>

3、接口编写

package com.strive.controller;


import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;

/**
 * 作者:程序猿-南巷清风
 * 博客地址:https://blog.csdn.net/weixin_42152604(关注一下下^_^)
 * QQ:1821119445  java开发的朋友们可以加(非诚勿扰好吧!)
 */
@Path("testRestFul")
public class RestFulInterface {
    @GET
    @Path("getPage1")
    public String getPage1(@Context HttpServletRequest request, @QueryParam("name") String name,@QueryParam("age") Integer age) {
        //@QueryParam的参数接收于:http://12313:8080/rest/testRestFul/getPage1?name=测试&age=18  这种问号后面带的get类型的参数
        //@Context的作用是解析一些上下文的参数,比如request和response这种
        System.out.println("这是一个get方法!");
        System.out.println(name+"======"+age);
        return "进入了getPage1方法";
    }
    @GET
    @Path("getPage2/{name}")
    public String getPage2(@PathParam("name") String name,@DefaultValue ("26") @QueryParam("age") Integer age) {
        //@PathParam的参数接收,必须是@Path中定义的位置,由此可见Post方式也适用
        System.out.println("这是一个get方法!");
        System.out.println(name+"======="+age);
        return "进入了getPage2方法";
    }
    @POST
    @Path("getPage3")
    @Produces("application/json")       //设置返回格式为json
    @Consumes("application/x-www-form-urlencoded")      //指定client发过来的数据是表单形式的才能访问
    public String getPage3(@FormParam("name") String name) {
        //@FormParam的参数接收的是POST表单类型的数据
        System.out.println("这是一个post方法!");
        System.out.println(name);
        return "{'return':'进入了getPage3方法'}";
    }
}

4、总结

@QueryParam的参数接收于:http://12313:8080/rest/testRestFul/getPage1?name=测试&age=18  这种问号后面带的get类型的参数@PathParam的参数接收,必须是@Path中定义的位置,由此可见Post方式也适用
@FormParam的参数接收的是POST表单类型的数据
@DefaultValue ("26")设置默认值
@Context的作用是解析一些上下文的参数,比如request和response这种
@GET定义GET访问
@POST定义POST访问
@Path("getPage3")定义访问路径
@Produces("application/json")定义返回数据格式
@Consumes("application/x-www-form-urlencoded")可接收参数数据格式 
posted @ 2019-03-13 14:51  柚子味儿的西瓜  阅读(30)  评论(0)    收藏  举报