• springMVC中添加restful 风格


    RESTful架构:是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。

    关于RESTful架构给你一个链接讲的挺好的:http://www.ruanyifeng.com/blog/2011/09/restful

    这里我结合springMVC讲解一下RESTful在springMVC中的使用,在讲之前先来看看RESTful提倡哪些做法:

    1. 他会对url进行规范:

        a) 非REST风格的url:localhost:8080/springmvc?name=小白&password=123;

        b) REST风格的url:localhost:8080/springmvc/小白/123;

      分析:

      1. 直观上看是不是比较简洁
      2. 看不懂:隐藏了参数名称,安全性,防止被攻击
      3. 所有的url都可以当成是资源
    1. 对http的方法进行规范

          a)不管是删除,添加,更新….使用的url都是一致,那么如果需要删除,就把http的方法设置删除

          b) 控制器:通过判断http的方法来执行操作(增删改查)

         目前这种做法还没有被广泛采用

      3.对contentType也进行规范

          a) 就是在请求是指定contentType的类型(json交互中就有体现)

      4.接下来看看springMVC中怎么实现RESTful风格

      首先:你在请求路径上@RequestMapping(value = "/hello_rest/{name}/{password}")需要用{}来动态匹配参数

      其次:方法的形参上要@PathVariable("name")来匹配上面的参数,这里@PathVariable中的字符串必须和你{}中的名字一致

      访问路径:localhost:8080/工程名/hello_rest/xx/xx(其中xx就是你随便填写的内容,它会匹配到后台的name和password的值)

        比如:

          你输入的路径是:localhost:8080/工程名/hello_rest/小白/admin

          后台会匹配到:name="小白",password="admin"

    复制代码
    /**
         * 1.路径的变化:/hello_rest/{name}/{password}其中{}相当于可以的参数
         * 2.参数的写法:需要利用@PathVariable("name")来匹配上面的参数
         * 3.至于@PathVariable后面跟的形参你就可以随便命名了
         * @param username
         * @param password
         * @return
         */
        @RequestMapping(value = "/hello_rest/{name}/{password}")
        public String hello_rest(@PathVariable("name") String username,
                @PathVariable("password") String password) {
            if("admin".equals(username)&"123".equals(password)){
                System.out.println("登录成功");
                return "hello";
            }
            return "hello";
        }
        
    复制代码

       这种写法和第一种类似,只不过是把{}动态匹配参数的放到前面去了,其原理是一样的,不多说,直接看看这个访问路径的写法就好

       访问路径:localhost:8080/工程名/xx/xx/hello_rest

      只是把参数由后面放到前面去了而已。

    复制代码
    /**
         * 1.路径的变化:/{name}/{password}/hello_rest其中{}相当于可以的参数
         * 2.参数的写法:需要利用@PathVariable("name")来匹配上面的参数
         * 3.至于@PathVariable后面跟的形参你就可以随便命名了
         * @param username
         * @param password
         * @return
         */
        @RequestMapping(value = "/{name}/{password}/hello_rest")
        public String hello_rest2(@PathVariable("name") String username,
                @PathVariable("password") String password) {
            if("admin".equals(username)&"123".equals(password)){
                System.out.println("登录成功");
                return "hello";
            }
            return "hello";
        }
  • 相关阅读:
    计算机安装Fedora操作系统——Win10+Linux双系统
    性能测试——压力测试指标
    系统吞吐量(TPS)、用户并发量、性能测试概念和公式
    在 数学吧 看到一个 极限题
    东方学帝 和 K歌之王 的 科学观 和 科学方法 的 对比
    走一走 欧拉先生 走过 的 路
    推导一个 经典物理 里 的 黑洞 的 坍缩半径
    四色定理 太简单了 , 来 玩 n 维空间 里 的 x 色定理
    今天看到了一个 求 平面图形 Centroid 的 办法
    记录一下这几天的一些讨论
  • 原文地址:https://www.cnblogs.com/yizhiamumu/p/8854908.html
Copyright © 2020-2023  润新知