请求转发和重定向的区别

请求转发和重定向的区别

请求转发


请求转发,是一种服务器行为,当客户端请求到达后,服务器进行转发,此时会将请求对象进行保存,地址栏中的URL地址不会改变,得到响应后,服务器端再将响应发送给客户端,这个过程只有一次请求发出。
请求转发和重定向的区别_第1张图片
特点:

  1. 服务器只能在当前内部资源进行跳转
  2. 浏览器地址栏不变
  3. 转发只有一次请求
  4. request数据可以共享

request作用域

通过request对象可以在一次请求中传递数据,经过请求转发,request域中的数据依然存在,可以通过request传输和共享数据。

// 设置域对象内容
request.setAttribute(String name, String value)
// 获取域对象内容
request.getAttribute(String name)
// 删除域对象内容
request.removeAttribute(String name)

重定向


重定向是服务器指导客户端的行为,客户端发出第一个请求,被服务器接收处理后,服务器会作出响应,在响应的同时,服务器会给客户端一个新的资源地址(就是下次请求的地址),当客户端拿到接受到响应后,会马上根据新地址发起第二个请求,服务器接收请求并作出响应,重定向完成。
请求转发和重定向的区别_第2张图片
总结


请求转发 forword 重定向 redirect
一次请求 两次请求
数据在request域中共享 request域中数据不共享
浏览器地址栏不改变 浏览器地址栏改变
只能访问当前服务器下的资源 可以访问其他服务器的资源
服务器行为 客户端行为

链接: 部分图文出处

你可能感兴趣的:(SSM百炼成仙,服务器,servlet,java)