JSP教程(六)-怎么在JSP中跳转到别一页面
程序员文章站
2023-12-18 14:55:46
在jsp中使用jsp forward action来实现页面的跳转功能。 语法:
在jsp中使用jsp forward action来实现页面的跳转功能。
语法:
<jsp:forward page="{relativeurl|<%= expression %>}"/> 或
<jsp:forward page="{relativeurl|<%= expression %>}">
<jsp:param name="parametername"
value="{parametervalue|<%= expression %>}"/>+</jsp:forward>
这个action使您可以将request向前到另外一个页面。它只有一个属性,page。page应有一个相对的url组成。这可以是一个静态的值或者是能够在被请求的时候计算得到的值,就如下面两个例子一般:
<jsp:forward page="/utils/errorreporter.jsp"/>
<jsp:forward page="<%= somejavaexpression %>"/>
!supportemptyparas]>
现在以一个具体例子来说明:在test1.jsp中使用forward使其跳转到test2.jsp页面中。
test1.jsp
<html>
<head>
<title>forward test</title>
!supportemptyparas]>
</head>
!supportemptyparas]>
<body bgcolor="#ffffff">
<!--跳转到test2.jsp--!>
<jsp:forward page="/test2.jsp"/>
</body>
</html>
!supportemptyparas]>
test2.jsp
<html>
<head>
<title> forward test </title>
!supportemptyparas]>
</head>
!supportemptyparas]>
<body bgcolor="#ffffff">
<%out.println("这是jsp2.jsp页面产生出的输出");%>
</body>
</html>
!supportemptyparas]>
运行test1.jsp,可在浏览器中看见:"这是jsp2.jsp页面产生出的输出"的输出信息。但是如果你在test1.jsp和test2.jsp这两个页面中有参数传递怎么办呢?用get方式吧,不但总的长度有限制,使用现在十分不方便,而且有时候还不安全。其实我们完全可以使用jsp1.1中给forward里提供的para属性就可以解决。现以test3.jsp和test4.jsp来说明。
!supportemptyparas]>
test1.jsp
<html>
<head>
<title> forward test </title>
!supportemptyparas]>
</head>
!supportemptyparas]>
<body bgcolor="#ffffff">
<jsp:forward page="/test4.jsp">
<jsp:param name="name" value="powerman"/>
<jsp:param name="address" value=" 北京西大街188号"/>
</jsp:forward>
</body>
</html>
!supportemptyparas]>
test2.jsp
<html>
<head>
<title>forward test</title>
!supportemptyparas]>
</head>
!supportemptyparas]>
<body bgcolor="#ffffff">
<%
out.println("这是jsp4.jsp页面产生出的输出"+"<br>");
out.println("姓名:"+request.getparameter("name")+"<br>");
out.println("地址:"+request.getparameter("address")+"<br>");
!supportemptyparas]>
%>
</body>
</html>
运行test3.jsp,可在浏览器中看见:
"这是jsp4.jsp页面产生出的输出
姓名:powerman
地址:北京西大街188号"
的输出信息
语法:
<jsp:forward page="{relativeurl|<%= expression %>}"/> 或
<jsp:forward page="{relativeurl|<%= expression %>}">
<jsp:param name="parametername"
value="{parametervalue|<%= expression %>}"/>+</jsp:forward>
这个action使您可以将request向前到另外一个页面。它只有一个属性,page。page应有一个相对的url组成。这可以是一个静态的值或者是能够在被请求的时候计算得到的值,就如下面两个例子一般:
<jsp:forward page="/utils/errorreporter.jsp"/>
<jsp:forward page="<%= somejavaexpression %>"/>
!supportemptyparas]>
现在以一个具体例子来说明:在test1.jsp中使用forward使其跳转到test2.jsp页面中。
test1.jsp
<html>
<head>
<title>forward test</title>
!supportemptyparas]>
</head>
!supportemptyparas]>
<body bgcolor="#ffffff">
<!--跳转到test2.jsp--!>
<jsp:forward page="/test2.jsp"/>
</body>
</html>
!supportemptyparas]>
test2.jsp
<html>
<head>
<title> forward test </title>
!supportemptyparas]>
</head>
!supportemptyparas]>
<body bgcolor="#ffffff">
<%out.println("这是jsp2.jsp页面产生出的输出");%>
</body>
</html>
!supportemptyparas]>
运行test1.jsp,可在浏览器中看见:"这是jsp2.jsp页面产生出的输出"的输出信息。但是如果你在test1.jsp和test2.jsp这两个页面中有参数传递怎么办呢?用get方式吧,不但总的长度有限制,使用现在十分不方便,而且有时候还不安全。其实我们完全可以使用jsp1.1中给forward里提供的para属性就可以解决。现以test3.jsp和test4.jsp来说明。
!supportemptyparas]>
test1.jsp
<html>
<head>
<title> forward test </title>
!supportemptyparas]>
</head>
!supportemptyparas]>
<body bgcolor="#ffffff">
<jsp:forward page="/test4.jsp">
<jsp:param name="name" value="powerman"/>
<jsp:param name="address" value=" 北京西大街188号"/>
</jsp:forward>
</body>
</html>
!supportemptyparas]>
test2.jsp
<html>
<head>
<title>forward test</title>
!supportemptyparas]>
</head>
!supportemptyparas]>
<body bgcolor="#ffffff">
<%
out.println("这是jsp4.jsp页面产生出的输出"+"<br>");
out.println("姓名:"+request.getparameter("name")+"<br>");
out.println("地址:"+request.getparameter("address")+"<br>");
!supportemptyparas]>
%>
</body>
</html>
运行test3.jsp,可在浏览器中看见:
"这是jsp4.jsp页面产生出的输出
姓名:powerman
地址:北京西大街188号"
的输出信息