在大多数的网络应用程序中,都有这样的情况:在用户成功登录后转向欢迎页面,此处的“转向”,就是跳转。<jsp:forward> 动作标记就可以实现页面的跳转,用来将请求转到另外一个 JSP、HTML 或相关的资源文件中。
当 <jsp:forward> 动作标记被执行后,当前的页面将不再被执行,而是去执行该标记指定的目标页面,但是,用户此时在地址栏中看到的仍然是当前网页的地址,而内容却已经是转向的目标页面了。
其语法格式如下:
<jsp:forward page="relativeURL" | "<%=expression %>" />
如果转向的目标是一个动态文件,还可以向该文件传递参数,使用格式如下:
<jsp:forward page="relativeURL" | "<%=expression %>" />
<jsp:param name="pName1" value="pValue1 | <%=expression1 %>" />
<jsp:param name="pName2" value="pValue2 | <%=expression2 %>" />
说明如下:
【例1】使用 <jsp:forward> 动作标记实现网页跳转。
① 创建主页面 2-22.jsp,通过表单输入用户名和密码,单击“登录”按钮,利用 <jsp:forward> 动作标记跳转到页面 target.jsp。具体代码如下:
<%@ page contentType="text/html;charset=utf-8" %> <html> <body> <form action=" " method="post" name="Form"> <!--提交给本页处理--> 用户名:<input name="UserName" type="text" /> <br/> 密 码:<input name="UserPwd" type="text" /> <br/> <input type="submit" value="登录" /> </form> <% //当单击“登录”按钮时,调用Form1.submit()方法提交表单至本文件, //用户名和密码均不为空时,跳转到targe.jsp,并且把用户名和密码以参数形式传递 String s1=null,s2=null; s1=request.getParameter("UserName"); s2=request.getParameter("UserPwd"); if(s1!=null && s2!=null) { %> <jsp:forward page="target.jsp" > <jsp:param name="Name" value="<%=s1%>" /> <jsp:param name="Pwd" value="<%=s2%>" /> </jsp:forward > <% } %> </body> </html>
② 创建所转向的目标文件 target.jsp,具体代码如下:
<%@ page contentType="text/html;charset=utf-8" %> <html> <body> <% String strName=request.getParameter("UserName"); String strPwd=request.getParameter("UserPwd"); out.println(strName+"您好,您的密码是:"+strPwd); %> </body> </html>
③ 运行 2-22.jsp,结果如图 1 所示。