• SpringMVC-05


    1.restful风格

    简述:

    1. 每一个URL代表1中资源
    2. 客户端使用GETPOSTPUTDELETE 4个表示操作方式的动词和服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新),PUT用来更新资源,DELETE用于删除资源
    3. 通过操作资源的表现形式来操作资源

    1.1.控制层实现代码

    //restful--->地址为user/1   1:表示参数id
    //method:表示该方法的处理方式为get【查询】请求(post【添加】,delete【删除】,put【更新】)
        @RequestMapping(value="{uid}",method=RequestMethod.GET) //查询操作
         public String findById(@PathVariable("uid") int id) {
               return "list";
         }
    
    //springmvc 提供了一个过滤器 (HiddenHttpMethodFilter.class)将post请求转化为put和delete
    //需要在xml中配置
        @RequestMapping(value="{uid}",method=RequestMethod.PUT) //更新操作
        @ResponseBody
         public String findById(@PathVariable("uid") int id) {
               return "list";
         }
    

    1.2.请求方式过滤器配置

    <!--
        把post请求转化为put或者delete请求方式
        使用真正的 _method 的真正提交方式
    -->
    <filter>
         <filter-name>HiddenHttpMethodFilter</filter-name>
        <!--
            过滤器的路径
            spring-web-4.2.2.RELEASE.jar==org.springframework.web.filter==HiddenHttpMethodFilter.class
        -->
         <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
         <filter-name>HiddenHttpMethodFilter</filter-name>
         <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    1.3 ajax实现(简单的一个实现)

    $.ajax({
        url:"user",
        type:"post",
        data:{
            _method:"put"
        },
        success:function(){
            
        }
    });
    

    2.异常处理

    2.1在相应的类创建一个方法(局部异常)

    iserrorPage="true"(异常页面)

    	@ExceptionHandler //该类发生异常时会由该方法处理
         public ModelAndView exception(Exception exception) {
               ModelAndView mv = new ModelAndView();
               mv.addObject("error", exception.getMessage());
               mv.setViewName("error");
               return mv;
         }
    

    2.2定义一个异常类(针对全局异常)

    package com.hw.lb.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 exception(Exception exception) {
               ModelAndView mv = new ModelAndView();
               mv.addObject("error", exception.getMessage());
               mv.setViewName("register");
               return mv;
         }
    }
    

    3.springmvc的注解:

    @controller 标注该类为控制层类
    @RequestMapping 标注请求的地址
    @ResponseBody 把java对象转化为json对象
    @Vaild 标注校验该数据
    @PathVariable 接收url地址的值赋给方法参数
    @SessionAttributes 转化session对象
    @RequestParam 接收参数
    @ExceptionAdvice
    @ExceptionHander 标注一个方法为异常处理的方法
    @InitBinder 处理日期参数
  • 相关阅读:
    模电电路分析
    正式答辩提问
    Dockerfile
    Docker常用命令
    docker镜像与容器
    Docker容器与容器数据
    docker命令自动安装
    Docker与虚拟机
    Java Lambda表达式 Stream
    Java Lambda表达式
  • 原文地址:https://www.cnblogs.com/DT-Demo/p/11478644.html
Copyright © 2020-2023  润新知