Java 后台各类型资料
目录
一、 Rest 调用 webservice 接口 ..............................................................................................2
1、 什么是 Rest................................................................................................................ 2
2、Rest 所需 jar 包 ............................................................................................................2
3、接受和返回类型 .......................................................................................................... 3
4、web.xml 配置............................................................................................................... 3
5、编写中所用标注及示例.............................................................................................. 4
一、Rest 调用 webservice 接口
1、什么是 Rest
REST 是一套用来创建 Web Service 的方法。
REST 式的 Web Service 的主旨是让事情尽量的简单化。
REST 式 的 Web Service 使 用 HTTP 里 的 方 法 : GET , POST ,
DELETE, PUT。你不需要使用 URL 或请求的内容来指定这个方法。
REST 式的 Web Service 使用 URL 来指明你将要操作什么对象。
REST 式的 Web Service 使用 HTTP 状态码作为返回值。
REST 式的 Web Service 调用产生的 HTTP 请求内容只是用于服务数
据——不是用来指明调用方法,目标对象或返回值的。
使用 REST 方法来开发 Web Service 的关键点是利用 HTTP 协议的简单性,
而不是去扩展这个协议。你的 Web Service 调用最终应该是非常的简单而且非常
的易于理解。
参考文档:http://kb.cnblogs.com/page/104300/
2、Rest 所需 jar 包
下载地址:http://download.csdn.net/download/u012524687/7993863
此地址为 CSDN 整合过得 jar 包解压可用。
所需 jar 包截图:
图 1.1 rest.jar
3、接受和返回类型
MediaType 指向的类型参考地址:
http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/MediaType.html
常用类型:
MediaType.TEXT_PLAIN:无格式文本
MediaType.TEXT_XML:”text/xml” 忽略 xml 头所指定的片吗格式而采用
us-ascii 编码
MediaType.APPLICATION_XML:”application/xml” 根据 xml 头指定的编码
格式来编码
MediaType.APPLICATION_JSON:”application/json” json 格式
4、web.xml 配置
restDemo
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
rest.service//包名
1//优先级
restDemo
/rest/*
//配置访问地址,如:http://localhost:8080/RestDemo/rest/RestService/123
5、编写中所用标注及示例
JAX-RS 是一套用 Java 实现 rest 服务的规范,使 Java 程序员可以使用一套固
定的接口来开发 rest 应用,避免了依赖于第三方框架。同时,JAX-RS 使用 POJO
编程模型和基于标注的配置,并集成了 JAXB,从而可以有效缩短 REST 应用的
开发周期。
JAX-RS 提供了一些标注将一个资源类,一个 POJOJava 类,封装为 Web 资
源。这些标注包括以下:
1、@Path:标注资源类或方法的相对路径。Path 的参数有三种:
1.1 固定值
1.2 纯正则表达式
1.3 固定值和正则表达式的混合体
2、@GET,@PUT,@POST,@DELETE:标注方法是用的 HTTP 请求类型。
2.1 @GET:提供查询方法,所有的参数均在 URL 路径中,只能传输一
个或者多个字符串无法传输对象。
2.2 @POST:提供新增方法,参数可以存在 URL 路径中,也可以存在
BODY 中。如传输文本格式的参数,使用 String 类型或者基本数据类型;如
传输 JSON 格式的参数,使用 map、list 或者对象。
2.3 @PUT:提供修改方法。
2.4 @DELETE:提供删除方法。
3、@Produces,@Consumes:标注 MIME 媒体类型。
3.1 @Produces:标注返回的 MIME 媒体类型。
@Produces(“text/plain;charset=utf-8”):处理返回中文乱码。(不设置
的话默认为这个)
@Produces(MediaType.TEXT_XML):返回的类型为”text/xml”,忽略
xml 头所指定编码格式而默认采用 us-ascii 编码。
3.2 @Consumes:标注可接受的 MIME 媒体类型。
@Consumes(MediaType.TEXT_PLAIN):可接受的类型为”text/plain”,
无格式文本。
4、@PathParam,@QueryParam,@HeaderParam,@CookieParam,
@MatrixParam,@FormParam:分别标注方法的参数来自于 HTTP 请求
的不同位置。
4.1 @PathParam:提取 URL 的路径。
例如:URL 地址为:
http://localhost:8080/RestDemo/rest/RestService/123
请求模板为:
@path(“RestService”)
public Class RestService{
@GET
@Path(“{id}”)
@Produces(“text/plain;charset=utf-8”)
public String getPatnParam(@PathParam(value=”id”) int id){
return “url 中的参数为:”+id;
}
}
4.2 @QueryParam:来自于 URL 的查询参数。
例如:URL 地址为:
http://localhost:8080/RestDemo/rest/RestService/getQueryParam?id=12
请求模板为:
@path(“RestService”)
public Class RestService{
@GET
@Path(“getQueryParam”)
@Produces(“text/plain;charset=utf-8”)
public String getQueryParam(@QueryParam(value=”id”) String id){
return “请求信息为:”+id;
}
}
4.3 @HeaderParam:来自于 HTTP 的请求头消息。
例如:URL 地址为:
http://localhost:8080/RestDemo/rest/RestService/getHeaderParam
请求模板为:
@path(“RestService”)
public Class RestService{
@GET
@Path("/getHeaderParam")
public String getHeaderParam(@HeaderParam(value="host")
String host ){
return "请求头消息:" + host;
}
}
4.4 @MatrixParam:GET 方式请求时获取路径中与 Path 正则表达式多出
不一致的参数。
例如:URL 地址为:
http://localhost:8080/RestDemo/rest/RestService/test--context;color=bal
ck
请求模板为:
@path(“RestService”)
public Class RestService{
@GET
@Path(“{model}--{year}”)
@Produces(“text/plain;charset=utf-8”)
public String getMatrixParam(@MatrixParam(value=”color”) String
color,
@PathParam(value=”model”) String model,
@PathParam(value=”year”) String year ){
return “ 参 数 为 : color : ”+ color + “ ; model : ”+ model+” ;
year:”+year;
}
}
4.5 @FormParam:其功能是可以和前端的 HTML 绑定
例子:
JAX-RS @FormParam Testing
请求模板为:
@Path(“RestService”)
public Class RestService{
@POST //要和 HTML 中的对应
@Path(“/add”)
@Produces(“text/plain;charset=utf-8”)
public String add(@FormParam(”name”) String name
@FormParam(”age”) int age){
return “Name=”+name+”;Age=”+age;
}
}