//jersery官方文档地址:https://jersey.java.net/documentation/latest/index.html
REST 在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一。
REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识。客户端应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集。RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务。通常,RESTful Web 服务应该定义以下方面:
Web 服务的基/根 URI,比如 http://host/<appcontext>/resources。
支持 MIME 类型的响应数据,包括 JSON/XML/ATOM 等等。
服务支持的操作集合(例如 POST、GET、PUT 或 DELETE)。
@Path:定义资源基 URI。由上下文根和主机名组成,资源标识符类似于 http://localhost:8080/Jersey/rest/hello。
@GET:这意味着以下方法可以响应 HTTP GET 方法。
@Produces:以纯文本方式定义响应内容 MIME 类型。
@Context: 使用该注释注入上下文对象,比如 Request、Response、 UriInfo、ServletContext 等。
在 web.xml 文件中定义 Jersey servlet
jar包官方下载地址:https://maven.java.net/content/repositories/releases/com/sun/jersey/contribs/jersey-spring/
所需jar包;
java代码:
@Path("/test")
public class RoundrobinAction {
@POST
@Path("/example")
@Produces("application/json;charset=UTF-8")
@Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML,MediaType.TEXT_HTML})
public String Example(@Context HttpServletRequest request){
String ret="";
try {
ServletInputStream inputStream=request.getInputStream();
StringBuilder builder=new StringBuilder();
byte[] buff=new byte[1024];
int len=-1;
while((len = inputStream.read(buff))!= -1){
builder.append(new String(buff,0,len,"UTF-8"));
}
//参数json
String parameterStr = builder.toString();
//打印参数
System.out.println(parameterStr);
ret="通讯成功!";
} catch (IOException e) {
e.printStackTrace();
}
return ret;
}
}
web.xml配置:
<servlet>
<servlet-name>restfulServlet_test</servlet-name>
<servlet-class>
com.sun.jersey.spi.spring.container.servlet.SpringServlet
</servlet-class>
<init-param>
<param-name>
com.sun.jersey.config.property.packages
</param-name>
<param-value>com.ckhb.Roundrobin</param-value>
</init-param>
<init-param>
<param-name>
com.sun.jersey.api.json.POJOMappingFeature
</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>restfulServlet_test</servlet-name>
<url-pattern>/jerseyExm/*</url-pattern>
</servlet-mapping>
请求地址为:http://127.0.0.1:8080/项目名称/jerseyExm/test/example