一、异常处理器
1、实现HandlerExceptionResolver接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package com.wuxi.exceptions; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class RequestExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) { ModelAndView mv = new ModelAndView(); mv.addObject( "errorMsg" , e.getMessage()); //错误信息 mv.setViewName( "error" ); //请求转发的页面 return mv; } } |
2、springmvc的xml配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <? xml version = "1.0" encoding = "UTF-8" ?> xsi:schemaLocation="http://www.springframework.org/schema/beans <!--扫描组件--> < context:component-scan base-package = "com.wuxi" ></ context:component-scan > <!--视图解析器--> < bean id = "internalResourceViewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver" > < property name = "prefix" value = "/WEB-INF/pages/" ></ property > < property name = "suffix" value = ".jsp" ></ property > </ bean > <!--参数类型装换器--> < bean id = "conversionService" class = "org.springframework.context.support.ConversionServiceFactoryBean" > < property name = "converters" > < set > < bean class = "com.wuxi.utils.StringToDateConverter" ></ bean > </ set > </ property > </ bean > <!--配置调度器不拦截静态资源--> < mvc:resources mapping = "/css/**" location = "/css/" ></ mvc:resources > < mvc:resources mapping = "/images/**" location = "/images/" ></ mvc:resources > < mvc:resources mapping = "/js/**" location = "/js/" ></ mvc:resources > <!--配置文件解析器对象--> < bean id = "multipartResolver" class = "org.springframework.web.multipart.commons.CommonsMultipartResolver" > < property name = "maxUploadSize" value = "10485760" ></ property > </ bean > <!--异常处理器--> < bean id = "requestExceptionResolver" class = "com.wuxi.exceptions.RequestExceptionResolver" ></ bean > <!--开启springmvc框架注解的支持--> < mvc:annotation-driven conversion-service = "conversionService" ></ mvc:annotation-driven > </ beans > |
二、拦截器
1、实现HandlerInterceptor接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package com.wuxi.interceptors; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ControllerInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println( "controller的方法执行之前执行" ); return true ; //true:放行;false:拦截 } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println( "controller的方法执行之后执行" ); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println( "jsp执行之后执行" ); } } |
2、springmvc的xml配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <? xml version = "1.0" encoding = "UTF-8" ?> xsi:schemaLocation="http://www.springframework.org/schema/beans <!--扫描组件--> < context:component-scan base-package = "com.wuxi" ></ context:component-scan > <!--视图解析器--> < bean id = "internalResourceViewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver" > < property name = "prefix" value = "/WEB-INF/pages/" ></ property > < property name = "suffix" value = ".jsp" ></ property > </ bean > <!--参数类型装换器--> < bean id = "conversionService" class = "org.springframework.context.support.ConversionServiceFactoryBean" > < property name = "converters" > < set > < bean class = "com.wuxi.utils.StringToDateConverter" ></ bean > </ set > </ property > </ bean > <!--配置调度器不拦截静态资源--> < mvc:resources mapping = "/css/**" location = "/css/" ></ mvc:resources > < mvc:resources mapping = "/images/**" location = "/images/" ></ mvc:resources > < mvc:resources mapping = "/js/**" location = "/js/" ></ mvc:resources > <!--配置文件解析器对象--> < bean id = "multipartResolver" class = "org.springframework.web.multipart.commons.CommonsMultipartResolver" > < property name = "maxUploadSize" value = "10485760" ></ property > </ bean > <!--异常处理器--> < bean id = "requestExceptionResolver" class = "com.wuxi.exceptions.RequestExceptionResolver" ></ bean > <!--拦截器--> < mvc:interceptors > <!--可配置多个拦截器,执行顺序pre1->pre2->controller->post2->post1->jsp->after2->after1--> < mvc:interceptor > <!--拦截的资源路径--> < mvc:mapping path = "/**" /> <!--不拦截的资源路径--> <!--<mvc:exclude-mapping path="/hello"/>--> < bean class = "com.wuxi.interceptors.ControllerInterceptor" ></ bean > </ mvc:interceptor > </ mvc:interceptors > <!--开启springmvc框架注解的支持--> < mvc:annotation-driven conversion-service = "conversionService" ></ mvc:annotation-driven > </ beans > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/197053/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)