JSP跳转方式和作用域的详解

下面说说我对两个跳转方式的理解:

request的作用是拿着用户数据交给服务器。这就是request。

我们可以把request(转发)这样理解:有一个人叫黄彪,黄彪写信找李刚借钱,李刚的钱不够,李刚很义气,于是他又找李靖借钱,找李靖借了一部分和加上自己的一部分写信回复给了黄彪。在这过程,黄彪只发出一次请求,借钱,并收到了一次回复,他从李刚那里借钱,并不知道有一部分是出自李靖之手。

 

response重定向就是重新定方向,response是服务器端对客户端发来请求的回应,告诉用户重新发送一个对另一个URL的请求。

还用黄彪举例,第二次写信和李刚借钱,李刚这次回信,说自己其实没钱,并把李靖的地址给了黄彪,让黄彪写信找李靖去借,把李靖的地址发给了黄彪,黄彪写信给李靖,最终李靖收到信,并把钱回信寄给了黄彪。这次黄彪发送了两次请求,收到了两次回复。

他们的主要区别:

转发重定向比较

转发

重定向

变量作用域

request中存放的变量不会失效

request存放的变量失效,进入一个新的request作用域

浏览器的地址

地址栏保持初值不会改变

改变为重定向的页面地址

作用范围

只能是同一个web应用中的组件

可重定向到其他程序资源或者其他站点

URL以/开头

相对于web应用程序根目录

相对于web站点根目录

各自优点

相对高效,隐藏实际链接地址。

能跳转到其他的服务器上的资源。

 

JSP的四大作用域

pageContext:只在当前页面生存,一旦当前页面关闭就失效了。

request:只在本次请求中生存,可以进行页面的跳转,但一旦刷新就失效了。

session:只在本次会话中生存,可以进行页面的刷新,但是一旦关闭浏览器他就失效了。

application:只在本次活动中生存,只要服务器不关闭,他就不会死,一旦服务器关闭了或者重启他就失效了。

 

跳转,其实就是相当于超链接<a href=""></a>标签一样;而重定向是先执行返回然后在执行,不容易被跟踪

跳转:request.getRequestDispatcher("想要跳转的页面名字").forward(request,response);

通过request对象来调用getRequestDispatcher方法来实现页面跳转,因为request是HTTPServletRequest类的实例所以可以被直接拿来使用。

重定向:response.SendRedirect("想要重定向页面的名字");

通过response.SendRedirect方法来实现页面重定向,因为response是HTTPServletResponse类的实例所以可以被直接拿来使用。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值