rest 最全实战-从创建到访问

一、rest的介绍
从搜索引擎中可以搜出大量关于rest的概念,比如rest是一个软件架构风格,其中的方法有Get、Put、Post、Delete等,今天我从应用的角度来阐述rest框架,为什么要用rest软件架构风格,如果有两个项目,其中一个项目访问另一个项目中资源,或者说是任何其他的项目来访问此项目中的资源,或者对项目中的资源进行增删改的时候,怎么办?此处就是rest的用武之地。
二、rest的创建
(1)先创建一个bean:user类

package com.rest.bean;  
import javax.xml.bind.annotation.XmlRootElement;  

@XmlRootElement  
public class User {  

    private String userId;  
    private String userName;  
    private String age;  

    public User() {};  

    public User(String userId, String userName, String age) {  
        this.userId = userId;  
        this.userName = userName;  
        this.age = age;  
    }  
    public String getUserId() {  
        return userId;  
    }  
    public void setUserId(String userId) {  
        this.userId = userId;  
    }  
    public String getUserName() {  
        return userName;  
    }  
    public void setUserName(String userName) {  
        this.userName = userName;  
    }  
    public String getAge() {  
        return age;  
    }  
    public void setAge(String age) {  
        this.age = age;  
    }  
}  

(2)然后创建一个UserResouce类

package com.rest.resources;  

import javax.ws.rs.Path;  
import javax.ws.rs.Produces;  
import javax.ws.rs.PathParam;  
import javax.ws.rs.core.MediaType;  
import javax.ws.rs.DELETE;  
import javax.ws.rs.GET;  
import javax.ws.rs.POST;  
import javax.ws.rs.PUT;  

import com.rest.bean.User;  

@Path("/users")  
public class UserResource {  

    @GET  
    @Path("/getUser")  
    @Produces(MediaType.APPLICATION_XML)  
    public User getUserXml() {  
     User user  = new User();  
     user.setAge("23");  
     user.setUserId("1");  
     user.setUserName("jack");  
     return user;  
    }  

}

(3)然后对rest框架进行相应的配置,像tomcat一样,在web.xml中

<servlet>
        <servlet-name>JAX-RS REST Servlet</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.json</param-value>
       </init-param>

        <load-on-startup>1</load-on-startup> 
    </servlet>
    <servlet-mapping>
        <servlet-name>JAX-RS REST Servlet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

(4)在浏览器中对rest进行访问,此处可以获得user对象的xml文件
连接为:http://localhost:8080/项目名/rest/users/getUser
三、rest的访问
当然我们在一个项目中创建出来的rest项目是供其他各种项目访问的,不单单是浏览器访问,那么在另一个项目中怎么访问这个rest项目的呢?


public class HttpClientTest {  
    public static void main(String args[]) {  
        //创建HttpClient
        HttpClient httpClient = new DefaultHttpClient();


        HttpGet httpGet = new HttpGet("http://localhost:8080/项目名/rest/users/getUser");  
        System.out.println(httpGet.getRequestLine());  
        try {  
            //执行get请求  
            HttpResponse httpResponse = httpClient.execute(httpGet);  
            //获取响应消息实体  
            HttpEntity entity = httpResponse.getEntity();  
            //响应状态  
            System.out.println("status:" + httpResponse.getStatusLine());  
            //判断响应实体是否为空  
            if (entity != null) {  
                System.out.println("contentEncoding:" + entity.getContentEncoding());  
                System.out.println("response content:" + EntityUtils.toString(entity));  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {  
            try {  
            //关闭流并释放资源  
            httpClient.close();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
}  

此处是对rest的访问,当然此处需要引入相应的httpClient.jar包,任意项目中要想访问rest项目中的资源,上述代码是最简单可行的方式,而且此jar中还包含httpDel、HttpPost、HttpPut和rest中get、post、put、delete对应。总的来说,rest在项目中的创建和访问已经全部包含,这也是我在工作中的经验之谈。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值