#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、皇上也不在宫里。买通大内总管后才知道皇上在李诗诗那里。包龙星于是跑到那边,再次请求见皇上。皇上被抓了个现行,只得答应包龙星的请求。