Servlet与JSP转发与包含---forward\include

本文详细解释了Servlet的请求转发和包含两种协作方式,并对比了它们的相同点,重点介绍了这两种方式如何实现在不同Web组件间共享数据。

在这之前,要明确几个概念

1.servlet对象由servlet容器创建,servlet的service()方法也由容器调用。一个servlet对象无法获得另一各servlet对象的应用。

2.请求范围

web应用范围:整个web应用的生命周期,与ServletContext对象的生命周期对应。web应用范围内的共享数据作为ServletContext对象的属性存在。

请求范围:服务器端响应一次客户请求的过程,从Servlet收到一个客户请求开始,到返回响应结果结束。与ServletRequest对象和ServletResponse对象的生命周期对应。请求范围内的共享数据可以作为ServletRequest对象的属性存在。

 

一、Servlet的转发和包含----web组件之间的协作的两个途径

 

请求转发:servlet(源组件)先对客户请求做一些预处理操作,然后把请求转发给其他web组件(目标组件)完成包括生成响应结果在内的后续操作。

包含:servlet(源组件)把其他web组件(目标组件)生成的响应结果包含到自身的响应结果中。

二者相同点

目标组件和源组件处理同一个客户的请求;共享同一个ServletRequest对象和ServletResponse对象。

目标组件可以为:html,jsp,servlet

都依赖javax.servlet.RequestDispatcher接口 

javax.servlet.RequestDispatcher接口表示请求分发器:

 include()包含目标组件

forward()请求转发给目标组件

 

获取RequestDispatche对象

调用ServletContext的getRequestDispatcher

调用ServletRequest的getRequestDispatcher

 

转载于:https://www.cnblogs.com/taoHongFei/p/8567438.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值