Servlet: 重定向和转发

1 重定向的概述

(1)重定向的概念

  首先客户浏览器发送http请求,当web服务器接受后发送302状态码响应及对应新的location给客 户浏览器,客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location 地址,服务器根据此请求寻找资源并发送给客户。

 

(2)重定向的实现

  实现重定向需要借助javax.servlet.http.HttpServletResponse接口中的以下方法:

方法声明 功能介绍
void sendRedirect(String location) 使用指定的重定向位置URL,向客户端发送临时重定向响 应

 

(3)重定向的原理

 

 

 

( 4 ) 重定向的特点

    重定向之后,浏览器地址栏的URL会发生改变

    重定向过程中会将前面Request对象销毁,然后创建一个新的Request对象

    重定向的URL可以是其它项目工程

 

2 转发的概述

(1)转发的概念

    一个Web组件(Servlet/JSP)将未完成的处理通过容器转交给另外一个Web组件继续处理,转发 的各个组件会共享Request和Response对象

 

(2)转发的实现

    绑定数据到Request对象

方法声明 功能介绍
Object getAttribute(String name) 将指定属性值作为对象返回,若给定名称属性不存 在,则返回空值
void setAttribute(String name,Object o) 在此请求中存储属性值

 

    获取转发器对象

方法声明 功能介绍
RequestDispatcher getRequestDispatcher(String path) 返回一个RequestDispatcher对象,该对象充当位 于给定路径上的资源的包装器

 

    转发操作

方法声明 功能介绍
void forward(ServletRequest request, ServletResponse response) 将请求从一个servlet转发到服务器上的另一个资 源(Servlet、JSP文件或HTML文件)

 

(3)转发的特点

    转发之后浏览器地址栏的URL不会发生改变

    转发过程中共享Request对象

    转发的URL不可以是其它项目工程

 

(4) 重定向和转发的比较

 

posted @ 2021-09-14 16:01  Jasper2003  阅读(146)  评论(0编辑  收藏  举报