springmvc快速复习二

一:控制器方法响应方式
在springmvc1中有介绍

设置重定向:
	返回值为String时: return "redirect:http://www.baidu.com";
	返回值为ModelAndView时: modelAndView.setViewName("redirect:http://www.baidu.com");
	
设置转发:return "forward:/result/pageByModel.do";
			modelAndView.setViewName("forward:/result/pageByModel.do");

这里我们复习一些转发和重定向的区别
请求转发 服务器内部行为 重定向服务器外部行为
请求转发最多浏览器一次请求一次响应 重定向服务器外部行为至少两次响应
请求转发数据不丢失 重定向数据丢失

前端发送异步请求 发送ajax请求(重点)
这里做简单介绍
引入js文件Vue axios
axios.get("/user/testGet.do?id=1").then((res)=>{响应后执行的}).catch((err)=>{响应后异常执行的})
axios.post("/user/testPost.do", param).then((res)=>{响应后执行的}).catch((err)=>{响应后异常执行的});
json数据支持需要引入依赖:

后端接收数据@RequestBody:
						可以作用在方法参数中用来接收json数据
响应数据@ResponseBody:
						可以作用在类上 或方法上 用来响应json数据

前端控制器拦截
在springmvc1中有介绍后面会将*.do替换成/
*.do 只拦截 后缀为 do的请求,其他不拦截
/ 拦截所有请求,包括静态资源(img, css, js, plugins,htiml等除了.jsp)
可以通过来释放拦的请求 释放资源 在后期前后端分离不需要配置
方法一:

mvc:default-servlet-handler/
方法二:

<mvc:resources location="/js/" mapping="/js/**"/>
RESTful风格(重点)
web.xml中配置

DispatcherServlet

/

为了安全性更高 不要展示给用户增删改查
POST(增)、DELETE(删)、PUT(改)、GET(查)
@XxxMapping替换@RequertMapping(method = RequestMethod.POST)

	举例获取id值:
	@DeleteMapping("/{id}")
	@PathVariable("id") Integer id
前端:axios.get("/user/1").then((res)=>{console.log(res);});

SpringMVC文件上传:
表单的数据编码enctype必须是:multipart/form-data
POST请求方式
引入依赖:

commons-fileupload
commons-fileupload
1.4

配置上传文件最大值:在spring-mvc.xml中





统一异常处理:
1.自定义异常类继承RuntimeException
构造方法中调用super("传入异常信息"),
2.编写自定义异常处理器
@ControllerAdvice 修饰类
一般这个处理器中至少定义两个处理方法
@ExceptionHandler:修饰方法

	@ExceptionHandler(自定义类的class文件) { modelAndView.setViewName("error"); return modelAndView};
	@ExceptionHandler(Exception.class)处理其他异常的方法
3.编写测试异常的控制器 也就是controller层
	可以抛出自定义异常
	 throw new CustomException("异常信息");
	 在出现异常后会调用自定义异常管理器中的代码来进行处理异常
posted @ 2020-12-19 21:14  饭小乖  阅读(72)  评论(0编辑  收藏  举报