springmvc学习笔记(19)-RESTful支持
springmvc学习笔记(19)-RESTful支持
标签: springmvc
本文介绍RESTful的概念,并通过一个小样例展示怎样编写RESTful风格的controller和配置前端控制器,最后展示静态资源的解析
概念
首先附上两篇博客链接
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。
REST的样例
查询商品信息。返回json数据。
controller
定义方法,进行url映射使用REST风格的url,将查询商品信息的id传入controller .
输出json使用@ResponseBody
将java对象输出json。
//查询商品信息,输出json
//itemsView/{id}里边的{id}表示占位符。通过@PathVariable获取占位符中的參数。
//@PathVariable中名称要和占位符一致,形參名无需和其一致
//假设占位符中的名称和形參名一致,在@PathVariable能够不指定名称
@RequestMapping("/itemsView/{id}")
public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer items_id)throws Exception{
//调用service查询商品信息
ItemsCustom itemsCustom = itemsService.findItemsById(items_id);
return itemsCustom;
}
@RequestMapping(value="/ itemsView/{id}")
:{×××}
占位符。请求的URL能够是/viewItems/1
或/viewItems/2
,通过在方法中使用@PathVariable
获取{×××}中的×××变量。
@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的參数上。
假设@RequestMapping
中表示为/itemsView/{id}
,id和形參名称一致,@PathVariable
不用指定名称。
REST方法的前端控制器配置
<!-- springmvc前端控制器。rest配置 -->
<servlet>
<servlet-name>springmvc_rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- contextConfigLocation配置springmvc载入的配置文件(配置处理器映射器、适配器等等) 假设不配置contextConfigLocation。默认载入的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml) -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc_rest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
訪问结果如图:
对静态资源的解析
配置前端控制器的url-parttern中指定/
。对静态资源的解析会出现故障,报404错误。
在springmvc.xml中加入静态资源解析方法。
<!-- 静态资源解析
包含 :js、css、img、..
-->
<mvc:resources location="/js/" mapping="/js/**"/>
这时訪问http://localhost:8080/ssm1/js/jquery-1.4.4.min.js
,能够在浏览器中看到js的内容
springmvc学习笔记(19)-RESTful支持的更多相关文章
- SpringMVC学习笔记之---RESTful风格
RESTful风格 (一)什么是RESTful (1)RESTful不是一套标准,只是一套开发方式,构架思想 (2)url更加简洁 (3)有利于不同系统之间的资源共享 (二)概述 RESTful具体来 ...
- springmvc学习笔记---面向移动端支持REST API
前言: springmvc对注解的支持非常灵活和飘逸, 也得web编程少了以往很大一坨配置项. 另一方面移动互联网的到来, 使得REST API变得流行, 甚至成为主流. 因此我们来关注下spring ...
- springmvc学习笔记(简介及使用)
springmvc学习笔记(简介及使用) 工作之余, 回顾了一下springmvc的相关内容, 这次也为后面复习什么的做个标记, 也希望能与大家交流学习, 通过回帖留言等方式表达自己的观点或学习心得. ...
- SpringMVC学习笔记之二(SpringMVC高级参数绑定)
一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...
- 史上最全的SpringMVC学习笔记
SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于Spring ...
- springmvc学习笔记--REST API的异常处理
前言: 最近使用springmvc写了不少rest api, 觉得真是一个好框架. 之前描述的几篇关于rest api的文章, 其实还是不够完善. 比如当遇到参数缺失, 类型不匹配的情况时, 直接抛出 ...
- SpringMVC:学习笔记(8)——文件上传
SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. ...
- springmvc学习笔记(常用注解)
springmvc学习笔记(常用注解) 1. @Controller @Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用@Controller注解定义的控制器有如 ...
- SQL反模式学习笔记19 使用*号,隐式的列
目标:减少输入 反模式:捷径会让你迷失方向 使用通配符和未命名的列能够达到减少输入的目的,但是这个习惯会带来一些危害. 1.破坏代码重构:增加一列后,使用隐式的Insert插入语句报错: 2.查询中使 ...
随机推荐
- python和c#通用一致的des加密采用CBC和PKCS7
在python下可以下载pydes 下载地址为 http://pydes.sourceforge.net/ 在c#下实现des加密较为简单,如下: using System; using System ...
- VBA对指定单元格填充颜色并且赋值
使用VBA对指定的单元格赋值并填充颜色 ====================================================== 代码区域 ==================== ...
- JDBC操作,执行数据库更新操作
目标: 使用Connection对象取得Statement实例 使用Statement进行数据增删改. Statement接口 要对数据库操作,要使用Statement完成.此接口可以使用Connec ...
- ZendServer中关于php.ini不同环境的建议
ZendServer根据开发环境和产品环境的不同情况,对php.ini中的一些选项做了建议设置,列表如下: ;;;;;;;;;;;;;;;;;;; ; Quick Reference ; ;;;;;; ...
- (二)Luence——代码实现索引及搜索
完成需求:使用Lucene完成对数据库中图书信息的索引和搜索功能. 1. 环境准备及工程搭建 1.1 环境准备 mysql5.5+java8+lucene4.10.3(目前最新7.0.1,这里够用就好 ...
- 【Java集合源代码剖析】TreeMap源代码剖析
转载请注明出处:http://blog.csdn.net/ns_code/article/details/36421085 前言 本文不打算延续前几篇的风格(对全部的源代码加入凝视),由于要理解透Tr ...
- PHPCMS V9使用中的一些心得体会
官方演示站:http://v9.demo.phpcms.cn/ 在线帮助文档:http://v9.help.phpcms.cn/ 案例展示:互联网 http://www.i-busi.com 1. ...
- spring中aop以xml配置方式
1 引jar包 springAOP\aopalliance.jar springAOP\aspectjrt.jar springAOP\aspectjweaver.jar springAOP\spri ...
- 点滴积累【JS】---JS小功能(checkbox实现全选和全取消)
效果: 代码: <head runat="server"> <title></title> <script type="text ...
- 在CentOS7系统上执行Scala脚本
在类Unix系统上,可以在scala文件中开头第一行指定脚本的解释程序.如下例: Script.scala #!/usr/bin/env scala println("Hello" ...