网站首页 > 资源文章 正文
一、调用方式
在servlet中调用转发、重定向的语句如下:
request.getRequestDispatcher("new.jsp").forward(request, response);//转发到new.jsp
response.sendRedirect("new.jsp");//重定向到new.jsp
在jsp页面中你也会看到通过下面的方式实现转发:
<jsp:forward page="apage.jsp" />
当然也可以在jsp页面中实现重定向:
<%response.sendRedirect("new.jsp");//重定向到new.jsp%>
二、区别
1.请求转发是服务器行为,重定向是客户端行为。下面看两个动作的工作流程:
转发过程:客户浏览器发送http请求 → web服务器接受此请求 → 调用内部的个方法在容器内部完成请求处理和转发动作 → 将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的,转发行为是浏览器只做了一次访问请求。
重定向过程:客户浏览器发送http请求 → web服务器接受后发送302状态码响应及对应新的location给客户浏览器→客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址→服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的,重定向行为是浏览器做了至少两次的访问请求的。
2.重定向,其实是两次request, 第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候浏览器看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。
请求转发是服务器内部把对一个request/response的处理权,移交给另外一个 对于客户端而言,它只知道自己最早请求的那个A,而不知道中间的B,甚至C、D。 传输的信息不会丢失。
通俗的例子:
假设你去办理某个执照,
重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。
转发:你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B局的人,让他们办好后,送了过来。
- 上一篇: 建站改版时哪些内容不能动?你造吗?
- 下一篇: 北易信息:手机网站怎么设置利于网站SEO优化
猜你喜欢
- 2024-09-09 什么是双子座扩展?让谷歌的聊天机器人比ChatGPT更智能
- 2024-09-09 微信公众号开发获取微信用户openid及访问url身份认证方式
- 2024-09-09 生产环境url告警检测--通过curl来获取http各阶段时间
- 2024-09-09 虚拟主机可以安装宝塔吗?(虚拟主机可以安装宝塔吗)
- 2024-09-09 SEO必知:如何将顶级域名做301重定向到www二级域名
- 2024-09-09 网站页面绝对路径相对路径有哪些优缺点?
- 2024-09-09 nPlayer Plus| 付费软件已购共享(nplayer付费版分享)
- 2024-09-09 Java面试笔试必考题总结(java面试题整理)
- 2024-09-09 教学笔记:HTTP状态码之300段系列码
- 2024-09-09 nginx实现url重写实例参考(nginx url重定向)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)