• Rest服务


    资源:是网络上的一个实体,或者是网络上的一个具体信息,每一个资源对应一个特定的URI(统一资源定位符),要访问该资源,访问它的URI就可以了。

    表现层:把资源的具体形式表现出来。

    状态转化:每发出一个请求,就代表客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即所有的状态都保存在服务器端,因此客户端想要操作服务器,必须通过某种手段,让服务器发生状态转化。在HTTP协议里面有四种基本操作来实现状态转化:GET用来获取资源、PUT用来更新资源、DELETE用来删除资源、POST用来新建资源。

    REST即Representation State Transfer 表现层状态转化。

    浏览器form表单只支持GET、POST请求,而DELETE、PUT等method并不支持,Spring3.0添加了一个过滤器,可以将这些请求转化为标准的http方法,使得支持GET、POST、DELETE、PUT,各种用法如下:

    package com.seven.demos;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.*;
    
    /**
     * Created by hu on 2016/4/2.
     */
    @RequestMapping("/SpringMvc")
    @Controller
    public class SpringMvcTest {
        private final String SUCCESS="success";
        /*
        * 使用@RequestParam绑定请求参数
        * value:参数名
        * required:是否是必须的。默认是true,表示请求参数中必须包含对应的参数,若不存在,抛出异常
        * */
        @RequestMapping("/handle1")
        public String test1(@RequestParam(value = "userName",required = true)String userName,@RequestParam("age")int age){
            return SUCCESS;
        }
    
        /*
        * 使用@RequestHeader绑定请求报头的属性值
        * 请求头包含了若干属性,服务器可据此获知客户端的信息,通过@RequestHeader即可将请求头中的属性值绑定到处理方法的入参中
        * */
        @RequestMapping("/handle2")
        public String test2(@RequestHeader("Accept-Encoding")String encoding,@RequestHeader("Keep-Alive")long keepAlive){
            return SUCCESS;
        }
        /*
        * 使用@CookieValue绑定请求中的Cookie值
        * */
        @RequestMapping("/handle3")
        public String test3(@CookieValue(value = "sessionId",required = false)String seesionId){
            return SUCCESS;
        }
    }
    

      此外,还可以使用POJO对象绑定请求参数值,SpringMvc会按照参数名和POJO属性名进行自动匹配,自动为该对象填充属性值,并且支持级联属性:

        /*
        * 支持如下的URL
        * .../handle4?name=hu&department.departmentId=123&department.departmentName=Officer
        * */
        @RequestMapping("/handle4")
        public String test4(User user){
            return SUCCESS;
        }
    

      

        /*
        * 还可以使用Servlet API作为入参
        * */
        @RequestMapping("/hanle5")
        public void test5(HttpServletRequest request,HttpServletResponse response){
    
        }
        @RequestMapping("/handle6")
        public ModelAndView test6(HttpSession session){
            return null;
        }
    

      

  • 相关阅读:
    十个MySQL常用函数
    写给三十岁的自己
    EJS 模板引擎
    发送HTTP请求(GET,POST)
    路由模块化
    原生NodeJS封装Express路由
    Hook简介
    State Hook (useState)
    Effect hooks
    useContext
  • 原文地址:https://www.cnblogs.com/hujingwei/p/5347044.html
Copyright © 2020-2023  润新知