Java学习总结15——Servlet中forward、include、redirect区别

本文详细解释了Servlet中forward、include及redirect三种页面跳转方式的区别。重点对比了它们在共享对象、转发资源等方面的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出处:http://blog.sina.com.cn/s/blog_62a04f5d0100gxqd.html

    forward,include,redirect是servlet中web页面的三种不同的跳转关系,三个貌似相同,其实还是有许多 差别的,而了解这些细微的差别,在web开发中是很重要的。
说明:
一、forward、include由 javax.servlet.RequestDispatcher来封装,由包容器container提供RequestDispatcher接口的实 现,其中声明如下:
void forward(ServletRequest req,ServletResponse res)
void include(ServeltRequest req,ServletResponse res)
    可以通过两种方式得到 RequestDispatcher:
1、ServletContext.getRequestDispatcher(String path),其中这里的path必须开始为"/",即这里的path必须相对于context的root.
2、ServeltRequest.getRequestDispatcher(String path),这里的path可以为相对路径,如果 path开始为"/",则也认为是从context的root开           始的。
二、Redirect由 HttpServletResponse.sendRedirect(String location)来支持
    差别:三个都可以对用户的 request进行转发,但是还是有许多的不同,差别最主要集中在如下几个方面:
    1、forward与include共亨Request范围内的 对象,而redirect则不行,即:如果一个javabean被声明为request范围的话,则被forward到的资              源也可以访问这个 javabean,而redriect则不行。
    2、forward与include基本上都是转发到context内部的资源,而 redirect可以重定向到外部的资源,如:          req.sendRedriect("http://www.mocuai.com");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值