本文主要内容:响应数据、SpringMVC实现文件上传、SpringMVC实现异常处理、SpringMVC实现拦截器
响应数据
- 返回值类型为String
方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址 - 返回值是void
1.如果控制器的方法返回值编写成void,执行程序报404的异常,默认查找JSP页面(此方法的@RequestMapping()注解提供的页面)没有找到
2.可以使用请求转发或者重定向跳转到指定的页面 - 返回值是ModelAndView对象
1.ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图
2.通过ModelAndView对象可以将对象到存入request域对象,在前端页面通过EL表达式和JSTL语句获取数据 - 返回值是Json数据 因为前端控制器DispatcherServlet会拦截到所有的资源,导致一个问题就是静态资源(img、css、js)也会被拦截到,从而不能被使用,因此当我们使用异步(Ajax)方式提交数据时,需要需要配置静态资源不被拦截(在springmvc.xml配置)
<mvc:resources location="/css/" mapping="/css/"/>
<mvc:resources location="/images/" mapping="/images/"/>
<mvc:resources location="/js/" mapping="/js/**"/>
SpringMVC实现文件上传
- 编写前端代码
- 在springmvc.xml中配置文件解析器对象
- 实现具体功能
SpringMVC实现异常处理
- 异常处理思路
Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进行异常的处理 - 在springmvc.xml配置异常处理器对象
- 自定义异常类
- 自定义异常处理器
- 模拟异常情况
- 总结:
SpringMVC实现异常处理的关键就是我们自己自定义异常处理器,来通过异常处理器实现处理异常(自定义异常类只是方便我们记录和展示异常信息,增强用户体验)
SpringMVC实现拦截器
- 拦截器的概述
1.SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术
2.可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行
3.拦截器和过滤器的功能比较类似,有区别:
1.过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术
2.拦截器是SpringMVC框架独有的
3.过滤器配置了/*,可以拦截任何资源
4.拦截器只会对拦截器配置中中的方法进行拦截
4.拦截器也是AOP思想的一种实现方式
5.想要自定义拦截器,需要实现HandlerInterceptor接口 - 自定义拦截器类,实现HandlerInterceptor接口,重写需要的方法
- 在springmvc.xml中配置拦截器类