使用jersey构建Restful web service

来源:互联网 发布:wampserver端口 编辑:程序博客网 时间:2024/04/28 17:51

简介

RESTful Web Service是轻量级的service,可以通过HTTP的方式来实现对后台数据库的CRUD,在Web开发和移动开发时使用的比较广泛,非常方便。在Java世界里, JAX-RS规范定义了对RESTful Web Service的实现。Oracle的Jersey框架则是对JAX-RS的一个实现。下面我们学习如何使用Jersey来创建RESTful WebService。

使用

准备环境

  • 下载jersey

    https://jersey.java.net/download.html

  • 创建一个 Dynamic Web Project.

  • 把刚刚下载的jersey解压,把lib目录下面的jar包放到WEB-INF/lib下面

配置

  • 在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>com.aplex.web</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>
  • 创建java类

    package com.aplex.web;import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.Produces;  import javax.ws.rs.core.MediaType; @Path("/hello")  public class FindUsers {    // This method is called if TEXT_PLAIN is request      @GET      @Produces(MediaType.TEXT_PLAIN)      public String sayPlainTextHello() {          System.out.println("hello");        return "Hello Jersey";      }      // This method is called if XML is request      @GET      @Produces(MediaType.TEXT_XML)      public String sayXMLHello() {          return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";      }      // This method is called if HTML is request     @GET      @Produces(MediaType.TEXT_HTML)      public String sayHtmlHello() {          return "<html> " + "<head><title>" + "Hello Jersey" + "</title>"                  +"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head>"                + "<body><h1>" + "say Hello to 小胖 from webserivce base on jersey" + "</body></h1>" + "</html> ";      }  }
  • 访问

    http://localhost:8080/RestfulDemo/rest/hello

拓展

jersey还有个强大之处就是能完成bean和 (XML与json的映射,类似于Android的Gson;

使用

  • 新建一个类ResponseJson.java

    package com.aplex.web;import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.MediaType;import com.aplex.web.bean.User;@Path("/getjson")public class ResponseJson {    @GET    @Produces({MediaType.APPLICATION_JSON })      public User getUser(){        User u = new User();        u.setUsername("cmz8888");        u.setPassword("888888");        return u;    }}
  • 新建一个类User.java

    package com.aplex.web.bean;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElementpublic class User {    private String username;    private String password;    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

访问

http://localhost:8080/RestfulDemo/rest/getjson
0 0
原创粉丝点击