客户端跳转与服务器跳转区别

来源:互联网 发布:sql server 2005序列号 编辑:程序博客网 时间:2024/06/15 15:11
原文地址:客户端跳转与服务器跳转区别作者:hibernate

 

客户端跳转时用HttPservletResopse对象的sendRedirect函数实现,服务器端跳转是使用RequestDispather对象的forward方法实现的。这两者之间的区别主要体现在三个方面:

1.       使用服务器端跳转时,客户浏览器的地址栏并不会显示目标地址的URL,而是用客户端跳转时,地址栏当中会显示目标资源的URL;


2.       服务器端跳转是由客户端发送一个请求,请求一个服务器资源——如JSP和Servlet——,这个资源又将请求转到另一个服务器资源,然后再给客户端发送一个响应,也就是说服务器端跳转是客户端发送一次请求,服务器端给出一次响应;而客户端跳转的流程则不同。客户端同样是发送一个请求给服务器端资源,这个服务器资源会首先给客户端一个响应,客户端再根据这个响应当中所包含的地址,再次向服务器端发送一个请求,也就是说客户端跳转是两次请求,两次响应;


3.       在进行客户端跳转和服务器端跳转时,都需要指定目标资源的URL,如果这个路径以“/”开始。在客户端跳转当中“/”代表的是应用服务器根目录,而在服务器端跳转当中代表的是应用程序根目录。


使用:<jsp forward/>服务器跳转:

1.地址栏不变,

2.执行到跳转后无条件跳转---之后的代码不再执行;

3.若使用此种跳转,一定要保证跳转后释放掉全部的资源(比如数据库链接);

4.跳转后,设置的request属性仍然保留,(setAttribute());

使用:response.sendRedirect("url")重定向:

1.地址栏改变,客户端跳转

2.所有代码执行完毕后再跳转;

3.不再保存request属性---地址改变了, 客户端跳转,属于请求的改变!

使用重定向客户端跳转时,可以借助重写url的操作,传递必要的参数到跳转后的页面!

 

0 0