请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include

当一个 Web资源 收到客户端的请求后,如果希望服务器通知另一个web资源处理请求,那么这时可以通过 RequestDispatcher 接口的实例对象实现。

web资源分为静态和动态

  1. 静态资源
    静态web资源是浏览器能够直接打开的。如:html、css、 js等
  2. 动态资源
    动态web资源是经过翻译之后浏览器能够打开的。如:jsp、servlet、php、ASP等

RequestDispatcher对象

RequestDispatcher getRequestDispatcher (String path)

  1. 参数:path必须以/开头,用于表示当前 Web 应用的根目录

    web应用的根目录在idea中是web;在eclipse中是webcontent

    需要注意的是,WEB-INF目录中的内容对 RequestDispatcher 对象也是可见的。因此,传递给 getRequestDispatcher(String path) 方法的资源可以是 WEB-INF 目录中的文件

  2. 返回值:某条路径所指定资源的 RequestDispatcher 对象

获取到 RequestDispatcher对象后,便是通知其他 Web 资源处理当前的 Servlet 请求,为此,RequestDispatcher 接口定义了两个相关方法:forward()include()


forward()与include()

方法声明功能描述
forward(ServletRequest request, ServletResponse response)第一个web资源对请求做一个初步处理,然后通过调用这个方法,将请求传递给其他资源进行响应。需要注意的是,该方法必须在响应提交给客户端之前被调用,否则将抛出 IllegalStateException 异常
include(ServletRequest request, ervletResponse response)该方法用于将其他的资源作为当前响应内容包含进来

forward()
include()

比较内容forward()Include()
使用场合不同将控制权转移到其它组件须由另一组件执行部分处理,一旦执行完毕,当前组件将收回控制权
输出结果不同在请求转发之前,web组件不应使用输出流向客户端发送消息所有web组件共享同一个输出流与客户机进行通信
相同点均是在服务器端完成的,因此地址栏中只显示原URL,不显示跳转后的URL均是在服务器端完成的,因此地址栏中只显示原URL,不显示跳转后的URL


动手练一下吧!

关于requset的forward()、include()跳转的实例代码



参考文章:

  1. RequestDispatcher实现请求转发
  2. 什么是web资源????
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值