提问
发动态
登录
没有新消息
更多内容
首页
问题
回答
Servlet API中forward()与redirect()的区别
职Q小助手
官方认证职Q平台账号
为实现程序的模块化,就需要保证在不同的Servlet之间可以相互跳转,而Servlet中主要有两种实现跳转的方式:FORWARD方式与redirect方式。 Forward() : 是服务器内部的重定向,服务器直接访问目标地址的URL,把那个URL的响应内容读取出来,而客户端并不知道,因此在客户端浏览器的地址栏里不会显示跳转后的地址,还是原来的地址。由于在整个定向的过程中用的是同一个Request,因此FORWARD会将Request的信息带到被定向的JSP或Servlet中使用。 Redirect():则是客户端的重定向,是完全的跳转,即客户端浏览器会获取跳转后的地址,然后重新发送请求,因此浏览器中会显示跳转后的地址。同时,由于这种方式比FORWARD方式多了一次网络请求,因此其效率低于FORWARD方式,需要注意到的是,客户端的重定向可以通过设置特定的HTTP 头或写JavaScript脚本来实现。 鉴于以上的区别,一般当FORWARD方式可以满足需求时,尽可能的使用FORWARD方式。但在有些情况下,例如,需要跳转到一个其他服务器上的资源时,则必须使用redirect 方式。
0
赞+1
0
评论
0
条评论
暂无评论,快来写下您的评论
问题来自于
匿名用户
Servlet API中forward()与redirect()的区别
8679
阅读
1
回答
我要回答
邀请回答
推荐阅读
JQuery.get()和JQuery.ajax()方法之间的区别是什么
1回答
1.3w阅读
Java创建线程后,调用start()方法和run()的区别
1回答
1.4w阅读
Java线程中,sleep()和wait()区别
1回答
2.9w阅读
Sleep()和yield()有什么区别
1回答
9992阅读
System.gc() 和 Runtime.gc() 会做什么事情?
0回答
1669阅读
java中开启线程的run()和start()方法区别有哪些
1回答
8012阅读
在 Queue 中 poll()和 remove()有什么区别?
0回答
2164阅读
服务器收到用户提交的表单数据,到底是调用Servlet的doGet()还是doPost()方法?
0回答
1392阅读
线程的 run()和 start()有什么区别?
0回答
2046阅读
正在发声
热门搜索
🔥职QStar养成计划
职Q每日打卡
🔥做得一手好菜
职场相亲角
找工作找工作
披荆斩棘的老哥
乘风破浪的小姐姐
当代斜杠青年的自我修养
我的微笑☺
今天你做了哪些努力
锦鲤许愿池
一张图证明你的颜值
甜甜的恋爱
Servlet API中forward()与redirect()的区别
为实现程序的模块化,就需要保证在不同的Servlet之间可以相互跳转,而Servlet中主要有两种实现跳转的方式:FORWARD方式与redirect方式。 Forward() : 是服务器内部的重定向,服务器直接访问目标地址的URL,把那个URL的响应内容读取出来,而客户端并不知道,因此在客户端浏览器的地址栏里不会显示跳转后的地址,还是原来的地址。由于在整个定向的过程中用的是同一个Request,因此FORWARD会将Request的信息带到被定向的JSP或Servlet中使用。 Redirect():则是客户端的重定向,是完全的跳转,即客户端浏览器会获取跳转后的地址,然后重新发送请求,因此浏览器中会显示跳转后的地址。同时,由于这种方式比FORWARD方式多了一次网络请求,因此其效率低于FORWARD方式,需要注意到的是,客户端的重定向可以通过设置特定的HTTP 头或写JavaScript脚本来实现。 鉴于以上的区别,一般当FORWARD方式可以满足需求时,尽可能的使用FORWARD方式。但在有些情况下,例如,需要跳转到一个其他服务器上的资源时,则必须使用redirect 方式。