forward和redirect的具体区别

fqwemail 2007-05-17 04:18:16
forward和redirect的具体区别
我只知道forward是转发,redirect是重定向
...全文
2099 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kipen 2007-05-18
  • 打赏
  • 举报
回复
最重要的区别就是forward
可以带信息过去..

而redirect不行..
只能在地址上传递参数了
jefyjiang 2007-05-18
  • 打赏
  • 举报
回复
forward会产生新的HttpServletRequest,而redirect则不会,依然是原先的request

------------------------------------
这句好像恰好是反的,forward和前页共用一个request&response
daizhenbest 2007-05-18
  • 打赏
  • 举报
回复
redirect相当与点了一下超级连接。
xiangbo520 2007-05-18
  • 打赏
  • 举报
回复
错!错!错!
forward是重定向,redirect是转发
forward使用的是原来的那个request,而redirect就已经不是了
许飘大叔 2007-05-17
  • 打赏
  • 举报
回复
http://java.ccidnet.com/art/3737/20051217/468341_1.html讲的很详细
journay 2007-05-17
  • 打赏
  • 举报
回复
forward包括request,response对象,redirect没有
angelseyes 2007-05-17
  • 打赏
  • 举报
回复
forward会产生新的HttpServletRequest,而redirect则不会,依然是原先的request
javaboy2006 2007-05-17
  • 打赏
  • 举报
回复
http://java.ccidnet.com/art/3737/20051217/468341_1.html
flyingsnowy 2007-05-17
  • 打赏
  • 举报
回复
forward
southben 2007-05-17
  • 打赏
  • 举报
回复
forward包括以前的内容,redirect是新的页面
【源码免费下载链接】:https://renmaiwang.cn/s/uwsqu 转发与重定向的区别在于它们在客户端与服务器端的处理流程、URL变更以及数据共享等方面的差异。1. 转发(Forward):通过调用`RequestDispatcher.forward()`来实现。这种机制会在服务器内部完成请求路由,不会改变客户端浏览器的URL路径。转发支持相对路径和绝对路径,并且能够保持同一请求中的数据共享。代码示例为: ```java request.getRequestDispatcher("/a/a.jsp").forward(request, response); ``` 2. 重定向(Redirect):通过调用`Response.sendRedirect()`来实现。这种机制会在服务器层发起新的HTTP请求,导致浏览器的URL发生变化并能感知到这一变化。重定向路径必须是绝对路径,并且通常以HTTP或HTTPS协议开头。由于这是新请求,原数据无法直接传递,但可以通过在目标地址中添加查询参数部分来实现部分信息共享。示例代码为: ```java response.sendRedirect("/a/a.jsp"); ``` 需要注意的是,在跨Web应用访问资源时,默认情况下转发是受限的。通过设置`ServletContext.getContext().setAttribute("crossContext", true)`可以突破这一限制,但这通常伴随着安全性的考量。 总结而言,转发和重定向是Java Servlet编程中处理请求路由的关键机制,它们各有优缺点:转发适合保持同一请求的状态且不改变URL路径,而重定向则能实现页面跳转并支持部分数据的共享。选择何种方式取决于具体的应用需求。

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧