您的位置:首页 > Web前端 > JavaScript

<jsp:forward>与response.sendRedirect()的区别

2012-10-01 22:50 387 查看
1.<jsp:forward>属于服务器端跳转,response.sendRedirect()属于客户端跳转。

【服务器端跳转:当客户端发送请求至服务器端时,服务器根据客户端发送的url地址,在服务器内部转发到另一个服务器资源,找到相应的资源返回给客户端。(一次request一次响应)】

【客户端跳转:当客户端发送请求至服务器端时,服务器根据客户端发送的url地址,给客户端一个响应,客户端根据这个响应在到服务器端找资源,在返回给客户端显示。(两次request两次响应)

2.request的请求次数不同:


服务器端跳转
:当客户端向服务器发送请求时,只有一次的request


客户端跳转
:当客户端向服务器发送请求时,有两次的request

注意: 当使用客户端跳转时,无法直接读取客户端传递的信息。

3.地址栏的变化:

服务器端跳转:因为是在服务器内部自行跳转,所以跳转后url地址并不会发生变化

客户端跳转: 地址栏为目标资源的url地址

4.服务器端跳转:执行到跳转语句时立刻进行跳转,并不会执行跳转语句后面的代码;

客户端跳转:整个页面执行完后才执行跳转

<%System.out.println("-----foward跳转之前-------");%>
<jsp:foward page="hello.jsp"/>
<% System.out.println("-----foward跳转之后-------");%>
//打印:-----foward跳转之前-------

<%System.out.println("-----response跳转之前-------");%>
<% response.sendRedirect("hello.jsp");%>
<% System.out.println("-----response跳转之后-------");%>
//打印:-----response跳转之前-------
//-----response跳转之后-------


注意:在使用JDBC操作时,一定要在执行<jsp:forward>前关闭数据库连接,否则数据库连接无法关闭。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐