SpringMVC -- RESTful支持

作者: Mr_欢先生 | 来源:发表于2017-10-02 14:32 被阅读121次

    一.RESTful简单介绍

    RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
    RESTful(即Representational State Transfer的缩写)其实是一个开发理念,是对http的很好的诠释。

    • 对url进行规范,写RESTful格式的url
      • 非REST的url:http://...../queryItems.action?id=001&type=T01
      • REST的url风格:http://..../items/001
    • http的方法规范
      • 不管是删除、添加、更新,等等。使用url是一致的,如果进行删除,需要设置http的方法为delete,其他同理。
      • 后台controller方法:判断http方法,如果是delete执行删除,如果是post执行添加。
    • 对http的contentType规范
      • 请求时指定contentType,要json数据,设置成json格式的type,要key/value 数据设置成key/value的格式type。

    二.测试案例

    • 查询用户信息,输出json
    • itemsView/{id}里边的{id}表示占位符,通过@PathVariable获取占位符中的参数,
    • @PathVariable中名称要和占位符一致,形参名无需和其一致
    • 如果占位符中的名称和形参名一致,在@PathVariable可以不指定名称

    定义方法,进行url映射使用REST风格的url,将查询用户信息的id传入controller .

    @RequestMapping("/itemsView/{id}")
        public @ResponseBody List<User> itemsView(@PathVariable("id") Integer id)throws Exception{
            //调用service查询商品信息
            List<User> user = userService.findUserById(id);
            return user;
        }
    

    @RequestMapping(value="/ itemsView/{id}"){×××}占位符,请求的URL可以是/viewItems/1121/viewItems/212121,通过在方法中使用@PathVariable获取{×××}中的×××变量。
    @PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。如果@RequestMapping中表示为/itemsView/{id},id和形参称一致,@PathVariable不用指定名称。

    三.对静态资源的解析

    • 配置前端控制器的url-parttern中指定/,对静态资源的解析会出现问题,报404错误。
    • 在springmvc.xml中添加静态资源解析方法。
    <!--对静态资源的解析-->
        <mvc:resources mapping="/js/**" location="/js/"/>
        <mvc:resources mapping="/css/**" location="/css/"/>
        <mvc:resources mapping="/img/**" location="/img/"/>
    

    相关文章

      网友评论

        本文标题:SpringMVC -- RESTful支持

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