美文网首页
RestFul风格

RestFul风格

作者: 神豪VS勇士赢 | 来源:发表于2018-08-10 21:33 被阅读19次

    RESTful(即Representational State Transfer的缩写)其实是一个开发理念,是对http很好的诠释。
    对url进行规范,写RESTful格式的url 【get请求】
    非REST的url:http://../query.action?id=3&type=t01(传递的数据大小有限制)
    REST的url风格:http://../query/3/t01[需要服务端指定是什么参数]
    特点:url简洁,将参数通过url传到服务端

    主要针对get请求

    非restful:传参数:(key=value)

    http://域名/log/addservlet.do?lid=3&msg=user

    RestFull风格:简化后不需要key [可读性差]

    http://域名/log/addservlet/3/user

    需要在后台程序区分

    开发流程:
    第一步:前端控制器拦截简化

    <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
    </servlet-mapping>

    拦截所有后,静态资源也被拦截了,需要释放不被拦截。
    需要多配置静态资源
    /js/**包含js目录以及所有子目录中的所有文件

    <mvc:resources mapping="/js/" location="/js/"></mvc:resources>
    <mvc:resources mapping="/css/
    " location="/css/"></mvc:resources>
    <mvc:resources mapping="/img/**" location="/img/"></mvc:resources>

    第二步:接受RestFul风格参数

    @RequestMapping(value=“/view/{id}”):{×××}占位符,请求的URL可以是"/view/1",通过在方法中使用@PathVariable获取{×××}中的×××变量。
    @PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。
    如果RequestMapping中表示为“/items/{id}”,id和形参名称一致。
    图解如下:


    image.png

    核心代码:
    @Controller
    public class LogAction {
    //需要给映射的路径用占位符号,来接受动态的参数。
    @RequestMapping("/addLog/{lid}/{msg}")
    public String addLog(@PathVariable Integer lid,@PathVariable String msg){//需要接受通过url get路径传递过来的动态参数
    System.out.println(lid);
    System.out.println(msg);
    return "index";
    }
    }
    第三步:Restful测试

    image.png

    若是POST请求,不需要加占位符。正常接受。(回归到之前讲解的方式)


    image.png

    Restful跳转注意(扩展)

    因为运用了逻辑视图,跳转没有后缀。
    如果使用restfull风格,跳转功能方法,也没有后缀。
    如果不注意:会导致:跳转页面的地址和跳转action的地址名称一致。

    @RequestMapping("/update")
    public String updateLog(){
    return "list";//希望跳转到列表的action,默认找的是逻辑页面
    }
    //跳转到action
    @RequestMapping("/update2")
    public String updateLog2(){
    return "forward:list";//到列表的action
    }

    @RequestMapping("/list")
    public String listLog(){
    System.out.println("list.....");
    return "list";
    }

    使用了restfull风格,在功能方法之间跳转,需要加forward或者redirect
    也需要避免跳页面和action重名

    相关文章

      网友评论

          本文标题:RestFul风格

          本文链接:https://www.haomeiwen.com/subject/axalbftx.html