springmvc学习笔记(19)-RESTful支持
springmvc学习笔记(19)-RESTful支持
标签: springmvc
- springmvc学习笔记19-RESTful支持
- 概念
- REST的样例
- controller
- REST方法的前端控制器配置
- 对静态资源的解析
本文介绍RESTful的概念,并通过一个小样例展示怎样编写RESTful风格的controller和配置前端控制器,最后展示静态资源的解析
概念
首先附上两篇博客链接
- 理解RESTful架构 - 阮一峰的网络日志
- RESTful API 设计指南- 阮一峰的网络日志
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的内容
作者@brianway很多其它文章:个人站点
|
CSDN|
oschina
转载于:https://www.cnblogs.com/lxjshuju/p/7259937.html
springmvc学习笔记(19)-RESTful支持相关推荐
- SpringMVC学习笔记(二)常用注解
SpringMVC学习笔记(二)常用注解 1.RequestParam 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必 ...
- springmvc学习笔记--ueditor和springmvc的集成
springmvc学习笔记--ueditor和springmvc的集成 前言: 在web开发中, 富文本的编辑器真心很重要. 有电商店铺的打理, 新闻稿/博客文章/论坛帖子的编辑等等, 这种所见即所的 ...
- SpringMVC学习笔记
文章目录 SpringMVC学习笔记 Spring MVC 什么是 MVC 设计模式? Spring MVC 的核心组件 Spring MVC 的工作流程 如何使用? Spring MVC 注解 Sp ...
- JavaEE 企业级分布式高级架构师(四)SpringMVC学习笔记(4)
SpringMVC学习笔记 高级应用篇 ControllerAdvice @ControllerAdvice @ModelAttribute 作用于方法 作用于方法参数 @InitBinder @Ex ...
- SpringMVC:学习笔记(5)——数据绑定及表单标签
SpringMVC--数据绑定及表单标签 理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 按照我们以往所学,如果要获取请求的所有参数 ...
- SpringMVC学习笔记整理
SpringMVC学习笔记 以下是我整理的SpringMVC学习笔记: 导入jar包 一:springmvc工作流程. ①. servlet容器初始化一个request请求 ②. Di ...
- Python学习笔记19:列表 III
Python学习笔记19:列表 III 其实这篇笔记标题应该是列表扩展,从列表开始,将涵盖Python中的序列容器. 关于列表的基础知识,可以看我的前两篇文章: Python学习笔记1:列表. Pyt ...
- SpringMVC学习笔记_01
SpringMVC学习笔记_01 1.JAVAEE体系结构 JAVAEE体系结构图如下所示: 2.什么是springmvc? 什么是mvc? Model1 Model2 SpringMVC是什么? S ...
- SpringMVC:学习笔记(11)——依赖注入与@Autowired
SpringMVC:学习笔记(11)--依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许 ...
最新文章
- Ubuntu16.04 配置SSH无密码登录
- Okhttp、Volley和Gson的简单介绍和配合使用
- 【算法】设计算法求所有强连通分量的完整代码(kosaraju算法)
- java 语法 泛型_java-解密泛型语法
- 【精彩实况】第三届大数据科学与工程国际会议
- 大数据定制化服务需在成本和差异化间平衡
- WCF服务编程设计规范(9):中文、中英文对照、英文版资料共享下载
- Yii2 源码分析 - 入口文件执行流程
- 使用 imitator 实现前后端分离开发中的数据模拟与静态资源映射
- 《Java程序员职场全攻略:从小工到专家》连载十四:先挣的是资本,后挣的是钱
- 从Spring中的@Transactional注解说起
- 解决新用户注册Kaggle无法显示验证码的问题
- Firefox Private Network使用方法(极详细)
- 苹果手机屏幕镜像怎么连接电视_创维电视怎么连接手机?图解创维电视连接手机步骤...
- Elasticsearch 特定场景下使用
- web开发实例教程,CSS盒子模型居中方法
- Caused by: org.apache.thrift.TApplicationException: Required field ‘filesAdded‘ is unset
- git merge 冲突解决
- intel opcode
- 局域网内设置共享打印机并连接使用
热门文章
- 【CyberSecurityLearning 36】靶场环境搭建(ubuntu系统安装优化及vulhub安装)
- BugkuCTF-Misc:隐写2
- 关于Layout Weight一些使用技巧
- MyBatis学习总结一
- JVM逃逸分析(同步省略、标量替换、栈上分配)
- PHP类有哪几种,PHP中有哪几种常用类型?
- JZOJ 5638. 【NOI2018模拟4.8】IIIDX
- JZOJ 3660. 【SHTSC2014】信号增幅仪
- 微信为什么不进入鸿蒙生态,马化腾为何迟迟不将微信, 加入任正非的华为鸿蒙生态系统中呢?...
- java 线程一直运行状态_详解JAVA 线程-线程的状态有哪些?它是如何工作的?