1. Restful风格url上的参数通过{}占位符绑定

2. 占位符参数名与方法参数名不一致时, 通过@PathVariable绑定

3. 例子

3.1. 新建一个名为SpringMVCRestfull的Web工程, 拷入相关jar包

3.2. 新建一个Item.java的实体类

package com.lywgames.domain;import java.io.Serializable;
import java.util.Date;public class Item implements Serializable{private static final long serialVersionUID = 1L;// 商品idprivate Integer id;// 商品名称private String name;// 商品价格private Double price;// 商品创建时间private Date createtime;// 商品描述private String detail;public Item() { }public Item(Integer id, String name, Double price, Date createtime, String detail) {this.id = id;this.name = name;this.price = price;this.createtime = createtime;this.detail = detail;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}public Date getCreatetime() {return createtime;}public void setCreatetime(Date createtime) {this.createtime = createtime;}public String getDetail() {return detail;}public void setDetail(String detail) {this.detail = detail;}
}

3.3. 新建一个ItemAction.java的处理器

package com.lywgames.web.action;import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.lywgames.domain.Item;@Controller
@RequestMapping("item")
public class ItemAction {List<Item> itemList = new ArrayList<Item>();public ItemAction() {itemList.add(new Item(1, "冰箱", 1999.0, new Date(), "保鲜。"));itemList.add(new Item(2, "电脑", 8888.0, new Date(), "网上冲浪"));itemList.add(new Item(3, "洗衣机", 4000.0, new Date(), "从此不用手。"));itemList.add(new Item(4, "空调", 2600.0, new Date(), "冬天制热, 夏天制冷。"));itemList.add(new Item(5, "液晶电视", 20000.0, new Date(), "曲面屏幕"));}@RequestMapping(value="findAllProducts")public ModelAndView findAllProducts() { ModelAndView mav = new ModelAndView();mav.addObject("itemList", itemList);mav.setViewName("itemList");return mav;}// Restful风格url上的参数通过{}占位符绑定@RequestMapping(value="productDetail/{id}")// 占位符参数名与方法参数名不一致时, 通过@PathVariable绑定public ModelAndView productDetail(@PathVariable("id") Integer ids) { ModelAndView mav = new ModelAndView();mav.addObject("item", itemList.get(ids));mav.setViewName("item");return mav;}}

3.4. 在src目录下新建springmvc.xml配置

3.5. 修改web.xml

3.6. 编写index.jsp

3.7. 编写itemList.jsp

3.8. 编写item.jsp

3.9. 运行项目

3.10. 查询所有商品

3.11. 商品详情, 请求使用了Restfull风格

008_Restfull请求风格相关推荐

  1. 传统请求风格 VS RestFul 风格

    RestFul 风格 概念 Restful就是一个资源定位及资源操作的风格.不是标准也不是协议,只是一种风格.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. 功能 资源:互联网所有 ...

  2. SpringBoot→请求参数、返回参数、文件上传、拦截器、异常处理、定时任务、异步任务

    web请求static静态资源 localhost:8080/cat.png localhost:8080/test.html localhost:8080/abc/test.html localho ...

  3. Springboot 之 RESTFul风格

    3.4 Spring Boot 实现 RESTful 风格 3.4.1 关于RESTFul REST(英文:Representational State Transfer,简称 REST) RESTF ...

  4. CDK8S 研发团队风格

    别人的人生(Life) They say we die twice. Once when the breath leaves our body, and once when the last pers ...

  5. Web Service学习笔记

    Web Service概述 Web Service的定义 W3C组织对其的定义例如以下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的A ...

  6. 架构设计 | 接口幂等性原则,防重复提交Token管理

    本文源码:GitHub·点这里 || GitEE·点这里 一.幂等性概念 1.幂等简介 编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同.就是说,一次和多次请求某一个资源会产 ...

  7. 处理接口超时_架构设计 | 接口幂等性原则,防重复提交Token管理

    一.幂等性概念 1.幂等简介 编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同.就是说,一次和多次请求某一个资源会产生同样的作用影响. 2.HTTP请求 遵循Http协议的请 ...

  8. 大项目微服务架构设计

    根据目前产品存在的问题,针对快速开发.海量用户.大量数据.低延迟等互联网应用的实际需要,通过对业务架构.系统架构.基础架构.技术架构进行分析,采用先进实用的微服务SOA架构重构智慧校园.数字化校园等产 ...

  9. 杭州自学python爬虫_金华自学python网络爬虫直播

    金华自学python网络爬虫直播操作符说明实例.表示任何单个字符?[ ]字符集,对单个字符给出取值范围[abc],表示a,b,c,[a-z]表示a到z的单个字符[^ ]非字符集,对单个字符给出排除范围 ...

最新文章

  1. combobox 取消记忆功能_南京长江大桥桥头堡空间改造设计,记忆与纪念的共鸣
  2. Nacos 快速开始、版本选择、预备环境准备、下载源码或者安装包、从 Github 上下载源码方式、下载编译后压缩包方式、配置nacos、配置集群、启动服务器、服务注册发现和配置管理、关闭服务器
  3. Flink的重启策略
  4. 怎么看生辰八字中五行缺什么
  5. LeetCode 1861. 旋转盒子(前缀和)
  6. LeetCode MySQL 1264. 页面推荐(union)
  7. manjaro 安装tensorflow 【CPU版本】 环境
  8. AI来袭程序猿是否该学习Python了
  9. 不懂 ZooKeeper?没关系,这一篇给你讲的明明白白
  10. 三年硬件工程师薪水_谷歌员工基本薪资曝光:软件工程师最高 241 万,工程副总裁 325 万,产品经理、UX 171 万,硬件工程师 166 万...
  11. 苹果悬赏100万美元找漏洞 辞职的理由找到了!
  12. python程序框架_Python 程序构架浅析
  13. Python+OpenCV:图像平滑
  14. Spring的声明式事务
  15. 利用递归实现简单的树结构菜单
  16. css3学习总结9--CSS3过渡
  17. 三种近距离通信技术(WIFI、蓝牙、NFC)
  18. If you already have a 64-bit JDK installed。。。。
  19. 如何把Windows主机中的文件拉到centOS虚拟机中
  20. 基于python实现的双月模型

热门文章

  1. MyBatis知多少(10)应用程序数据库
  2. Entity Framework简介
  3. 项目中配置log4j步骤
  4. multiple problems have occured
  5. apache camel 的 split 和 aggregate
  6. 新的一年,开始新的学习旅途
  7. linux 设置网络
  8. 阿里巴巴60万年薪抢毕业生 必须是公认技术牛人
  9. (转)Java并发编程:线程池的使用
  10. 启动tomcat时,一直卡在Deploying web application directory这块的解决方案