RequestMappingHandlerMapping
BeanNameUrlHandlerMapping
它是处理请求的适配器,说白了,就是确定调用哪个类的哪个方法,并且构造方法参数,返回值。RequestMappingHandlerAdapter
HttpRequestHandlerAdapter
SimpleControllerHandlerAdapter
ExceptionHandlerExceptionResolver
ResponseStatusExceptionResolver
DefaultHandlerExceptionResolver <!-- 配置视图解析器 根据 controller类中对应 该请求的处理方法的返回值的视图名,将此视图名补充完整。 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--前缀--> <property name="prefix" value="/WEB-INF/"/> <!-- 后缀--> <property name="suffix" value=".jsp"/> </bean> 异常处理器 <!-- 配置简单异常处理器 当发生下述声明的异常时, 根据视图解析器的位置,找到具体该文件的位置。会进入相应的 ex1,或 ex2界面。 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="java.lang.NumberFormatException">ex1</prop> <prop key="java.lang.StringIndexOutOfBoundsException">ex2</prop> </props> </property> </bean> 异常处理方式二使用@ExceptionHandler注解。 @ExceptionHandler /* * 这是一个异常处理方法,当异常发生之后, * DispatcherServlet会调用该方法来处理异常。 * e:处理器方法抛出的异常。 */ public String handleEx(Exception e, HttpServletRequest request){ System.out.println("handleEx()"); //依据异常类型,做不同的处理。 if(e instanceof NumberFormatException){ request.setAttribute("msg", "亲,请输入正确的数字"); return "ex"; } if(e instanceof StringIndexOutOfBoundsException){ request.setAttribute("msg", "下标越界啦"); return "ex"; } //系统异常 return "error"; }