SpringMVC-05

1.restful风格

简述:

  1. 每一个URL代表1中资源
  2. 客户端使用GET\POST\PUT\DELETE 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 处理日期参数
posted @ 2019-09-06 22:32  DT-demo  阅读(148)  评论(0编辑  收藏  举报