RESTful架构,REST即Representational State Transfer。表现层状态转换,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以得到越来越多网站的采用。

RESTful其实就是一个开发理念,是对http的很好诠释。

RESTful遵循的理念:
  1、对url进行规范,书写为RESTful格式的url。
  2、对http的方法规范。
  3、对http的contentType进行规范。请求时指定contentType,需要Json数据,设置成Json格式的type
  非REST的url:http://.../goods/queryGoods.action?id=1
  REST的url:http://.../goods/1

REST的url特点:

  url简洁,将参数通过url传到服务器。无论是增(post)、删(delete)、该(put)、查(get)使用url是一致的,且需要设置对象的http方法。而后台的controller方法,则需要判断http方法。

//REST实例:查询返回Json
@RequestMapping("/goodsView/{id}")
public @ResponseBody GoodsCustom goodsView(@PathVariable("id") Integer id)throws Exception{GoodsCustom goodsCustom=......return goodsCustom;
}

URL模板映射:

  @RequestMapping("/goodsView/{id}"):{XXX}是占位符,请求的URL可以是“/goodsView/1”或“/goodsView/2”,通过在方法中使用@PathVariable获取{XXX}中的XXX变量。

  @PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。

  使用URL模板映射需要配置REST的前端控制器。在web.xml中配置前端控制器:

<!-- springmvc的REST前端控制器和springmvc前端控制器可以并存-->
<servlet><servlet-name>springmvc_rest</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param>
</servlet>
<servlet-mapping><servlet-name>springmvc_rest</servlet-name><url-pattern>/</url-pattern>
</servlet-mapping>

静态资源的解析:

  对静态资源的解析需要配置前端控制器的url-pattern中指定 /,则会对静态资源的解析出现问题。这时,则需要在springmvc.xml中添加静态资源解析方法:

<!-- 静态资源解析 -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/img/" mapping="/img/**"/>
<!-- ...... -->

转载于:https://www.cnblogs.com/zltao/p/10665941.html

.Net转Java自学之路—SpringMVC框架篇八(RESTful支持)相关推荐

  1. .Net转Java自学之路—Spring框架篇二(IOC注解、AOP)

    Spring的Bean操作(注解方式): 注解:代码中特殊的标记,使用注解可以完成相关功能. @注解名称(属性名称=属性值) 注解可以使用在类.方法.属性上面. 主要用途:可以替代配置文件来创建对象和 ...

  2. .Net转Java自学之路—Hibernate框架篇三(查询方式)

    Hibernate查询方式: 1.对象导航查询:根据id查询出一的数据,再根据一的查询结果查询多的数据. OnlyClass only=session.get(OnlyClass.class,1); ...

  3. .Net转Java自学之路—基础巩固篇八—总结(封装、继承、多态)

    巴拉巴拉 转载于:https://www.cnblogs.com/zltao/p/9074944.html

  4. .Net转Java自学之路—基础巩固篇一

    一.基础常用dos命令行: 1.dir:陈列目录下的文件及文件夹 2.md:创建目录 3.rd:删除目录 4.cd:进入制定目录 5.cd..:返回上一级目录 6.cd\:退回跟目录 7.del:删除 ...

  5. .Net转Java自学之路—基础巩固篇二十(Lambda)

    Lambda表达式 语义本身就代表了做事情的动作,没有对象的概念在其中. Java中使用Lambda表达式的前提:必须有 函数式接口. 概念:有且只有一个的抽象方法的接口就叫函数式接口. 为确保当前接 ...

  6. .Net转Java自学之路—基础巩固篇十八(正则)

    正则表达式: 正则就是用于操作字符串的规则.其中是以一些符号来标识规则. 字符类: [] :范围 - :连接符 ^ :非 预定义字符类: . :任何字符 \d :数字 \D :非数字 \s :空白字符 ...

  7. 零基础 Java 自学之路(2021年最新版)

    前言 无论你是否想自学 Java,认真看完本文,你以后的职场生涯至少少走1年弯路. 本文会持续更新,建议收藏. 初衷 在 CSDN 上经常有同学私聊我询问 "如何自学 Java". ...

  8. JAVA自学之路 [原创 - 尚学堂科技 - 马士兵老师]

    (我觉得看了之后挺不错的所以分享一下) JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3 ...

  9. JAVA自学之路——马士兵

    JAVA自学之路--马士兵  2007年11月06日 星期二 05:47 P.M.[原创 - 尚学堂科技 - 马士兵老师]    JAVA自学之路 一:学会选择  [转载请注明出处:http://ww ...

最新文章

  1. React Native 网络层分析
  2. CloudBees发布“Jenkins X”:面向部署到Kubernetes中的现代云应用的CI/CD解决方案
  3. 姍姍遲來的iPhone文檔處理功能
  4. Oracle中concat与||区别(以及与mysql中concat函数区别)
  5. 采用信号量机制实现消费者与生产者的线程同步_你还能聊聊常用的进程同步算法? 上篇[五]...
  6. c语言全段字符的类别,言语理解规律整理d0c.doc
  7. Silverlight HTML5 Flash - RIA技术之三足鼎立
  8. 挂载jffs2文件系统遇到的问题
  9. python学习day1:初识python
  10. 帝豪gs车机系统wince_酷车:10万左右买辆“网红车”,名爵ZS和帝豪GS怎么选?...
  11. 精读CSS权威指南第四版(1)
  12. 3D动态相册实现代码
  13. 建设智慧城市,需要解决哪些问题?
  14. 判断USB打印机离线状态
  15. 将学生信息按照总分排名然后分别保存较高的几位和较低的几位学生信息到两个不同的文件
  16. 女性内分泌失调的8种症状
  17. ファイルダウンロード
  18. android 热更新 方案,热更新-热更新app开发的两种系统方案!
  19. OK6410A移植mw150us无线网卡驱动
  20. PG的管道模式如何工作

热门文章

  1. 【C++基础】C++11的noexcept声明符 与 异常传播
  2. go zap去除程序名称_适用于Zip,Zap和Zoom游戏的Python程序
  3. kotlin 判断数字_Kotlin程序检查数字是偶数还是奇数
  4. uva 11995——I Can Guess the Data Structure!
  5. 四种方法实现数组交换
  6. mysql 学习笔记07日期相关函数01
  7. C++ 多态在异常中的使用
  8. 用栈和递归求解迷宫问题
  9. mysql命令行如何建库_MySQL心得2--命令行方式建库和表
  10. 【剑指offer】_15数组中重复的数字