1、Controller

在Controller类中使用注解后 视图解析器会自动将该类中返回值为String类型的方法进行解析 将返回的字符串进行url的拼接

在这里面需要注意的是 返回的字符串是需要跳转的jsp的文件名 不需要其它任何表示

注册servlet url的注解是 @RequsetMappering 括号中加入url地址 字符串形式 带/

  @RequestMapping("/hello")

注册类的注解是@Controller

@Controller

我们需要明白注解和实现接口这两种方法有什么相同点 和不同点

  • 相同点:都是对业务进行处理的方法 都可以进行数据的传递和视图的跳转 都需要用到add***()方法来进行参数传递

  • 不同点:注解不需要再进行Spring的注册 但是需要扫描包的注解 ,实现接口就是常规流程,写完类去注册bean即可

    ​ 使用注解 我们不需要再创建映射器和适配器 spring会自动帮我们做 ,反之则不然

    ​ 使用注解 返回一个字符串 这个字符串就是我们需要跳转的页面 ,使用接口返回一个view对象,对象中携带了数据和需要跳转的视图

  • 代码不同

public class Controller implements org.springframework.web.servlet.mvc.Controller {public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {ModelAndView view = new ModelAndView();// 编写业务String msg="你好,世界!";//视图跳转view.addObject("msg",msg);view.setViewName("/test");return view;}
}@org.springframework.stereotype.Controller
public class Controller{//设置访问时的servlet路径  即/hello@RequestMapping("/hello")public String  hello(Model model){//封装数据model.addAttribute("mag","你好,世界!");//返回要跳转到jsp页面return "test";}
}

2、RestFul风格

2.1、什么是Restful风格?

Restfule风格是一种软件架构风格,而不是标准,只是提供了一种设计原则和约束条件。主要适用于客户端和服务器端交互的软件。是基于http协议实现。目的是为了提高系统的可伸缩性,降低应用之间的耦合度,方便框架分布式处理程序。基于这个风格的软件可更加的简单、更有层次,更易于实现缓存的机制。
在resultful风格中,用户请求的url使用同一个URL而用请求方式:get/post/delete/put等方式对请求的处理方法进行区分。这样可以在前后台分离的开发中让前端开发人员不会对请求的资源地址产生混淆,形成一个统一的接口。‘

举个例子

传统的URL地址是问号传参 即

http://localhost:8080/add?a=1,b=2

使用RestFul风格后

http://localhost:8080/add/1/2

我们可以看出 传统url参数之间用,分割且参数可见 而RestFul是使用/将文件、参数等内容进行分割的 看上去更加渐变

并且尽管是相同的URL 它的执行结果也有可能是不同的 因为RestFul定义了4中资源请求的方式 get/post/delete/put 使用不同的方式就会产生不同的结果

为什么相同的url地址会产生了不同的结果呢 原因就是RestFul进行了不同请求的设置 而这些不同的请求又有了不同的操作

  @GetMapping("/add/{a}/{b}")public String test(@PathVariable int a, @PathVariable int b, Model model){int c=a+b;model.addAttribute("mag","结果为:"+c);return "test";}@PostMapping("/add/{a}/{b}")public String test1(@PathVariable int a, @PathVariable int b, Model model){int c=a-b;model.addAttribute("mag","结果为:"+c);return "test";}

通过看原码我们知道了 GET方式走了一个加法操作 而POST方法则进行了一个减法的操作

2.2、为什么使用Restful风格?

  • 因为它简化了URL的地址 是RUL看上去更加整洁
  • 确保了数据的安全性 就像例子一样 它更像是一种接口 用户只管用 但并不需要知道它的内部是怎么实现的

2.3、RestFul风格的两种实现形式

首先 不管是哪一种实现方式 我们都需要给参数添加(@PathVariable 的注解 表明它是一个RestFul的一个参数

//方法一@RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.GET)
//方法二
@PostMapping("/add/{a}/{b}")

两种方法都可以

Controller与RestFul风格相关推荐

  1. SpringMVC自学日志04(Controller 及 RestFul风格 )

    控制器Controller 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现. 控制器负责解析用户的请求并将其转换为一个模型. 在Spring MVC中一个控制器类可以包含多个 ...

  2. 【SpringMVC 笔记】控制器 Controller 与 RestFul 风格

    SpringMVC 笔记 控制器 Controller 实现 Controller 接口 创建控制器 @Controller 注解创建控制器 @RequestMapping 使用 method 属性指 ...

  3. springboot 集成jpa_基于Spring Boot+JPA Restful 风格的数据

    第一章 Restful简介 Restful是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服 务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次, ...

  4. layuiajax提交表单控制层代码_究竟怎么用Restful风格编代码必看这篇。(二)

    点击上方"IT咸鱼",星标公众号每天分享技术栈,开发工具等 简单急记几个小点:RequestMapping注解的使用和里面涉及到的参数用途和写法 @RequestMapping(& ...

  5. ssm框架restful风格实现增删改查

    1.什么是restful风格 大家在做Web开发的过程中,method常用的值是get和post. 可事实上,method值还可以是put和delete等等其他值. 既然method值如此丰富,那么就 ...

  6. 基于 Spring Boot 的 Restful 风格实现增删改查

    前言 在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练. ...

  7. SpringMVC响应Restful风格请求404

    一.问题 在学习Springmvc时,使用Restful风格的url,页面提示404错误.为找到原因,编写一个简单的Restful测试用例如下: jsp页面: <a href="use ...

  8. restful风格案例

    RestFul风格案例 理解 一.原则:通过四种不同的请求方式来表示CRUD操作 问题:页面请求只支持get/post方式,并不支持其他方式,如何处理? 二.实际操作时代码 1.html 2.hand ...

  9. Spring MVC开发RESTful风格的URI

    一.写在前面 RESTful结构可参考博文:https://blog.csdn.net/codejas/article/details/79799386 我们知道在HTTP 协议中,有四种操作方式的动 ...

最新文章

  1. Tkinter的事件绑定
  2. css样式命名规则(仅供参考)
  3. CentOS 5.X用第三方源安装PHP MySQL Apache等
  4. 怎样在PropertySheet中添加按钮
  5. 如何成为一个技术“牛人”
  6. HTML5的little,HTML 5
  7. ZooKeeper系列(三)
  8. MyBatis源码分析(三):MyBatis初始化(配置文件读取和解析)
  9. Python中文问题
  10. 换主板 oracle 蓝屏,图文说明win7系统更换主板后开机蓝屏的办法
  11. 【框架设计】泛型的应用
  12. STM32CubeMX 安装提示需要java环境(1.8.0_45)
  13. pe系统怎么安装linux系统教程,U盘安装windows+ubuntu+winpe三系统详细教程
  14. 交大天坑专业转码记录
  15. 网易云音乐Eason Chen 歌词词云
  16. STM32初学者KILE5软件的使用
  17. iVX案例制作(1)—图片查看器
  18. 弘辽科技:新手前期如何开网店?
  19. 【二叉树】根据后续和中序遍历输出前序遍历 [建树+非建树做法]
  20. 计算机网教答辩,计算机论文答辩老师一般问些什么问题?需要怎么回答?

热门文章

  1. 【前端】ionic4 card卡片显示随机颜色
  2. java虚拟机-java内存模型与线程
  3. 小学生计算机汉字输入课程教案,小学信息技术《汉字输入一点通》教学设计
  4. 可视化编程已经能取代高级语言了吗?
  5. php配置redis哨兵模式,详解Redis哨兵模式
  6. 【数据库】SQL 语句学习
  7. GET,POST,PUT,DELETE的区别
  8. _beginthreadex创建多线程的用法
  9. 羽毛球是世界上飞行最快的球
  10. python 二分类的实例_深入理解GBDT二分类算法