首页 > 编程笔记 > Java笔记

JSP jsp:forward:请求转发标签

JSP 中的 <jsp:forward> 动作标签用来将请求转发给另外一个 JSP 或 Servlet 来处理。当执行该标签后,将不再执行当前的页面,而是去执行该标签指定的目标页面或 Servlet。

语法:

<jsp:param> 子标签用来向动态的目标文件中传递参数,关键代码如下:
<jsp:forward page="url">
   <jsp:param name="name"value="value"/>
   <jsp:param name="name"value="value"/>
   ……
</jsp:forward>

参数说明:

示例

若当前应用为 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>

所有教程

优秀文章