您的位置:首页 > 编程语言 > Java开发

使用jersey构建Restful web service

2016-07-14 16:33 573 查看

简介

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;

@XmlRootElement
public 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息