web应用程序开发学习笔记4

**

请求转发与重定向区别

**

(1)请求转发是服务器内部的跳转,访问的是站内的资源,地址栏不会发生改变。重定向可以访问站外资源、也可以访问站内资源地址栏会发生改变。
(2)请求转发,只是包含一次请求,一次响应。重定向有两次请求,两次响应。
(3)请求转发可以通过request域共享数据。重定向两次请求对应两个不同的request对象,不可以通过request域共享数据,可以使用会话对象session,或者servercontext里的application对象,它的作用域是整个web应用程序
(4)请求转发是由request对象发起的request.getRequestDisipatcher("…").forward(request,response);
重定向是由response对象发起的:response.sendRedirect("…");
(6)请求转发与重定向的访问路径参数写法不同:
重定向要跳转的路径是从浏览器再次发送的,是浏览器路径,这时候写法为: /web工程名/资源
请求转发是服务器内部跳转,这时它与浏览器无关,写法: /资源

理解重定向:在重定向中,请求是页面重新发送的,所以在请求中获取不到原始要提交的数据。即使在重定向前对原始请求做了处理,也是徒劳的。因为请求对象和响应的对象的生命周期只存在于一次请求和响应中。客户端第一次发出请求,此时的请求为请求A,服务器接收到请求,生成对应的响应,然后程序遇到重定向语句,无论此时的请求和响应是什么,服务器向浏览器发送一个Location响应头,告诉浏览器访问其他资源,响应都会变成固定的:状态码为302,响应数据中包含重定向的组件地址。在浏览器响应之后,请求A和响应都消失了,然后浏览器自动的发出新的请求——请求B。
状态码是可以设置的建议使用301搜索引擎以及用户收藏夹的旧地址会发生404,造成访问流量的丢失)
301永久性转移 搜索引擎抓取新内容的同时将旧地址换为重定向的地址
302暂时性转移 旧地址的资源还在(仍然可以访问),这个重定向只是临时地从旧地址跳转到地址,搜索引擎会抓取新的内容而保存旧的网址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值