#SpringMVC:转发、重定向(关键字方式) #forward、redirect关键字 @FDDLC

示例:

#SpringMVC:转发、重定向(关键字方式) #forward、redirect关键字 @FDDLC

 

关于在SpringMVC中使用forward、redirect关键字的说明:

1、这两种方式都不经过视图解析器,因此需要自己加前后缀。

2、【SpringMVC中使用关键字的重定向】和【传统的重定向】(即使用servlet-api的方式)有些区别:传统的重定向要加contextPath,比如 response.sendRedirect(request.getContextPath() + "/new.jsp"); 而关键字的方式不需要!

3、浏览器发出第一次请求后:

如果该请求被转发,那么转发仍属于第一次请求,属于服务器内部请求,可以访问WEB-INF下的内容;

如果该请求被重定向(即重新发起第二次请求),相当于服务器外部请求,不能访问WEB-INF下的内容。

 

关于第3点的形象解释:

浏览器发出第一次请求(请求访问一个页面),相当于:包龙星请求见皇上(目标页面),我要伸冤!

转发相当于:要见皇上(目标页面),由大内总管转发你的请求给皇上(先买通大内总管),最终在皇宫里(WEB-INF)见到了皇上(可以访问WEB-INF下的内容)。

重定向相当于:第一次请求见皇上(目标页面),被告知了两件事:1、皇宫岂是你们这些外人能进的(外部请求不能访问WEB-INF);2、皇上也不在宫里。买通大内总管后才知道皇上在李诗诗那里。包龙星于是跑到那边,再次请求见皇上。皇上被抓了个现行,只得答应包龙星的请求。