现在的位置: 主页 > 新闻中心 > 文章正文

Jersey构建Restful风格的webservices

作者:武警河南洛阳红丝带网 来源:www.027fck.com 未知发布时间:2017-09-09 10:25:58
Jersey构建Restful风格的webservices 最近一直在搞老项目的开发工作,很少写博文了。听了两位阿里巴巴大牛的讨论,决定试试用restful风格的webservices看看。

这里用的是Jersey这个框架,刚开始弄,有点麻烦,只能到处查资料。网上的资料也比较零碎,这里整理一下。

一.helloworld

需要三个包,这里从maven获取。

复制代码

<dependencies>

<dependency>

<groupId>com.sun.jersey</groupId>

<artifactId>jersey-core</artifactId>

<version>1.18</version>

</dependency>

<dependency>

<groupId>com.sun.jersey</groupId>

<artifactId>jersey-json</artifactId>

<version>1.18</version>

</dependency>

<dependency>

<groupId>com.sun.jersey</groupId>

<artifactId>jersey-servlet</artifactId>

<version>1.18</version>

</dependency>

</dependencies>

复制代码

然后再web.xml中代码:

复制代码

<servlet>

<servlet-name>Jersey REST Service</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>hello.resource</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>Jersey REST Service</servlet-name>

<url-pattern>/rest/*</url-pattern>

</servlet-mapping>

复制代码

写一个资源类:

复制代码

@Path("hello")

public class HelloResource {

@GET

@Produces(MediaType.TEXT_PLAIN)

public String greed(){

return "hello world";

}

}

复制代码

这样,访问:http://localhost:8080/rest/hello ,可以看到页面会输出:hello world

二.传递参数

在HelloResource这个类中,新加一个方法:

@GET

@Produces(MediaType.TEXT_PLAIN)

@Path("{id}")

public String sayHello(@PathParam("id")int id){

return "hello jersey "+id;

}

此时,访问:http://localhost:8080/rest/hello/123 ,页面会输出:

hello jersey 123

后面的123即是参数id的值。试了一下,如果再写一个一样的方法,把参数类型改成String类型,当输入参数类型不同的时候,会自动识别不同的方法。不过中文不可以直接跟在后面,会有乱码的情况。

我们一般传递参数的话,是采用?符来进行传参的。上面的方式看上去有点奇怪,不符合我们经常用的方式。

这里还有一种方式,适合我们的方式,不采用PathParam这个属性,采用QueryParam这个。

再写一个方法:

@GET

@Path("/param")

@Produces("text/plain")

public String sayHis(@QueryParam("param")String param){

return "nice "+param;

}

此时,访问:http://localhost:8080/rest/hello/param?param=work ,页面会输出:

nice work

另附glassfish配置方式:

上面是用com.sun的包,还有一种是org.glassfish的包。

配置都差不多。

web.xml:

复制代码

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

version="3.0">

<servlet>

<servlet-name>Jersey REST Service</servlet-name>

<servlet-class>

org.glassfish.jersey.servlet.ServletContainer

</servlet-class>

<init-param>

<param-name>jersey.config.server.provider.packages</param-name>

<param-value>hello.resource</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>Jersey REST Service</servlet-name>

<url-pattern>/rest/*</url-pattern>

</servlet-mapping>

</web-app>

复制代码

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:潜江网站建设 http://qianjiang.45qun.com

上一篇:Python - 检测字符串之间的包含 下一篇:最后一页