重定向与转发的区别以及教程

重定向与转发

转发与重定向的区别

流程图

在这里插入图片描述

1.重定向方案

1.1 针对浏览器某次请求,需要服务器中多个Servlet参与其中,但是浏览器一次只能请求一个资源文件,
导致用户为了得到服务结果需要通过浏览器发起多次请求(比如:按钮,超链接啊,什么的等等),
增加用户获得服务难度,导致用户流失
红线:无论本次请求中涉及多少个Servlet,用户只需要手动发起一次请求
1.2 依赖命令
依赖命令:response.sendRedirect(“地址”);
1.3 如何判断浏览器是不是重定向
重定向在第一次请求的时候,他是302状态码,在第一次请求完毕之后,转给最终文件的时候,会成为200状态码
1.4 重定向的请求方式
请求方式是GET方式从第二次请求开始是通过浏览器地址发起的,因此请求方式一定是GET
1.5 重定向可以访问很多资源,不是仅局限于当下,他可以访问其它网站的资源 ,但是区别于转发的话重定向速度较慢
在这里插入图片描述

2. 转发方案

2.1 请求转发解决方案,只适用于在一个网站中访问资源,他发起请求只需要发送一次,在tomcat服务器里面,
当一个文件接收到处理请求后,本次请求对象将会代替浏览器向tomcat服务器索要当前网站中的指定对象,发起第二次请求
2.2 但是这个方案只仅限于内部资源最大范围就是内部资源,和重定向相比,也就是取反。
2.3 //通过请求对象获得资源申请对象
RequestDispatcher report = request.getRequestDispatcher(“地址”);
//将资源申请对象发送给tomcat
report.forward(请求对象(request),响应对象(response))

2.4 请求转发过程中,为什么将请求对象和响应对象交给tomcat
因为tomcat只有在接收到请求协议包的时候会创建两个对象,一个是请求对象,一个是响应对象,但是当一个对象(OneServlet)处理完前半部分之后,tomcat会收到一次请求,这个请求这个对象(OneServlet)代替浏览器发起的,但是这次请求是浏览器发送的吗?不是,他是这个对象(OneServlet)代替浏览器发送的,tomcat没有收到新的请求协议包,他就不会创建新的请求对象,和新的响应对象

  • 他们最终处理的是一个请求,所以他们共享一个请求协议包

  • 请求转发过程中,两个Servlet应该共享同一个请求协议包,因此,共享这个请求协议包关联的请求对象和响应对象

  • 通过请求对象调用的Servlet接受的请求方式,再同一次请求转发过程中,所有Servlet接受请求都一致

  • 他完善了重定向的缺点,速度较快,因为你想嘛他不用转发直接一条龙。重定向还需要委托一个人帮忙当然没有直接来的快了。

在这里插入图片描述

3 request内置对象常用的方法

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值