首页 > 其他 > 详细

restful风格

时间:2019-09-06 00:51:23      阅读:119      评论:0      收藏:0      [点我收藏+]

restful是一种请求路径的规范。要符合它这种风格,才能实现它这种简便的效果。

资源:在互联网上,所有的事物都可以被抽象为资源
资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。

@RequestMapping(value="{propam}",method=RequestMethod.GET)
    public String findById(@PathVariable("propam") int id)  {
        if(id==3){
            
            throw new RuntimeException("参数错误");
        }
        return "login";
    }

上面的就是使用restful的风格,实现的请求地址的,它是使用get方法,来对资源操作的

method=RequestMethod.GET   表示请求方式为get方式
value="{propam}"      表示从地址栏传过来的值,赋值赋值给propam,
@PathVariable("propam") int id    前面的注解代表的是将propam变量的值赋值给id;
 

使用了路径变量可以让路径变得简单;获得参数更加方便,框架还会自动进行类型转换。
通过路径变量的类型可以约束访问参数,如果类型不一样,则访问不到对应的请求方法,如这里访问是的路径是/test1/1/a,则路径与方法不匹配,而不会是参数转换失败。

对资源操作还有post,put,delete。get表示查询操作、post表示添加操作、put表示修改操作、delete表示删除操作。在与数据库交互时,非常好用的一种风格操作

在使用提交方式为put和delete的时候。我们必须在web.xml文件中配置过滤器。

<!-- 把post请求转化为put或delete请求,然后使用_method表示真正的提交方式 -->
  <filter>
      <filter-name>HiddenHttpMethodFilter</filter-name>
      <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>HiddenHttpMethodFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

控制层的格式:

@ResponseBody
    @RequestMapping(value="{id}",method=RequestMethod.PUT)
    public String upt(@PathVariable() int id,Users user) {
        System.out.println(user+"update");
        return "login";
    }
    @ResponseBody
    @RequestMapping(method=RequestMethod.DELETE)
    public String delete(int id) {
        System.out.println(id+"===============delete");
        
        return "login";
    }

在方法前必须加上@ResponseBody的注解,因为使用ajax,返回的是json对象,不是请求路径了。

异常处理

定义一个全局异常类:

package com.zhiyou100.lw.controller;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
@ControllerAdvice
public class ExceptionController {
    @ExceptionHandler
    public ModelAndView error(Exception ee) {
        ModelAndView mv=new ModelAndView();
        mv.addObject("error",ee.getMessage());
        mv.setViewName("../ya");
        return mv;
    }
}

必须和controller控制层在同一个包下,如果controller类里面的某个方法发生异常,就会直接进入这个异常类,执行该方法,创建一个ModelAndView类的对象,然后调用里面的方法,把错误信息传到前端页面中。

springmvc:注解

  @controller:标注该类为控制层类

  @RequestMapping:标注请求地址

  @ResponseBody:把Java对象转化为json对象

  @Valid:标注校验该数据

  @PathVariable:接收URI地址的值赋值给方法的参数

  @SessionAttribute(names={}):将数据保存到session中

  @RequestParam:为参数起别名;

  @ExceptionAdvice:标注这个类为异常处理类

  @ExceptionHandler:标注这个方法为异常处理方法

  @InitBinder:处理日期时间参数

restful风格

原文:https://www.cnblogs.com/lw97-1014/p/11470407.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!