forward指令用于将页面响应控制转发给另外的页面。既可以转发给静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器的Servlet。

JSP的forward指令格式如下:

对于JSP1.0,使用如下语法:

<jsp:forward page="{relativeURL|<%expression%>}"/>

对于JSP1.1以上,可使用如下语法:

<jsp:forward page="{relativeURL|<%=expression%>}">
    {<jsp:param.../>}
</jsp:forward>

第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest类的getParameter方法获取。

举例:

页面jsp-forward.jsp将所有客户端请求转发到forward-result.jsp页面。转发时,增加一个请求参数:参数名为age,参数值为NULL。页面jsp-forward.jsp的源代码如下:

<%@ page contentType="text/html; charset=gb2312" language="java"%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<BODY>
<jsp:forward page="forward-result.jsp">
<jsp:param name="age" value=""/>
</jsp:forward>
</BODY>
</HTML>
在forward-result.jsp页面中,使用request内置对象来获取增加的请求参数值。forward-result.jsp的代码如下:

<%@ page contentType="text/html; charset=gb2312" language="java" errorPage="ErrorPage.jsp"%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<BODY>
<%=request.getParameter("username")%>
</BODY>
</HTML>
此时运行jsp-forward.jsp的结果为null,因为value的值为null。运行结果截图如下:


form-forward.jsp页面将表单域的值提交到jsp-forward页。form-forward.jsp的代码如下:

<%@ page contentType="text/html; charset=gb2312" language="java"%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<BODY>
<form id="login" method="post" action="jsp-forward.jsp">
<INPUT TYPE="text" NAME="username">
<INPUT TYPE="submit" value="login">
</FORM>
</BODY>
</HTML>
运行form-forward.jsp页面结果如下:




在表单中输入hello,页面自动跳转到jsp-forward.jsp,并输出hello。结果如下:


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐