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>