`
zhangcxy
  • 浏览: 42792 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

REST

    博客分类:
  • JAVA
阅读更多

       最近一直在看一些关于rest架构的东西,但看来看去还是对一些细节的概念较为模糊。而且网上或论坛博客都没有一个资深的开发人员用过的文章,只是一些简单的增删改的小demo,始终达不到想要的效果。根据我的经验,在一个大的项目里面是很难只用rest架构就能完成。它更适合中小的项目,而且模块之间依赖性很小的那种。因为毕竟不是所有的东西都能被抽象为资源。大家可以参考一下这篇文章http://blog.csdn.net/maoxiang/article/details/4551434这篇文章中的例子完全可一放在项目中作参考使用。他只是把servlet做了简单的封装,很容易理解,感觉没多少技术含量。但你要永远记清一点,rest是一种架构的风格,不是新技术!

这是一个service的写法:

package com.xx.xx.service;

 

import net.sf.json.JSONObject;

 

import com.bayss.ms.common.script.ScriptOperator;

import com.bayss.ms.common.utils.PropertiesUtil;

import com.bayss.rest.IRestRequest;

import com.bayss.rest.IRestResponse;

import com.bayss.rest.IRestService;

import com.bayss.rest.RestException;

 

public class BusinessDataService implements IRestService {

 

public void service(IRestRequest request, IRestResponse response)throws RestException {

String args = "";

String[] value  = request.getHttpRequest().getParameterValues("func");

for(int j = 0;j<value.length;j++){}

String str = value[0];

String[] s = str.split(",");

JSONObject jsonData = new JSONObject();

 

for (int i = 0; i < s.length; i++) {

String func ="";

args=  jsonData.put(s[i], func).toString();

 

}

//返回请求值

response.writeResponse(args);

 

}

 

}

大概就是从url里面取到请求的参数,然后service做处理返回给客户端。

然后在WEB-INF下面添加一个rest.xml,这个xml由RestConfig.java来处理:

<?xml version="1.0" encoding="UTF-8"?>

<rest-config>

<services>

<!-- business -->

<service class="com.xx.xx.service.BusinessDataService">/business/data</service>

</services>

<interceptors>

<interceptor class="com.xx.xx.interceptor.LogInterceptor"></interceptor>

</interceptors>

</rest-config>

添加的url就在<services></services>里面配置,访问的时候就是:localhost:8080/项目名称/business/data

然后就是web.xml的配置:

<!-- rest framework -->

<servlet>

<servlet-name>RestServlet</servlet-name>

<servlet-class>com.xx.rest.support.ServletRestDispatcher</servlet-class>

<init-param>

<param-name>restConfig</param-name>

<param-value>/WEB-INF/rest.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>RestServlet</servlet-name>

<url-pattern>/*</url-pattern>

</servlet-mapping>

就这么简单。不过大家在用的时候还是要在看一遍我开头写的内容!

 

 

 

分享到:
评论

相关推荐

    REST Server in Delphi XE Using DataSnap中文版

    ### REST Server 在 Delphi XE 中使用 DataSnap 的关键技术点 #### 1. REST 架构简介 - **背景**: REST(Representational State Transfer)是 Web 服务领域的一个重要概念,尤其在过去十年中,随着 Web 2.0 的...

    谷歌浏览器插件+AdvancedRestClient+Http Rest API测试调试

    1. 安装Advanced REST Client插件:首先,你需要在Chrome浏览器的Web Store中搜索“Advanced REST Client”并安装它。安装完成后,你可以在浏览器的扩展程序栏找到ARC的图标。 2. 创建新的HTTP请求:打开ARC,点击...

    REST地图与天地图叠加

    本示例探讨的主题是“REST地图与天地图叠加”,这涉及到两种不同的地图服务技术的融合,即SuperMap iClient的REST地图服务和天地图服务。我们将详细解释这两种技术及其在Flex客户端下的叠加应用。 首先,REST...

    Rest Severs in Delphi XE Using DataSnap

    在Delphi XE中利用DataSnap构建REST服务器是一项强大的技术,可以帮助开发者创建高效、可扩展的Web服务。本文将深入探讨这一主题,介绍REST(Representational State Transfer)架构原理,以及如何在Delphi环境中...

    geoserver-rest-python-1.1

    【标题】"geoserver-rest-python-1.1" 是一个针对Geoserver的REST API接口的Python客户端库,主要用于管理、配置和操作Geoserver的版本1.1。这个库是Geoserver-rest-python-1.0的升级版,修复了已知的错误并进行了...

    elasticsearch-rest-high-level-client-6.8.3-API文档-中英对照版.zip

    赠送jar包:elasticsearch-rest-high-level-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-high-level-client-6.8.3-sources.jar;...

    REST实战(REST in Practice)

    ### REST实战(REST in Practice)知识点总结 #### 一、REST简介与背景 - **REST (Representational State Transfer)**:一种软件架构风格,用于描述基于网络的应用程序如何工作。REST的核心理念是通过简单的HTTP...

    elasticsearch-rest-client-6.8.3-API文档-中文版.zip

    赠送jar包:elasticsearch-rest-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-client-6.8.3-sources.jar; 赠送Maven依赖信息文件:elastic...

    Kepware IOT gateway使用教程 - REST Sever

    其中,REST Server 模块是实现这一目标的关键组件,它提供了基于 RESTful API 的接口,使得应用程序能够轻松地从 KEPWARE 获取或写入数据。本教程将详细介绍如何在 KEPWARE 中配置和使用 REST Server。 首先,确保...

    REST服务构建的web应用的优势和不足

    REST 服务构建的 Web 应用优势和不足 REST(REpresentational State Transfer)是一种混合架构风格,当前互联网的核心架构风格。基于 REST 服务(RESTful Service)的 Web 应用系统设计任务主要包括:识别并设计 ...

    elasticsearch-rest-high-level-client-6.8.3-API文档-中文版.zip

    赠送jar包:elasticsearch-rest-high-level-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-high-level-client-6.8.3-sources.jar;...

    动态发布rest接口及服务调用

    在IT行业中,REST(Representational State Transfer)是一种广泛应用于网络应用程序设计的架构风格,它强调资源的表述状态转移。REST接口通常使用HTTP协议中的方法(GET、POST、PUT、DELETE等)来操作资源,实现轻...

    kettle rest 接口 请求实例

    在Kettle中,REST接口提供了一种灵活的方式与外部系统进行通信,例如,发送和接收JSON数据,执行各种操作。本教程将深入探讨如何使用Kettle与RESTful服务进行交互。 首先,我们要理解REST(Representational State ...

    C# 实现Rest服务接口,含实现文档

    本项目“C# 实现Rest服务接口,含实现文档”将详细介绍如何使用C#和ASP.NET框架来构建RESTful服务。 1. **C#语言基础**:C#是Microsoft开发的一种面向对象的编程语言,常用于Windows平台的应用程序开发,尤其在.NET...

    JavaScript天地图叠加REST地图服务

    JavaScript天地图叠加REST地图服务是将SuperMap iClient 6R for JavaScript库与天地图的REST服务相结合,实现在线地图的动态加载与显示。在Web应用中,这种技术常用于地理信息系统(GIS)的开发,使得用户可以在...

    Asp.net 实现 Rest服务接口

    【Asp.net 实现 Rest服务接口】 在现代Web开发中,REST(Representational State Transfer,表述性状态转移)已经成为一种广泛采用的API设计风格。它基于HTTP协议,以简洁、可扩展的方式提供服务,便于客户端与...

    JIRA REST Java Client

    **JIRA REST Java Client**是Atlassian官方提供的一款用于与JIRA进行交互的Java库,它使得开发人员能够轻松地通过RESTful API访问和操作JIRA系统。这个库提供了丰富的功能,包括创建、更新、查询问题(issues)、...

    Java 调用Http Rest接口 例子说明

    REST (Representational State Transfer) 是一种设计网络应用程序的架构风格,其核心原则之一是无状态性。在REST架构中,客户端和服务端之间的交互基于HTTP协议,通过发送HTTP请求并接收HTTP响应来完成。 #### 三、...

    白话REST-识别真假REST

    REST(Representational State Transfer),即“表征状态转移”,是由Roy Fielding博士在其2000年的博士论文中提出的一种软件架构风格。REST强调基于网络的分布式系统的松耦合设计,并推崇无状态通信机制。在理解...

    elasticsearch-rest-client-6.3.0-API文档-中英对照版.zip

    赠送jar包:elasticsearch-rest-client-6.3.0.jar; 赠送原API文档:elasticsearch-rest-client-6.3.0-javadoc.jar; 赠送源代码:elasticsearch-rest-client-6.3.0-sources.jar; 赠送Maven依赖信息文件:elastic...

Global site tag (gtag.js) - Google Analytics