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

REST风格的URL映射之实现篇 — Windows Live

阅读更多

216

REST风格的URL映射之实现篇

昨天写了个接口类,今天就来实现了!

首先,官方文档说明有个Restful2ActionMapper的现实类,可以做到这点!Restful2ActionMapper源码有一以下一些比较重要的:

1: ActionMapping mapping = super.getMapping(request, configManager);

2: String actionName = mapping.getName();

3: //接着是一大堆判断数据包开头的方法isGetisPostisPutisDelete方法

4: if (isGet(request)) {

5: mapping.setMethod("index");

6: } else if (isPost(request)) {

7: mapping.setMethod("create");

8: } else if (isGet(request)) {

9: mapping.setMethod("view");

10: } else if (isDelete(request))

11: mapping.setMethod("remove");

12: } else if (isPut(request)) {

13: mapping.setMethod("update"); }

14: //判断包头方法

15: protected boolean isPost(HttpServletRequest request) {

16: return "post".equalsIgnoreCase(request.getMethod());

17: }

我们现在明白了这个类的操作方式,接着要在web.xml文件设置一些参数:

struts.xml:

1: <!--</span><span style="font-family:宋体">设置是否可以在</span><span style="font-family:Consolas">action</span><span style="font-family:宋体">中使用斜线,默认为</span><span style="font-family:Consolas">false</span><span style="font-family:宋体">不可以</span><span style="font-family:Consolas">-->

2: constant name="struts.enable.SlashesInActionNames" value="true" />

3: <!--</span><span style="font-family:宋体">指定请求</span><span style="font-family:Consolas">url</span><span style="font-family:宋体">与</span><span style="font-family:Consolas">action</span><span style="font-family:宋体">映射器</span><span style="font-family:Consolas">-->

4: constant name="struts.mapper.class"

5: value="org.apache.struts2.dispatcher.mapper.Restful2ActionMapper" />

6: <!--</span><span style="font-family:宋体">这里我比较简单,只要一个</span><span style="font-family:Consolas">ID</span><span style="font-family:宋体">就算了</span><span style="font-family:Consolas">-->

7: package name="restful" extends="struts-default" >

8: action name="restful/*" class="demo.ssh.action.RestfulAction">

9: param name="id">{1}param>

10: <!--</span><span style="font-family:宋体">然后是一堆</span><span style="font-family:Consolas">CRUD</span><span style="font-family:宋体">指向的页面</span><span style="font-family:Consolas">-->

11: result name="create">/create.jspresult>

12: action>

13: package>

由于观察实现类,必需在JAVA代码中写死这几个方法名:

RestfulAction代码:

1: public class RestfulAction extends ActionSupport {

3: private Integer id;

5: // getters and setters

6: @Override

7: public String execute() throws Exception {

8: return super.execute();

9: }

10: public String remove(){

11: //TODO READ方法

12: return "delete";

13: //省略一大堆其他实现方法

14: }

然后是JSP页面的:

1: s:form method="POST" action="restful">

2: s:textfield id="id" label="ID" />

3: s:submit value="提交" />

4: s:form>

这里应该大概可以实现ReST风格的URL,但是我的报错希望大家指点一下

然后我喋喋不休,我找到一个比这个更好的struts2-rest-plugin.jar这个包,我开始怀疑Struts官方说明不可信了,有这么好的REST Plugin居然不说,我google一下这个类,网址:http://struts.apache.org/2.x/docs/rest-plugin.html

这个类不仅可以以ReST风格显示URL,而且可以用/product/1.xml 或者 /product/1.json,来返回文件的类型

以下是官方一个example

1: public class OrdersController implements ModelDriven<order> {</order>

2: private OrderManager orderManager;

3: private String id;

4: private Order model;

5:

6: public HttpHeaders show() {

7: model = orderManager.findOrder(id);

8: //下面应该就是实现xml,Json的返回类型格式

9: return new DefaultHttpHeaders("show")

10: .withETag(model.getUniqueStamp())

11: .lastModified(model.getLastModified());

12: }

13: // 和我写的形式一样哈哈

14: public String update() {

15: orderManager.updateOrder(model);

16: return "update";

17: }

18: // getters and setters

19: }

好了,我又要写多次了…to be continue…

分享到:
评论

相关推荐

    设计 REST 风格的 MVC 框架

    实现REST风格的URL映射,首先需要一个强大的URL解析器,能够理解并处理各种复杂的URL结构。这通常涉及到正则表达式的使用,但为了避免手动编写大量重复的正则表达式,可以设计一套灵活的URL匹配规则,如使用占位符来...

    第四章 Spring MVC Rest风格的url、静态资源标签

    在本章中,我们将深入探讨Spring MVC框架中的RESTful风格URL设计以及如何处理静态资源。REST(Representational State Transfer)是一种软件架构风格,常用于Web服务设计,它强调通过HTTP方法(如GET、POST、PUT、...

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

    在IT行业中,REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,主要用于Web服务的构建。RESTful服务接口以其简洁、高效的特点,被广泛应用于分布式系统和互联网应用...

    基于Ajax_REST风格的WebService的设计与实现

    基于Ajax_REST风格的WebService的设计与实现

    rest url详解

    REST(Representational State Transfer,表述性状态转移)是一种软件架构风格,主要应用于网络应用程序设计,尤其是Web服务。它强调通过HTTP协议来实现服务接口,使得客户端和服务器之间的交互变得简单、直观。...

    rest风格+jdbctemplate的CRUD操作.rar

    使用SpringMVC+jdbctemplate实现REST风格的CRUD功能 完成功能:能够对用户进行CRUD操作,界面粗糙,只做演示 运行环境:eclipse2019.03+JDK8+Tomcat9.0.41+MySQL5.5 运用到的技术:spring+springMVC+jdbctemplate+...

    rest风格webservice框架

    RESTLET介绍 Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架。它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务。...该程序已经实现了rest风格的API,二次开发非常方便!

    Jersey Java规范下REST风格Web Service开发框架

    Jersey 的这些特点使得其成为 REST 风格 Web 服务开发的不二之选。下面是一个简单的示例,演示了如何使用 Jersey 构建一个 REST 风格 Web 服务: 首先,我们定义了一个 Student 资源,包含学生的姓名和年龄信息,...

    SpringMVC构建REST接口:第四篇 第一个REST风格的接口的源代码

    在本篇中,我们将深入探讨如何使用Spring MVC构建RESTful接口,主要关注的是在实际项目中创建第一个REST风格接口的源代码实现。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,...

    基于REST风格的RBAC模型研究

    ### 基于REST风格的RBAC模型研究 #### 概述 随着互联网技术的不断发展,Web应用系统规模持续扩大,对于访问控制的需求也日益增长。传统的基于角色的访问控制(Role-Based Access Control, RBAC)模型在面对大规模...

    cxf开发rest风格接口jar

    【标题】"CXF开发REST风格接口所需的最小JAR包" 在Java开发中,Apache CXF是一个广泛使用的开源服务框架,它支持Web服务(SOAP)和RESTful接口的创建。REST(Representational State Transfer)风格的接口已经成为...

    REST框架简单实现

    REST(Representational State Transfer,表述性状态转移)是一种软件架构风格,主要应用于Web服务的设计,以简洁、无状态和基于标准的方式提供接口。REST框架的实现通常涉及到HTTP协议中的四个基本操作:GET、POST...

    rest风格webservice

    REST(Representational State Transfer,表述性状态转移)是一种软件架构风格,主要应用于网络应用程序设计,尤其是Web服务。它强调简洁、无状态和基于标准的接口,使得不同的系统间能够轻松进行交互。REST风格的...

    java rest api入门实例

    目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找...

    wcfrest的实现

    7. **安全性**: WCF REST服务的安全性可以通过多种方式实现,包括基本身份验证、Windows身份验证、证书验证等。配置安全设置以保护服务免受未经授权的访问。 在提供的压缩包"Solution4"中,可能包含了完整的WCF ...

    REST构架风格.doc

    * 无状态服务器:REST 风格应用可以实现交互,但它却天然地具有服务器无状态的特征。 在互联网应用中,系统的各个部分通常既是生产者又是消费者,必须要打破生态环境的界限才能相互协作。REST 架构风格提供了一种...

    ssm框架整合及Rest风格接口实现

    Rest风格接口实现,即RESTful API设计,遵循 Representational State Transfer(表述性状态转移)原则,是一种网络应用程序的设计风格和开发方式,强调资源的识别和操作。在SSM框架下,我们通常使用Spring MVC的@...

    Windows Live Messenger Connect 开发者指南新版

    通过该平台,可以轻松实现身份验证、即时通讯以及活动动态等功能,进一步提升应用程序与 Windows Live 的结合度,提供更加直观的用户体验。 #### 核心应用功能详解 **用户身份** - **快速登录与注册**:每月有数...

Global site tag (gtag.js) - Google Analytics