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

6.8.1 REST风格的URL

阅读更多

6.8.1 REST风格的URL

  • 摘要:http://new.51cSpring Frameowork 2入门经典》第6Spring Web流程,本章开始时先讨论了为什么对某些应用程序样式使用硬编码页面流程不是一个好的开发实践,然后介绍了贷款提交应用程序的一个样本工作流程作为使用SWF的一个示例。再然后本章介绍了SWF以及Web流程背后的概念。本节讲述的是REST风格的URL
  • 标签:RESTURLSpringSpring Frameowork 2入门经典
  • 6.8 高级话题

    本章只是作为一个SWF的介绍,所以讨论的都是基础概念。有了这些信息,用户应该可以开始在自己的Java应用程序中使用SWF。但是,和其他的系统一样,SWF中有许多高级功能。本节将简要地介绍一些这样的功能以便为您进一步研究SWF提供一些补充要点。

    6.8.1 REST风格的URL

    代表性状态传输(Representational State TransferREST)(http://en.wikipedia.org/ wiki/Representational_State_Transfer)是一个完全基于HTTP的、用于构建Web服务的模型。理解REST意味着理解HTTP协议到底提供了什么。HTTP是访问Internet资源时普遍采用的协议,使用这个协议时不需要传输额外的消息,比如HTTP cookieSOAPREST是一种呈现应用程序的体系结构风格,而不是一个规范或标准,理解这一点十分重要。

    关于REST的文章有很多,因为对它和WS-*规范系列的比较已经激烈持续了一段时间。我希望您可以自己找到一些这样的文章来更好地理解REST,因为这些话题技术性很强,并且很快就变得十分深入。本章中没有足够的地方来讨论这些辩论。

    REST背后的思想是HTTP协议提供了访问Web服务所需的所有操作。最重要的HTTP操作是PUTGETPOSTDELETE,这些操作都被集成到HTTP协议的内部。经常有人把这些操作与数据库技术相关的CREATEREADUPDATEDELETE(CRUD)操作进行比较。根据REST盲从者(RESTafarian)的说法(http://en.wikipedia.org/wiki/RESTafarian),这些操作就是访问Web服务所需的全部内容。

    除了使用HTTP提供的简单操作以外,REST也使用了可读性很强的、易于理解的URL。例如,REST没有基于一个全是参数的复杂URL访问服务器,而是允许使用没有参数的、可读性好的、可被制作为书签的URL。这些URL是本节的基础。本章前面的示例使用的URL的样式如下:

  1. http://localhost:8080/pixweb-0.0.1/flow.htm?_flowExecutionKey=_cC5551A2
  2. 1-1DFC-6C5E-8849-8324D37C3389_k32C0031B-8640-A92F-D542-5642516AD23A

    REST没有使用这种让人难以读懂(并且显然没什么意义)URL,而是使用了很简单的URL,如下所示:

  3. 这种URL看上去更加简单。现在看一下如何使用这种URL来配置应用程序。

    通常,隐藏的输入元素被用来保存流程执行ID,如下所示:

  4. form:form>
  5. ...
  6. "hidden"name="_flowExecutionId"value="
  7. ${flowExecutionKey}"/>
  8. "button"name="_eventId_submit"value="Login"/>
  9. 简单介绍术语"Web服务"

    当在REST范围内讨论Web服务时,Web服务(web service)这个术语表示的是其最一般的意义,它指的是所有可以通过HTP访问的应用程序--通常使用XML作为数据的有效负载格式。当在WS-*规范系列范围内讨论Web服务时,Web服务这个术语表明使用了SOAP消息传输协议。Web服务这个术语的两种定义随着时间逐渐出现,它们很容易让人混淆。

    这两种定义的区别看上去非常细微,但是却非常重要。真正的区别在于REST样式的Web服务和WS-*样式的Web服务提供的底层操作。Web服务的REST样式通过4HTTP操作呈现出来,而Web服务的WS-*样式则通过定义在Web服务的WSDL定义中的自定义操作呈现。

    开始使用SWF的人很快就会注意到SWF生成的URL的可读性不强,因而很难被制成书签。幸好SWF的体系结构设计者认识到了这个问题,从而提供了一种方法来避开这个问题。

    但是还有一种更好的方法。通过使用RequestPathFlowExecutorArgumentHandler类可以实现REST样式的URL。这个类的配置必须被添加进webflow.config文件,如下所示:

  10. "/flow.htm"class=
  11. "org.springframework.webflow.executor.mvc.FlowController">
  12. "flowExecutor"ref="flowExecutor"/>
  13. "argumentHandler">
  14. class=
  15. "org.springframework.webflow.executor.support.RequestPath
  16. FlowExecutorArgumentHandler"
  17. />
  18. 这样您的应用程序的URL的可读性就更强。下面是一个示例:

  19. 相对在URL中使用难以理解的流程ID和许多键/值对而言,这是一个很大的改进

分享到:
评论

相关推荐

    Cheat Engine 6.8.1_CE_cheatengine6.8.1_

    **Cheat Engine 6.8.1:游戏数据修改利器** Cheat Engine(简称CE)是一款功能强大的内存修改工具,其最新版本为6.8.1。它主要用于单机游戏的数据修改,帮助玩家在游戏中实现各种自定义设定,提升游戏体验。CE通过...

    elasticsearch-6.8.1+kibana-6.8.1+ logstash-6.3.0

    在6.8.1版本中,Elasticsearch 提供了更稳定的性能和增强的安全特性,包括内置的身份验证、授权和加密,以确保数据安全。此外,该版本还优化了索引和查询性能,提高了集群的可扩展性和可靠性。 Logstash 是一个数据...

    logstash-6.8.1.rpm

    logstash-6.8.1.rpm

    elasticsearch-6.8.1.rpm

    elasticsearch-6.8.1.rpm

    CE6.8.1安装版+汉化(官网)

    【CE6.8.1 安装版+汉化(官网)】是一个针对游戏调试和内存修改工具Cheat Engine的官方版本,包含了6.8.1版本的安装程序以及汉化资源。Cheat Engine通常被游戏爱好者用于学习游戏机制、进行非商业性的调试和测试,以...

    cheat-engine-master_ce6.8.1源码_6.8CE源码_

    《深入解析Cheat Engine 6.8.1源码:逆向工程与游戏修改的奥秘》 Cheat Engine(简称CE)是一款广泛应用于游戏修改的开源工具,其6.8.1版本的源码提供了深入理解游戏逆向工程、内存调试以及数据扫描的宝贵资源。...

    STM32CUBEMX-6.8.1安装包

    2023年6月29日上传,当时最新版本

    flowable-6.8.1.war

    flowable-ui.war,flowable 流程设计工具

    cheatengine6.8.1.zip

    《CheatEngine 6.8.1:内存调试与游戏修改神器》 Cheat Engine,简称CE,是一款功能强大的内存调试工具,主要用于游戏修改和软件调试。标题中的"cheatengine6.8.1.zip"表明这是一个包含Cheat Engine 6.8.1版本的...

    6.8.1 Packet Tracer - Configure NAT for IPv4

    6.8.1 Packet Tracer - Configure NAT for IPv4 Cisco Packet Tracer 思科模拟器 正确答案文件 可直接上交正确答案文件 本答案版权归mewhaku所有,严禁再次转载!!! Copyright @mewhaku 2022 All Rights ...

    Cheat Engine 6.8.1 中文版

    Cheat Engine 6.8.1是该软件的一个特定版本,具有较高的稳定性和兼容性。 在Cheat Engine 6.8.1中,主要包含以下关键知识点: 1. **内存扫描**:Cheat Engine的核心功能之一就是内存扫描。用户可以通过它搜索游戏...

    gradle-6.8.1-bin.zip

    它的6.8.1版本是一个稳定且功能丰富的发行版,提供了许多优化和改进。本文将深入探讨Gradle的核心特性、安装配置以及如何在实际项目中使用。 首先,Gradle采用基于Groovy和Kotlin的领域特定语言(DSL)来编写构建脚本...

    gradle-6.8.1-all.zip

    `gradle-6.8.1-all.zip`是一个包含Gradle 6.8.1版本所有组件的压缩包,用于用户下载并安装到本地进行项目构建。这个版本可能包含了Gradle的二进制文件、文档、库依赖以及其他必要的资源。 1. **Gradle简介** ...

    elasticsearch-6.8.1.zip

    Elasticsearch 6.8.1 是一个高度可扩展、高性能的开源全文搜索引擎,由Apache许可协议授权。这个版本是专为Windows操作系统设计的,它提供了在Windows环境下运行Elasticsearch的强大功能。Elasticsearch的核心特性...

    Notepad++(又名:npp)V6.8.1

    V6.8.1是Notepad++的一个特定版本,发布于2016年,包含了对软件功能的持续改进和优化。 Notepad++的核心特性包括: 1. **语法高亮**:支持多种编程语言,如C++, Java, Python, PHP等,通过不同颜色和样式突出显示...

    swiper-6.8.1.zip

    在Swiper 6.8.1版本中,提供了完整的功能集合和丰富的示例,以帮助开发者更好地理解和使用这个库。此版本包含了未压缩的JS和CSS文件,方便开发者进行调试和自定义。 Swiper 6引入了一些重要的改进和新特性: 1. **...

    gradle-6.8.1-all.zip 快速下载

    Gradle 6.8.1 版本大大提高了 Kotlin DSL 构建脚本编译的性能,对 Java 工具链支持进行了一些改进,包括供应商选择,并使得直接从命令行执行复合构建中的任何任务变得容易。此版本还引入了新的依赖项管理 API,以...

    CE6.8.1源码,打造属于自己的CE

    Cheat Engine(简称CE)是一款广泛用于游戏修改的开源工具,其6.8.1版本的源码提供给了我们深入理解内存修改技术的机会。通过获取并研究CE的源码,我们可以学习到如何利用编程技巧来探索、分析和修改游戏内存数据,...

Global site tag (gtag.js) - Google Analytics