jsp include和forward区别 jsp中forward的用法

用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的 。根据转发方式的不同 , 可以区分为直接请求转发(Forward)和间接请求转发(Redirect),那么这两种转发方式有何区别呢?本文将由千锋广州Java培训老师跟大家分享一下 。

jsp include和forward区别 jsp中forward的用法

文章插图
一、从定义上看:
forward是服务器请求资源,服务器直接访问目标地址的URL , 把那个URL的响应内容读取过来,然后把这些内容再发给浏览器 。浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址 。
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址 。所以地址栏显示的是新的URL 。所以redirect等于客户端向服务器端发出两次request,同时也接受两次response 。
二、从原理上看:
Forward(直接转发方式)用的更多一些,一般说的请求转发指的就是直接转发方式 。Web应用程序大多会有一个控制器 。由控制器来控制请求应该转发给那个信息资源 。然后由这些信息资源处理请求,处理完以后还可能转发给另外的信息资源来返回给用户,这个过程就是经典的MVC模式 。
Redirect(间接转发方式),有时也叫重定向 , 它一般用于避免用户的非正常访问 。例如:用户在没有登录的情况下访问后台资源,Servlet可以将该HTTP请求重定向到登录页面,让用户登录以后再访问 。
三、从工作流程上看:
forword过程:客户浏览器发送http请求--->web服务器接受此请求--->调用内部的一个方法在容器内部完成请求处理和转发动作--->将目标资源 发送给客户 。
redirect过程:客户浏览器发送http请求--->web服务器接受后发送302状态码响应及对应新的location给客户浏览器--->客户浏览器发现 是302响应 , 则自动再发送一个新的http请求,请求url是新的location地址--->服务器根据此请求寻找资源并发送给客户 。
四、从运用的地方上看
forword 一般用于用户登录的时候,根据角色转发到相应的模块;
redirect一般用于用户注销登录时返回主页面或者跳转到其他网站 。
五、从效率上看:
forword效率高 , 而redirect效率低 。
【jsp include和forward区别 jsp中forward的用法】以上就是千锋广州Java老师对Forward和Redirect的区别的总结介绍,欢迎大家一起交流补充!
?