当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向。而根据所要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器。
注意,对于请求转发的页面,可以是WEB-INF中的页面;而重定向的页面,是不能为WEB-INF中页面的。因为重定向相当于用户再次发出一次请求,而用户是不能直接访问WEB-INF中资源的。
请求转发的实现:
使用forward转发也叫显式转发,顾名思义,就算我们不用forward,当我们返回一个mv.setViewName(“show”)时,也是进行了请求转发的操作,叫做隐式转发。
同为请求转发,forward的好处在于他不会调用视图解析器。当我们在视图解析器中定义了访问前缀时,我们可能就无法调用其他文件中的资源了,这个时候就可以使用forward来进行请求转发
同时,进行请求转发时,相关数据是存储在request作用域中的
/*
* 处理器方法返回MadelAndView,实现转发forword
* 语法:setViewName("forward:视图文件的完整路径