Spring MVC请求方式分为转发、重定向两种,是用forward和redirect关键字在controller层进行处理。本文我们就来探讨一下Spring MVC请求方式中的Spring MVC重定向和转发。
HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有很大的区别。我们依次来看看转发和重定向的定义和路径支持。
1.转发
return "index.jsp"; //这种方式默认的就是转发
return "forward:/index.jsp"; //这是全写的方式
路径支持
相对路径:相对于当前浏览器的地址 ../
根路径:以/开始(/代表当前项目)
绝对路径:不支持的——最大的范围就是当前的项目
@Controller
@RequestMapping("MyCno2")
public class MyCno2 {
@RequestMapping("demo1")
public String demo1(){
//return "../index.jsp";
return "/index.jsp";//相当于 return "forward:/index.jsp";
}
}
在类上面加 @RequestMapping("MyCno2") 是为避免不同类中方法有重名而导致不知道是进入那个类中的方法,加上之后 /MyCno2/demo1就知道是进入MyCno2类下面的demo1