<jsp:forward>标签
在JSP页面中,经常需要将请求转发给另外一个资源,这时,除了RequestDispatcher接口的forward()方法可以实现外,还可以通过<jsp:forward>标签来实现。<jsp:forward>标签的具体语法格式如下所示:
<jsp:forward page="relativeURL" />
在上述语法格式中,page属性用于指定请求转发到的资源的相对路径,该路径是相对于当前JSP页面的URL。
为了大家更好地理解<jsp:forward>标签,接下来,通过一个案例来学习<jsp:forward>标签的具体用法。首先编写一个用于实现转发功能的jspforward.jsp页面和一个用于显示当前时间的welcome.jsp页面,具体如例1和例2所示。
例1 jspforward.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<jsp:forward page="welcome.jsp" />
例2 welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<title>Insert title here</title>
<body>
你好,欢迎进入首页,当前访问时间是:
<%
out.print(new java.util.Date());
%>
</body>
</html>
启动Tomcat服务器,通过浏览器访问地址http://localhost:8080/chapter07/jspforward.jsp
,浏览器的显示界面如图1所示。
图1 运行结果
从图1中可以看出,浏览器显示出了welcome.jsp页面的输出内容。通过查看jspforward.jsp页面翻译的Servlet源文件,会发现<jsp:forward>标签被翻译成了如下所示的一段代码:
out.write("\r\n");
out.write("\r\n");
if (true) {
_jspx_page_context.forward("welcome.jsp");
return;
}
out.write('\r');
out.write('\n');
从上面的代码可以看出,<jsp:forward>标签被翻译成了调用pageContext.forward方法的语句,并在调用pageContext.forward方法后使用return语句结束了service()方法的执行流程,从而不再执行<jsp:forward>标签后的语句。