转发和重定向
转发和重定向区别和servlet类似
转发是服务器内部调用,可以访问受保护的资源
重定向不能访问受保护的资源。
doProcess能够拿到dodispatch方法内的参数myname,maage
重定向:
不能访问受保护的资源。
当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向。而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器。
对于请求转发的页面,也可以是WEB-INF中页面;对于重定向的页面,不能为WEB-INF中的页面。因为重定向相当于用户再次发出一次请求,而用户是不能直接访问WEB-INF中资源的
重定向中携带了两个参数?为什么?
框架中,执行重定向的时候,自动将模型中简单类型的参数值转为字符串,作为重定向的参数传递。
再jsp中取出参数:
param表示请求中的参数。
实验传递对象:
访问的参数中,没有对象。
处理器方法返回String重定向到视图
return视图的逻辑名称,forward到指定视图
SpringMVC异常处理:
异常处理器类:
异常的处理页面,有两种形式,由于存在视图解析器:
此处使用第一种,视图的逻辑名称。
正确的:
正常
该异常处理器比较简单,一般不用。
自定义异常处理器
一般使用这种异常处理方式。
异常处理注解方式
框架先去匹配定义好的value,找不到后再去找没有value属性的,也就是默认处理方法。
注解:@ExceptionHandler必须定义在@Controller类之中的。
测试成功!局限性:
注解的这些异常处理方法,只能用于当前类。
测试正确!
使用该自定义异常的前提是必须把异常抛出去,不能使用try catch,那样就自己处理了异常。