Jersey构建Restful风格的webservices

页面导航:首页 > 网络编程 > JavaScript > Jersey构建Restful风格的webservices

Jersey构建Restful风格的webservices

来源: 作者: 时间:2016-02-20 09:49 【

最近一直在搞老项目的开发工作,很少写博文了。听了两位阿里巴巴大牛的讨论,决定试试用restful风格的webservices看看。这里用的是Jersey这个框架,刚开始弄,有点麻烦,只能到处查资
最近一直在搞老项目的开发工作,很少写博文了。听了两位阿里巴巴大牛的讨论,决定试试用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;
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<