`
zhangcxy
  • 浏览: 41323 次
  • 性别: 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>

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

 

 

 

分享到:
评论

相关推荐

    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;...

    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;...

    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...

    REST实战(REST in Practice)

    REST实战(REST in Practice)。英文清晰PDF版。三位soa专家对于rest进行了讲求实际的解释,并且通过将web的指导原理应用到普通的企业计算问题中,向你展示了如何开发简单的、优雅的分布式超媒体系统。你将会学习到很...

    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...

    nodejs+websock+rest+rest调用

    基于nodejs的websocket平台,该平台包括异步的数据库调用,异步的rest api访问,以及能够提供rest api的服务。该平台能实现基于ws的聊天室,可以将聊天的信息调用rest api存储到数据库,可以通过网页访问该平台提供...

    java rest api入门实例

    REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,...

    Learning WordPress REST API

    Chapter 1, Getting Started with REST API, gives you an overview of what the REST API is, how it functions, and all that it is capable of doing. You will also find information about other platforms if ...

    rest风格webservice框架

    它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务。 Restlet项目受到Servlet API、JSP(Java Server Pages)、HttpURLConnection及Struts等Web开发技术的影响。该项目的主要目标是:在提供同等功能的同时...

    REST服务示例入门

    2. 由于【1】的改动,使得只有以/rest开头的URL才能映射到某资源,使用rest服务时,必须要加上/rest。 3. 由于【1】的改动,RestComponent类注册application时将资源字符串加上了/rest。 4. 由于【1】的改动和本人...

    REST API.md

    REST是设计分布式网络服务或API时遵循的架构原则以及设计风格, 前后端分离最佳实践的开发标准或规范。本文为资料收藏的.md笔记,选取比较重要的资料,收集了以下内容: 重要概念介绍,如前述的第2-第4个关键词。 ...

    SOA与REST 用REST构建企业级SOA解决方案

    SOA与REST是当前两种流行的技术架构风格。然而,二者却站在不同的层次看架构,SOA的角度偏向于战略;而REST的角度则偏向于战术。SOA给出了一组架构原则实现其战略目标,而REST则通过一系列约束实现其战术目标。  ...

    REST Client 测试工具

    很多REST Client是不支持自动化测试RESTful API,也不支持自动生成API文档. 之前习惯用一款名字为 WisdomTool REST Client,支持自动化测试RESTful API,输出精美的测试报告,并且自动生成精美的RESTful API文档。 ...

    百度语音合成REST API POST JAVA 保存MP3 格式文件

    本资源包含网页和JAVA代码,分别演示基于百度语音合成REST API对接的POST方式提交接口数据,及其返回格式。网页格式直接返回语音,JAVA程序将POST调用返回的二进制数据流以字节流的方式存储在本地.mp3文件中。鉴于...

    REST_cn 中文版

    然后我介绍了表述性状态转移(Representational State Transfer,REST)的架构风格,并且描述了如何使用REST来指导现代Web架构的设计和开发。 REST强调组件交互的可伸缩性、接口的通用性、组件的独立部署、以及用来...

    Activiti-rest所有接口描述

    我们打开下载的Activiti5.18.0.zip包,在...我们把activiti-rest.war也部署到一个单独的tomcat中,修改WEB-INF/classes/log4j.properties文件,向其中加入以下内容,并将log4j.rootLogger=INFO, CA 后面添加一个“,D ”

    用WCFWebAPI在MVC3.0下实现REST

    最初开始接触web service的时候,所有的材料上来就是一大堆的名词,SOAP, WSDL,看得头都要大了,后来提出来的REST就容易理解得多,虽然目前SOAP在企业级的web service中还有一席之地,但是在公共的Internet上,不是...

    activiti-common-rest-5.21.0-API文档-中英对照版.zip

    赠送jar包:activiti-common-rest-5.21.0.jar; 赠送原API文档:activiti-common-rest-5.21.0-javadoc.jar; 赠送源代码:activiti-common-rest-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-common-rest-...

    Android代码-RestHttp

    RestHttp网络库 --- 基于HttpURLConnection &gt; - RestHttp提供了三级缓存(服务器缓存,内存缓存,硬盘缓存),通过动态代理的方式实现了面向接口调用API。 &gt; - 封装了HttpURLConnection,简单易用的API设计。 &gt; - ...

Global site tag (gtag.js) - Google Analytics