JSP 中的 <jsp:forward> 动作标签用来将请求转发给另外一个 JSP 或 Servlet 来处理。当执行该标签后,将不再执行当前的页面,而是去执行该标签指定的目标页面或 Servlet。
语法:
参数说明:
若当前应用为 A,在根目录下的 index.jsp 页面中存在下面的代码,用来将请求转发到应用 B 中的 logon.jsp 页面,关键代码如下:
<jsp:forward page="http://localhost:8080/B/logon.jsp"/>
那么将出现下面的错误提示:The requested resource(/http://localhost:8080/B/logon.jsp)is not available
仔细观察可以看到,错误提示中的路径前自动加入了一个“/”,这是因为 index.jsp 页面在应用 A 的根目录下,当执行 <jsp:forward> 标签时,会在该目录下查找 page 属性指定的目标文件,所以会提示资源不存在的信息。也就是说“<jsp:forward> 动作标签只能用于站内转发”。
注意:<jsp:forward> 标签实现的是请求的转发操作,而不是请求重定向。它们之间的一个区别是:进行请求转发时,存储在 request 对象中的信息会被保留并被带到目标页面中;而请求重定向是重新生成一个 request 请求,然后将该请求重定向到指定的 URL,所以事先存储在 request 对象中的信息都不存在了。
本示例通过 <jsp:forward> 动作标签将请求转发到用户登录页面。在用户运行项目时,首先进入的是 index.jsp 页面,然后通过 <jsp:forward> 标签将请求转发到 login.jsp 页面。代码如下:
<body>
您现在位置为index.jsp!
<jsp:forward page="login.jsp"></jsp:forward>
</body>