spring mvc高级技术实例详解

  

Spring MVC高级技术包括但不限于web . xml配置,异常处理,跨重定向请求传递数据

  

        & lt; !DOCTYPE web公共   ”——//Sun Microsystems公司//DTD Web应用程序2.3//EN”   “http://java.sun.com/dtd/web-app_2_3.dtd”在      & lt; web-app>      & lt; context-param>   & lt; param-name> contextConfigLocation   & lt; param-value>类路径:春天- * .xml   & lt;/context-param>   & lt; listener>   & lt; listener-class> org.springframework.web.context.ContextLoaderListener   & lt;/listener>      & lt; servlet>   & lt; servlet-name> appServlet   & lt; servlet-class> org.springframework.web.servlet.DispatcherServlet   & lt; init-param>   & lt; param-name> contextConfigLocation   & lt; param-value>类路径:springMvc.xml   & lt;/init-param>   & lt;/servlet>   & lt; servlet-mapping>   & lt; servlet-name> appServlet   & lt; url-pattern>/& lt;/url-pattern>   & lt;/servlet-mapping>      & lt;/web-app>      

ContextLoaderListener是根容器,DispatcherServlet是子容器。父容器中管理的bean可以被子容器引用,反之,不行。它们都从各自的xml文件初始化自己的上下文

  

ContextLoaderListener如果未指定contextConfigLocation参数,则默认加载的配置文件为/web - inf/中

  

DispatcherServlet如果未指定contextConfigLocation参数,则根据& lt; servlet-name>元素指定的名称,在/web - inf/文件夹下寻找配置文件appServlet-servlet.xml

  

  

春提供了多种方式将异常转换为响应

  
      <李>特定的弹簧异常会自动映射为指定的HTTP状态码李   <李>异常上可以添加@ResponseStatus注解,将异常映射为某一个HTTP状态码李   <李>在方法上可以添加@ExceptionHandler注解,使其用来处理异常李   
  

, 1)特定的弹簧异常会自动映射为指定的HTTP状态码

  

如果在控制器中抛出了异常,该异常不在列表中,又没有指定HTTP状态码,则默认为状态码为500

  

 spring mvc高级技术实例详解

  

2)异常上可以添加@ResponseStatus注解,将异常映射为某一个HTTP状态码

        @ controller   公开课HelloController {      @RequestMapping (“/home”)   公共字符串回家(){   System.out.println(“执行回家”);   把新MyException ();//返回“家”;//返回一个字符串,即逻辑视图名   }   }            包com.cn.Exception;      进口org.springframework.http.HttpStatus;   进口org.springframework.web.bind.annotation.ResponseStatus;   公开课MyException RuntimeException扩展{      }      

浏览器访问http://localhost: 8080/家

  

 spring mvc高级技术实例详解

  

修改自定义异常

        包com.cn.Exception;      进口org.springframework.http.HttpStatus;   进口org.springframework.web.bind.annotation.ResponseStatus;      @ResponseStatus (value=https://www.yisu.com/zixun/HttpStatus.NOT_FOUND,原因="抛出异常的原因”)   公开课MyException RuntimeException扩展{      }      

浏览器访问http://localhost: 8080/家

  

 spring mvc高级技术实例详解

  

3)在方法上可以添加@ExceptionHandler注解,使其用来处理异常

  

该方式是按照处理请求的方式处理异常,@ExceptionHandler注解的方法返回值为字符串表示逻辑视图名
  

        包com.cn.Exception;      公开课MyException2 RuntimeException扩展{      }            @ controller   公开课HelloController {      @RequestMapping (“/home”)   公共字符串回家(){   System.out.println(“执行回家”);   把新MyException2 ();//返回“家”;//返回一个字符串,即逻辑视图名   }      @ExceptionHandler (MyException2.class)   公共字符串handleMException () {   System.out.println(“处理异常逻辑”);   返回“失败”;   }   }

spring mvc高级技术实例详解