requset转发和response重定向的区别

response:
response是服务器对客户端的反馈,其对页面重定向的流程是:当客户端向服务器发起请求时,服务器重新给客户端一个URL地址,让客户端重新发起一个新的请求,在这个过程中,客户端第一次请求所携带的头信息将消失,在重定向之后而且地址栏显示的是重定向的页面,这是一种客户端行为。

注意:通过重定向无法访问WEB-INF中的资源,因为重定向是客户端行为,相当于浏览器重新输入URL,而WEB-INF中的内容无法通过输入URL来访问。

request:
request是客户端对服务器的请求,其跳转页面的流程是,当客户端向服务器发起跳转请求时,服务器帮助客户端把跳转的页面加载到当前页面中来,地址栏显示的还是跳转之前的页面,而跳转之前客户端发起请求的头信息还是存在的。这是一种服务器行为。request中存储的的属性还是保留的。通过Forward只能发送请求道webapp下的资源。

通俗的说,request转发是将你的请求转发到另一个页面,所以包括你请求的数据都会转发过去。response重定向是将服务器对客户端的响应重定向到另一个页面,相当于一个页面的转换。所以当需要夹带一些数据到另一个界面时,用request转发,当你只需要跳转到另一个页面时,用response重定向

在做增删改请求操作的时候不可用转发,只能用重定向

**原因:**由于转发之后地址栏不变,请求(request)内容不变,再次刷新页面的时候,请求将再次发送,造成重复操作执行,造成错误。

在做查询操作时,只能转发,不能使用重定向。

**原因:**重定向后请求会将原本的查询请求覆盖,刷新之后将得不到要查询的数据。

你可能感兴趣的:(requset转发和response重定向的区别)