几种实现页面跳转的方法

时间:2022-10-13 23:23:03

1.使用<jsp:forward>

 jsp:forword是一种jsp动作,使用语法如下:

 

<jsp:forward page="Relative URL"/>

 在使用jsp:forward动作时,主页面中不能含有任何输出,它所起到的作用与servlet中使用的RequestDispatcher的forward方法的作用是一致的。这种跳转是由服务器执行的,因此跳转的页面可以放在WEB-INF目录中,以提高程序的安全性。

2.使用response.sendRedirect()

 用response.sendRedirect做转向其实是向浏览器发送一个特殊的Header,然后有浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化,这与jsp:forward动作不同,它是由服务器来做转向的。因此,使用sendRedirect做转向时,转向到的页面不能放在WEB-INF目录中。

 在调用response.sendRedirect之前,主页面同样不能有内容输出。另外,在调用sendRedirect方法之后,应该紧跟一个return语句,因为要做转向,后面的输出也就没有意义了,而且后面的输出还可能导致转向失败。

3.使用页面自动刷新

页面自动刷新并不依赖于JSP的技术,通过在HTML的头中设置meta元素的属性,可以实现网页的自动刷新或定时刷新,从而达到跳转到其他页面的目的。

 把下面的代码放到页面的head标签之间,就能够实现网页自动刷新。

 

<meta http-equiv="Refresh" content="秒数";url="跳转的文件或地址">
 其中content属性设置停留时间,也就是多少时间后刷新。url属性设置跳转的文件地址。当跳转到的页面就是当前页面时,这个属性可以省略,同时这样也实现了聊天室中用到的页面定时刷新。

4.请求转发与重定向

 jsp:forward动作实现的功能实际上是请求转发,是服务器端的协作,转发过程中没有客户端参与。这种方法经常用来实现
分离内容和表示。同时,因为转发是在同一个请求当中,所有请求作用域的参数在转发的页面间都是有效的。response.sendRedirect
和页面刷新实现的功能实际上是重定向,中间需要浏览器的协作,这是与jsp:forward的根本区别。重定向是作为不同的请求来看待的,
因此,所有请求作用域的参数在重定向到下一个页面时都会失效。
 注意:在JSP页面中,跳转是 经常要用到的功能,本文介绍了能够实现这一功能的不同方法,并对不同方法进行了比较。每种方法
都有其各自的特点和适用性,在使用时,要综合考虑应用的环境,选择一种最合适的方法。