Android开发学习(12)Jersey构建RESTful后台服务

安卓和后台服务的交互方式,REST是一种风格,这种交互,涉及两个方面,一个是后台服务 ,一个是App,我们今天先搭建一个简单的RESTful风格的后台服务,App访问会在下边博客介绍。

先来简单了解下概念,方便我们搭建相关服务:

概念

RESTful

REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。

Jersey

Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发。尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架。

接下来我们开始搭建我们自己的RESTful后台服务;

搭建步骤

  • 使用哦maven创建一个简单的web项目
    参考博客:图文介绍IntelliJ IDEA 创建基于Maven构建的Web项目

  • 加入Jersey引用

    <dependency>
      <groupId>org.glassfish.jersey.containersgroupId>
      <artifactId>jersey-container-servletartifactId>
      <version>2.17version>
    dependency>
    <dependency>
      <groupId>org.glassfish.jersey.coregroupId>
      <artifactId>jersey-clientartifactId>
      <version>2.17version>
    dependency>
    <dependency>
      <groupId>org.glassfish.jersey.mediagroupId>
      <artifactId>jersey-media-json-jacksonartifactId>
      <version>2.17version>
    dependency>
  • 修改web.xml


<web-app>
  <display-name>jerseyDemodisplay-name>

  <servlet>
    <servlet-name>jersey-restfulservlet-name>
    <servlet-class>
      org.glassfish.jersey.servlet.ServletContainer
    servlet-class>
    <init-param>
      <param-name>jersey.config.server.provider.packagesparam-name>
      <param-value>com.xvshu.cnparam-value>
    init-param>
    <load-on-startup>1load-on-startup>
  servlet>
  <servlet-mapping>
    <servlet-name>jersey-restfulservlet-name>
    <url-pattern>/rest/*url-pattern>
  servlet-mapping>

web-app>
  • 新增rest服务
package com.xvshu.cn.rest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

/**
 * Created by xvshu on 2017/8/16.
 */
@Path("/user")
public class UserRestServide {

    @GET
    @Path("/{from}/{userName}/{passWord}")
    @Produces("text/plain;charset=UTF-8")
    public String sayHello2UserByText(@PathParam("userName") String username,@PathParam("passWord") String passWord,@PathParam("from") String from) {
        String result = "false";

        System.out.println("==>rest/from:"+String.valueOf(from)+" user:"+String.valueOf(username)+" pass:"+String.valueOf(passWord));
        username=username.trim();
        passWord=passWord.trim();
        if(username.equals("admin") && passWord.equals("admin")){
            result="true";
        }
        return result;
    }
}
  • 发布
    项目正常打包发布至tomcat,完成部署

结果展示

前台请求
Android开发学习(12)Jersey构建RESTful后台服务_第1张图片

后台日志
rest_service

总结

Jersey框架的原理非常类似与spring mvc,这个框架的学习非常轻松,和以前的spring mvc相似成都几乎100%,相信有同样学习经验的同学应该有所感受,如果对spring mvc感兴趣,请移步我的相关博客:http://blog.csdn.net/xvshu/article/details/42435167

源码地址:
git_jersey_demo

你可能感兴趣的:(安卓开发,Android学习,android,android开发)