RESTful简单介绍(入门)

1.1      什么是RESTful

http://www.ruanyifeng.com/blog/2011/09/restful.html

RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。

RESTful(即Representational State Transfer的缩写)其实是一个开发理念,是对http的很好的诠释。

1、对url进行规范,写RESTful格式的url

非REST的url:http://...../queryItems.action?id=001&type=T01

REST的url风格:http://..../items/001

特点:url简洁,将参数通过url传到服务端

2、http的方法规范

不管是删除、添加、更新。。使用url是一致的,如果进行删除,需要设置http的方法为delete,同理添加。。。

后台controller方法:判断http方法,如果是delete执行删除,如果是post执行添加。

3、对http的contentType规范

请求时指定contentType,要json数据,设置成json格式的type。。

1.2      REST的例子

1.2.1     需求

查询商品信息,返回json数据。

1.2.2     controller

定义方法,进行url映射使用REST风格的url,将查询商品信息的id传入controller .

输出json使用@ResponseBody将java对象输出json。

 1     //查询商品信息,输出json
 2     ///itemsView/{id}里边的{id}表示占位符,通过@PathVariable获取占位符中的参数,
 3     //如果占位符中的名称和形参名一致,在@PathVariable可以不指定名称
 4     @RequestMapping("/itemsView/{id}")
 5     public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id)throws Exception{
 6
 7         //调用service查询商品信息
 8         ItemsCustom itemsCustom = itemsService.findItemsById(id);
 9
10         return itemsCustom;
11
12     }

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

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

如果RequestMapping中表示为"/ itemsView /{id}",id和形参名称一致,@PathVariable不用指定名称。

1.2.3     REST方法的前端控制器配置

在web.xml配置:

 1     <!-- springmvc前端控制器 -->
 2     <servlet>
 3         <servlet-name>springmvc</servlet-name>
 4         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 5         <!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等) 如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml) -->
 6         <init-param>
 7             <param-name>contextConfigLocation</param-name>
 8             <param-value>classpath:spring/springmvc.xml</param-value>
 9         </init-param>
10     </servlet>
11
12     <servlet-mapping>
13         <servlet-name>springmvc</servlet-name>
14         <!-- 第一种:*.action,访问以.action结尾 由DispatcherServlet进行解析
15             第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析
16             使用此种方式可以实现 RESTful风格的url
17             第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时, 仍然会由DispatcherServlet解析jsp地址,不能根据jsp页面找到handler,会报错。 -->
18         <url-pattern>*.action</url-pattern>
19     </servlet-mapping>
20
21
22     <!-- springmvc前端控制器,rest配置 -->
23     <servlet>
24         <servlet-name>springmvc_rest</servlet-name>
25         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
26         <!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等) 如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml) -->
27         <init-param>
28             <param-name>contextConfigLocation</param-name>
29             <param-value>classpath:spring/springmvc.xml</param-value>
30         </init-param>
31     </servlet>
32
33     <servlet-mapping>
34         <servlet-name>springmvc_rest</servlet-name>
35         <url-pattern>/</url-pattern>
36     </servlet-mapping>

1.3      对静态资源的解析

配置前端控制器的url-parttern中指定/,对静态资源的解析出现问题:

在springmvc.xml中添加静态资源解析方法。

1     <!-- 静态资源解析
2     包括 :js、css、img、..
3      -->
4      <mvc:resources location="/js/" mapping="/js/**"/>
5      <mvc:resources location="/img/" mapping="/img/**"/>

1.4      访问

时间: 2024-08-15 15:59:23

RESTful简单介绍(入门)的相关文章

Ansible的简单介绍入门

Ansible简单说明 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: (1).连接插件connectionplugins:负责和被监控端实现通信: (2).host inventory:

漫游Kafka入门篇之简单介绍

原文地址:http://blog.csdn.net/honglei915/article/details/37564521 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以topic为单位进行归纳. 将向Kafka topic发布消息的程序成为producers. 将预订topics并消费消息的程序成为consumer. Kafka以集群的方式运行,

Restful WebService简单介绍

RESTful Web Services已经渐渐开始流行, 主要是用于解决异构系统之间的通信问题.很多网站和应用提供的API,都是基于RESTful风格的Web Services,比较就有Google,现在就来简单的介绍下它. 一. RESTful Web Services是什么? REST(Representation State Transfer)描述了一种设计Web应用的架构风格,它是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是 RESTful风格的.而符合RESTf

Mahout学习之Mahout简单介绍、安装、配置、入门程序測试

一.Mahout简单介绍 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个Mahout) 步入正文啦: Mahout 是一个非常强大的数据挖掘工具,是一个分布式机器学习算法的集合,包含:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的长处就是基于hadoop实现,把非常多曾经执行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法

OpenStack 入门学习之四:icehouse版本中Heat的简单介绍

Heat简介 Heat是OpenStack的负责编排计划的主要项目.它可以基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性.目前Heat自身的模板格式(HOT)正在不停的改进,同时也支持AWS CloudFormation 模板(CFN),HOT的目标是在不远的将来可以完全的替代CFN. Heat提供了一个OpenStack的原生REST API和CloudFormation兼容的查询API. Heat的工作原理 Heat主要是基于模板文件

软件入门的知识之程序设计语言Java和C#的简单介绍和对比[图]

软件入门的知识之程序设计语言Java和C#的简单介绍和对比[图]:前言:要做软件就必然会涉及到程序设计语言,它是什么?有哪些特点?又有哪几部分组成的呢?在这里我们为大家做了一个总结,希望可以通过这些内容让大家对于程序设计语言有一个大概的认识.基本概念:1.低级/高级计算机的硬件只可以识别由1.0组成的机器指令程序,所以机器指令是最基本的计算机语言.由于机器指令是由特定的计算机系统所固有的.面向机器的语言,所以使用机器语言进行程序设计,效率低.可读性差.难以理解,而且也不便修改和维护.后来出现了由

SpringCloud超简单的入门(1)--一些简单的介绍

简介 简单来说,springcloud的就是由一组springboot应用(服务)组成,相互之间通过REST等方式进行通信. 两个springboot应用,其中一个作为服务提供者,一个作为服务消费者,我认为这就构成了一个最简单的springcloud应用,之后其他的工具都是为这两个应用来服务的. 我们来看下,官方给的架构图,可以看出,核心就是microservices,其他都是为了保证microservices正常运转的工具. 架构图 既然是最简单的入门教程,那么其他概念什么的就不说了,下面咱们

Python常用的库简单介绍一下

Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构建格式化的输出. difflib ,[Python]标准库,计算文本差异 . Levenshtein ,快速计算字符串相似度. Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. shortuuid ,一组简洁URL/UUID函数库. ftfy ,Uni

Maven实战之初识MavenMaven的简单介绍

Maven实战之初识MavenMaven的简单介绍 作用:Maven主要用于项目的构建,管理项目的依赖以及项目的信息(自动化构建.编译.单元测试.生成文档.打包.部署) 优势:相对于Ant.Make等,Maven抽象构建过程,提供构建任务的实现,自动化构建,有效地提高了开发效率,使开发人员可以集中精力在主要的开发任务上.而且Maven是跨平台工具,意味着在主流操作系统中,Maven都提供了对应的技术支持 使用注意:需要在JDK1.4及以上版本使用 Maven的安装下载地址:Maven下载地址,选