【转载内容】forward动作是指页面跳转至某一页面,而param动作常常和forward动作一起使用,作为其子标签,为页面跳转添加一些参数。
1、forward动作的语法:<jsp:forward page="URL"/>,其中page是指跳转的页面名,forward动作类似于服务器内部转发方法:request.getRequestDispatcher("/url").forward(request, response)
2、param动作的语法:<jsp:param value="参数值" name="参数名"/>,使用param不仅可以新增一个参数,也可以修改原有的参数值。【转载结束】
下面为跟着视频敲的几个例子:
1.首先创建一个登陆页面(login.jsp),其中form表单提交给forward_action.jsp处理
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户登陆界面</title>
</head>
<body>
<form name="loginForm" action="forward_action.jsp" method="post">
<table>
<tr>
<td>UserName:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登陆"/></td>
</tr>
</table>
</form>
</body>
</html>
2.创建forward_action.jsp,使其跳转到user.jsp(用户资料界面)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>forward指令 进行跳转</title>
</head>
<body>
<h1>forward动作</h1>
<jsp:forward page="user.jsp" />
<!--
<% request.getRequestDispatcher("user.jsp").forward(request, response); %>
-->
</body>
</html>
注意:jsp:forward 动作等价于request.getRequestDispatcher("跳转页面名称").forward(request, response);
【by the way】getRequestDispatcher是服务器内部跳转,地址栏信息不变,只能跳转到web应用内的网页。
sendRedirect是页面重定向,地址栏信息改变,可以跳转到任意网页。
3.user.jsp代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陆成功</title>
</head>
<body>
<h1>用户资料</h1>
<hr>
<%
request.setCharacterEncoding("utf-8");
String username = "";
String password = "";
if(request.getParameter("username")!=null)
{
username = request.getParameter("username");
}
if(request.getParameter("password")!=null)
{
password = request.getParameter("password");
}
%>
用户名:<%=username %><br>
密码:<%=password %><br>
</body>
</html>
【增加param标签】
1.login.jsp中表单提交到dologin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户登陆界面</title>
</head>
<body>
<form name="loginForm" action="dologin.jsp" method="post">
<table>
<tr>
<td>UserName:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登陆"/></td>
</tr>
</table>
</form>
</body>
</html>
2.dologin.jsp中设置forward动作以及param指定参数值(增加email参数)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:forward page="user.jsp">
<jsp:param value="Boss" name="username"/>
<jsp:param value="19911007" name="password"/>
<jsp:param value="LoveLay@1007.cn" name="email"/>
</jsp:forward>
</body>
</html>
3.user.jsp中输出用户资料
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陆成功</title>
</head>
<body>
<h1>用户资料</h1>
<hr>
<%
request.setCharacterEncoding("utf-8");
String username = "";
String password = "";
String email = "";
if(request.getParameter("username")!=null)
{
username = request.getParameter("username");
}
if(request.getParameter("password")!=null)
{
password = request.getParameter("password");
}
if(request.getParameter("email")!=null)
{
email = request.getParameter("email");
}
%>
用户名:<%=username %><br>
密码:<%=password %><br>
电子邮箱:<%=email %><br>
</body>
</html>