动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

javaweb中转发与重定向的区别有哪些

06-08 16:25 285浏览
举报 T字号
  • 大字
  • 中字
  • 小字

接触过Java开发的小伙伴,一定对转发和重定向有所了解吧,也可能在java开发过程中使用过转发和重定向,那么今天我们来看一下javaweb中,转发和重定向有哪些区别

从概念上来讲,转发指的是当前Servlet将请求转交给其他的Servlet进行再次处理。重定向是Servlet发送给浏览器的一个特殊的响应,这个响应告诉浏览器,再去请求另一个地址,类似于政府的相关部门。

从特点上来说,转发的特点是,1.转发时浏览器只发送一次请求;2.转发是在服务器端进行的;3.转发时浏览器的地址没有发生变化;4.浏览器感知不到转发的发生。重定向的特点是,1.重定向时浏览器一共发了两次请求;2.重定向是在浏览器端进行的;3.浏览器的地址栏会发生改变;4.浏览器可以感知到重定向的发生。

在请求调用对象方面,请求的转发调用方法的是,HttpServletRequest的getRequestDispatcher()方法获取RequestDispathcher对象;调用getRequestDispatcher()需要传入要转发的地址:String path = "testServlet“;(testServlets是地址)RequestDispatcher requestDispatcher = request.getRequestDispatcher(”/“+path)调用HttpServletRequest的forward(request,response)进行请求的转发requestDispatcher.forward(request.response);请求的重定向调用的方法:执行请求的重定向,直接调用response.sendredirect(path)方法String path= "testServlet";response.sendredirect(path)也就是重定向调用的方法是response.sendRedirect(),转发调用的方法是request.getrequestDispatcher“”).forward(request.response)

页面跳转的时候转发和重定向都可以跳转页面,但是转发时浏览器只向服务器发送一次请求,可以使用同一个request携带数据在这里,request的作用域为一次请求,而重定向时浏览器向服务器发送了两次请求,不可以利用request携带数据,能用重定向的就不要用转发。

Javaweb中转发和重定向的最大区别就是,概念不一样,特点方面差不多是相反的方向。在调用对象方面也不一样,还有页面跳转时的使用也不一样。大家根据自己的实际情况进行使用和编写代码就可以了。

0人推荐
共同学习,写下你的评论
0条评论
小川
程序员小川

5篇文章贡献19402字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消