JSP jsp:forward:请求转发标签
JSP 中的 <jsp:forward> 动作标签用来将请求转发给另外一个 JSP 或 Servlet 来处理。当执行该标签后,将不再执行当前的页面,而是去执行该标签指定的目标页面或 Servlet。
语法:
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:param> 子标签用来向动态的目标文件中传递参数,关键代码如下:
<jsp:forward page="url">
<jsp:param name="name"value="value"/>
<jsp:param name="name"value="value"/>
……
</jsp:forward>
- page:该属性指定了目标文件的路径。如果该值是以“/”开头,表示在当前应用的根目录下查找文件,否则就在当前路径下查找目标文件。请求被转向到的目标文件必须是内部资源,即当前应用中的资源。
示例
若当前应用为 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>
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算