使用jaxrs制作第一个REST

来源:互联网 发布:sql语句分组统计 编辑:程序博客网 时间:2024/06/05 02:28

1.下载jaxrs-ri-2.22.1.zip

 

2.解压jaxrs并将里面的.jar导入web下的lib目录中,或者直接加入CLASSPATH中,不过为了开发方便,导入lib目录中比较好使

 

3.类似于普通的web开发,我们先构建控制层

 

(1).映射HTTP的路径

@Path("/UserService")

使用@Path直接映射

 

(2)设置请求的方式,直接使用@+请求的注释,如

@POST

@GET

 

(3).返回数据

 @Produces

例如返回XML数据

 @Produces(MediaType.APPLICATION_XML)

或者JSON

 @Produces(MediaType.APPLICATION_JSON)


所以整个控制层

@Path("/UserService")public class UserService {   UserDao userDao = new UserDao();   @GET   @Path("/users")   @Produces(MediaType.APPLICATION_JSON)   public List<User> getUsers(){      return userDao.getAllUsers();   }}


4.接着控制层调用DAO层,数据操作层

package com.tutorialspoint;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.util.ArrayList;import java.util.List;public class UserDao {public List<User> getAllUsers() {List<User> userList = null;try {File file = new File("Users.dat");if (!file.exists()) {User user = new User(1, "Mahesh", "Teacher");userList = new ArrayList<User>();userList.add(user);//saveUserList(userList);} else {FileInputStream fis = new FileInputStream(file);ObjectInputStream ois = new ObjectInputStream(fis);userList = (List<User>) ois.readObject();ois.close();}} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return userList;}}


5.由于我们使用XML作用数据返回,而且整个返回的处理过程均交给框架层,而我们需要做的注解我们的Bean

 

package com.tutorialspoint;import java.io.Serializable;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name = "user")public class User implements Serializable {private static final long serialVersionUID = 1L;private int id;private String name;private String profession;public User() {}public User(int id, String name, String profession) {this.id = id;this.name = name;this.profession = profession;}public int getId() {return id;}@XmlElementpublic void setId(int id) {this.id = id;}public String getName() {return name;}@XmlElementpublic void setName(String name) {this.name = name;}public String getProfession() {return profession;}@XmlElementpublic void setProfession(String profession) {this.profession = profession;}}

我们使用@XmlRootElement(name = "user")

表明生成user的对象根标签

 

大概如

 

<user>

   ....

</user>

6.我们创建后必须在WEB.XML里注册

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><display-name>User Management</display-name><servlet><servlet-name>Jersey RESTful Application</servlet-name><servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class><init-param><param-name>jersey.config.server.provider.packages</param-name><param-value>com.tutorialspoint</param-value></init-param></servlet><servlet-mapping><servlet-name>Jersey RESTful Application</servlet-name><url-pattern>/rest/*</url-pattern></servlet-mapping></web-app>


7.

 

0 0
原创粉丝点击