jersey是Sun公司按照JAX-RS规范标准对RESTful架构风格的一种实现,关于RESTful的介绍可以参考RESTful架构,主要作用就是提供了一些标注将一个资源类、一个POJO Java类封装为Web资源。
grizzly是一个web容器,类似tomcat或者glassfish容器。其中grizzly专门解决编写成千上万用户访问服务器时候产生的问题,使用JAVA NIO作为基础。
其中jersey官方入门例子参考jersey官方例子。下面介绍jersey的注解使用。
jersey中有几种常用的接收参数的注解:
@PathParam 接收链接中参数,如"/xxx/{name}/",@PathParm("name")
@QueryParam 接收链接中的普通参数,如"/xxx?name=ttt",@QueryParam("name")
@FormParm 接收post提交中的表单参数
@FormDataParm 上传文件接收文件参数
参数编码的问题,参考这里点击打开链接。
GET例子:
@Path("/sayHello")
@GET
// The Java method will produce content identified by the MIME Media
// type "text/plain"
@Produces("text/plain")
public String getClichedMessage() {
// Return some cliched textual content
return "Hello World";
}
<strong>get方式可以用@PathParam和@QueryParam两种方式接收参数,不能用@FormParam。</strong>
@GET
@Path("{username}")
@Produces(MediaType.TEXT_HTML)
public String getUserName(@PathParam("username") String userName) {
return "hello "+userName;
}
@GET
@Path("/get1")
@Produces(MediaType.TEXT_HTML)
public String get1(@QueryParam("msg") String userName) {
return "hello "+userName;
}
@POST
@Path("/post")
@Consumes("application/x-www-form-urlencoded")
@Produces(MediaType.TEXT_HTML+";charset=utf-8")
//@Produces("text/plain;charset=utf-8")
public String echo(@FormParam("msg") String msg){
return "are you say "+msg;
}
其中GET和POST均有可能出现中文乱码的情况,解决方法是指定产生数据的编码格式,一下两种方式均可:
@Produces(MediaType.TEXT_HTML+";charset=utf-8")
@Produces("text/plain;charset=utf-8")
下面是对常见的媒体格式类型以及其中区别的总结: