servlet 的forward 与redirect 区别

1.redirect地址栏变化,forward发生在服务器端内部从而导致浏览器不知道响应资源来自哪里
2.redirect可以重定向到同一个站点上的其他应用程序中的资源,forward 只能将请求 转发给同一个WEB应用中的组件
3.redirect默认是302码,包含两次请求和两次响应
4.redirect效率较低

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: forwardredirect都是用于页面跳转的技术,但它们的实现方式和效果有所不同。 forward是服务器端的跳转,它是在服务器内部完成的,客户端并不知道页面发生了跳转。在forward过程中,浏览器的地址栏不会发生变化,而且浏览器只会发送一次请求。forward通常用于在同一个应用程序内部进行页面跳转,比如在Servlet中使用RequestDispatcher.forward()方法。 redirect是客户端的跳转,它是通过向浏览器发送一个重定向响应来实现的。在redirect过程中,浏览器会发送两次请求,第一次请求是用户请求原始页面,第二次请求是用户请求重定向后的页面。在redirect过程中,浏览器的地址栏会发生变化。redirect通常用于在不同的应用程序之间进行页面跳转,比如在Servlet中使用response.sendRedirect()方法。 总的来说,forward是服务器端的跳转,redirect是客户端的跳转。forward的效率比redirect高,因为它只需要在服务器内部进行页面跳转,而redirect需要向浏览器发送两次请求。但是,redirect可以实现在不同应用程序之间的页面跳转,而forward只能在同一个应用程序内部进行页面跳转。 ### 回答2: Forwardredirect是web开发中经常使用的两个关键词,它们都可以用来想客户端发送请求,但实际上它们有着很大的不同。 Forward指的是在服务器端将一个请求转发给另外一个资源或者Servlet/ JSP程序进行处理,这个过程是在服务器内部进行的,客户端并不会收到任何响应。Forward有很多好处,最主要的是它能够提高应用的性能,因为它避免了客户端向不同的服务器发送请求,从而减少了网络带宽的占用。 Redirect则是通过向客户端发送一个HTTP重定向响应,让客户端请求另一个URL,客户端会向另一个URL发送新的请求,这时服务器会重新响应这个请求。Redirect的最大优点是它能够向客户端提供一个新的URL地址,这个地址可以被保存、书签或者复制,这样客户端下一次访问时就可以直接使用这个地址,不用去查询服务器。 Forwardredirect还有其他的区别: 1.Forward是在服务器端完成的,Redirect则是在客户端完成的。 2.Forward可以在两个不同的Web组件之间传递数据,而Redirect则不能。 3.Forward不会改变URL地址,而Redirect则会。例如在jsp页面中用forward跳转到另外一个jsp页面: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.getRequestDispatcher("/welcome.jsp").forward(request, response); %> 在jsp页面中用redirect跳转到另外一个jsp页面: <% response.sendRedirect("welcome.jsp"); %> 前者的页面地址会保持不变,后者的页面地址会变成目标地址。 总之,ForwardRedirect都是很重要的web技术,根据实际应用场景需要灵活运用。不同的场景,需要采用不同的技术以达到更好的效果。 ### 回答3: Forwardredirect都是HTTP协议中的常用指令,它们都可以用来跳转页面,但是它们的具体实现方式和作用是有所不同的。 首先,Forward是服务器端的跳转指令,即在服务器端调用一个本地资源并将其返回给用户,用户的浏览器并不知道这个过程。Forward跳转一般是用于解决业务逻辑问题或者进行页面间的跳转,主要体现在Servlet技术上,应用比较广泛,可以在同一Web应用程序的不同Servlet之间实现跳转,而且Forward跳转不会增加地址栏中的URL。 而redirect则是浏览器端的跳转指令,也就是浏览器会首先请求服务器并得到相应的响应,然后浏览器根据响应重新发起请求到服务器。这种跳转方式又被称为重定向,其作用是将客户端重定向到另一个URL地址上,一般用于跨Web应用程序或者是页面的重定向,用户的浏览器地址栏中会显示重定向URL地址。 总之,Forward用于在同一Web应用程序的Servlet之间跳转,可以在Web应用程序内部进行页面跳转,不会改变URL地址,用户体验较好;而redirect则可以跨Web应用程序进行页面跳转,在浏览器地址栏上会显示重定向的URL地址,会给用户带来一定的不便。因此,在使用跳转指令时,需要根据具体情况来选择适合的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值