目录
转发
重定向
结语
转发
介绍:
forward后面传递的是页面或者服务器端其他url地址,不经过视图解析器,所以返回的地址需要加上WEB-INF和.jsp
@RequestMapping(value="/forward")
public String forward(Model model){
model.addAttribute("msg","forward");
return "forward:/WEB-INF/jsp/hello.jsp";
}
重定向
介绍:
因为重定向是两次请求,两次响应,同样也不经过视图解析器,在服务器给定重定向后,实际上只是给了浏览器端一个下一次请求的地址,这时浏览器重新请求,如果jsp在WEB-INF下则会报404错误,因为对于WEB-INF下的jsp文件只能通过请求转发进行,而对于web下的jsp文件能正常进行访问
例如,我们把要请求的jsp文件放在WEB-INF目录下,那么其就会报404错误
@RequestMapping(value="/redirect")
public String redirect(){
return "redirect:/WEB-INF/jsp/hello.jsp";
}
浏览器:
我们把hello.jsp放在web目录下,重写测试:
@RequestMapping(value="/redirect")
public String redirect(){
return "redirect:/hello.jsp";
}
浏览器:
注意:使用重定向时进行了两次请求,故Model存储的数据会在第二次丢失。
结语
以上就是一心同学对SpringMVC中的转发和重定向的讲解,特别是在使用重定向时要额外小心。



