前言:最近在做公司项目的过程中,发现学过的SpringMVC的知识忘记了,于是看了之前看的视频的笔记,并结合自己的理解写下了这篇博客,希望能加深自己的印象以及帮助的诸位小伙伴儿们🤞🤞
 如果有什么需要改进的地方还请大佬斧正😁
 小威在此先感谢诸佬了👏👏
 
牛客部分使用反馈,个人感觉还不错,帮我找到了心仪的公司,希望各位伙伴儿们通过它也能提高不少🥂🥂🥂
以下正文开始
文章目录
统一异常处理


HTTP异常状态统一处理
-  创建一个用于进行异常提示的页面:404.jsp 
-  在web.xml中进行配置: <error-page> <error-code>404</error-code> <location>/404.jsp</location> </error-page>
Java代码异常的统一处理
基于Servlet-api的处理
-  创建异常提示页面:err.jsp 
-  在web.xml中进行配置 <error-page> <exception-type>java.lang.NumberFormatException</exception-type> <location>/err.jsp</location> </error-page>
SpringMVC处理
-  使用异常处理类进行统一处理 @ControllerAdvice public class MyExceptionHandler { @ExceptionHandler(NullPointerException.class) public String nullHandler(){ return "/err1.jsp"; } @ExceptionHandler(NumberFormatException.class) public String formatHandler(){ return "/err2.jsp"; } }
拦截器
拦截器介绍
- 过滤器 
  - 是Servlet规范的一部分,所有的web项目都可以使用
- 过滤器在web.xml配置(可以使用注解),能够拦截所有web请求
 
- 拦截器 
  - 是SpringMVC框架的实现,只有在SpringMVC框架中才能使用
- 拦截器在SpringMVC配置文件进行配置,不会拦截SpringMVC放行的资源(jsp\html\css…)
 
自定义拦截器
创建拦截器
public class MyInterceptor1 implements HandlerInterceptor {
    //预处理方法
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("--------------预处理");
        Enumeration<String> keys = request.getParameterNames();
        while (keys.hasMoreElements()){
            String key = keys.nextElement();
            if("bookId".equals(key)){
                return true;
            }
        }
        response.setStatus(400);
        return false;
    }
    //后处理方法
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        modelAndView.addObject("tips","这是通过拦截器的后处理添加的数据");
        System.out.println("--------------后处理");
    }
}
配置拦截器
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/book/query"/>
        <mvc:mapping path="/book/add"/>
        <mvc:mapping path="/student/**"/>
        <mvc:exclude-mapping path="/student/add"/>
        <bean class="com.qfedu.utils.MyInterceptor1"/>
    </mvc:interceptor>
</mvc:interceptors>
文章到这里就结束了,以后还会记录一些其他的知识,喜欢的大佬可以多多支持哦😉😉。
 如果有什么疑问的地方请指出,诸佬们一起讨论🍻🍻
 
再次感谢各位小伙伴儿们的支持🤞
 









