转发

1、什么是转发

  • 一个Web组件(Servlet/JSP)将未完成的处理通过容器转交给另外一个Web组件继续完成
  • 常见情况:一个Servlet获得数据之后(比如通过调用dao),将这些数据转发给一个JSP,由这个JSP来展现这些数据(比如,表格)

2、如何实现转发

  • 绑定数据到request对象

转发_第1张图片

  • 获得转发器

或得转发器

  • 转发
    转发_第2张图片

3、转发的原理
转发_第3张图片

4、转发的特点

  • 转发之后,地址栏地址不会发生变化。原因是转发的过程是发生在服务器内部的,浏览器并不知道。
  • 转发的目的地必须是同一个应用内部的某个地址转发所涉及的各个web组件会共享同一个request对象和response对象
  • 注意:在forward之后的其它语句还会执行吗? 答:一定会执行,只要不报异常

5、转发和重定向的区别

  • 重定向是浏览器发送请求并受到响应以后再次向一个新地址发请求,转发是服务器受到请求后为了完成响应转到一个新的地址
  • 重定向中有两次请求对象,不共享数据,转发只产生一次请求对象且在组件间共享数据
  • 重定向后地址栏地址改变,而转发不会 重定向的新地址可以是任意地址,转发到的新地址必须是同一个应用内的某地址

从下图可更直观看出区别:
转发_第4张图片

你可能感兴趣的:(jsp,servlet,重定向,转发)