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
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/家
修改自定义异常
包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/家
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高级技术实例详解