test.jsp 源码如下 :
<%
response.sendRedirect("forforward1.jsp"); // forforward1.jsp 相对路径
System.out.println("ddd"); // 输出在服务器端了,在tomcat窗口中显示了。
%>
response 是内置对象
@1, response.sendRedirect("forforward1.jsp"); 告诉客户端浏览器,你在IE中,打上 forforward1.jsp , 再访问。后面代码继续执行。
send后的语句会继续执行,除非 return, 速度慢, 需要到客户端的往返,可以转到任何页面, 转时参数可直接写在被转url后面.但是
当前页面不能取到上一个页面传递的参数。 /代表的是http://127.0.0.1/
@2, <jsp:forward -> 转走后,后面的代码不会被执行,但是可以取参数。
虽然是不同的对象,但是,可以取到上一个页面的内容, forward 后的语句不会继续发送给客户端
速度快, 服务器内部转换, 地址栏没有变化, 可以传参数, /代表的是http://127.0.0.1/my
并且只能以/开头, 转走后,后面的代码不会被执行。
示例程序 : test.jsp, forforward.jsp, forward.jsp, forward1.jsp, forforward1.jsp
forward1.jsp 源码如下 :
<html>
<head>
<title>forward example</title>
<body bgcolor=red>
welcome to here!
<jsp:forward page="forforward1.jsp">
<jsp:param name="name" value="m" />
<jsp:param name="oldName" value='<%=request.getParameter("name")%>' />
<jsp:param name="ccc" value="manager" />
</jsp:forward>
<%System.out.println("eee");%>
</body>
</html>
forforward.jsp 源码如下 :
<html>
<head><title>forforward1.jsp</title></head>
<body bgcolor=blue>
here is the forforward1 page
<br>
<%=request.getParameter("name")%>
<%=request.getParameter("oldName")%>
<%=request.getParameter("ccc")%>
</body>
</html>