请求转发和重定向区别
请求转发和重定向区别
地址栏
请求转发:地址栏不变
重定向:地址栏改变 (发送了第二次请求)
是否保留数据
请求转发:保留 (请求传送过来的数据会转发到新的jsp中)
重定向:不保留 (请求传送过来的数据不会转发到新的jsp中)
请求的次数
请求转发:1次
重定向:2次
跳转的位置
请求转发:服务器内部发送跳转
重定向:客户端发出第二次跳转
能跳转的资源
请求转发:跳转到项目内的文件(能跳到WEB-INF里面)
重定向:跳转到任何能访问的资源(不能跳动项目里的WEB-INF文件夹里面的文件,原因:浏览器发起的请求,权限不够)
图解:
请求转发:地址栏没改变,转发发生在服务器内部,所以只能跳到项目内存在的文件,并且携带数据。
重定向:其实是叫浏览器去找新的jsp文件,不带原数据,地址栏改变。其实是叫浏览器发起新的请求,能跳到任意能访问的资源(因为是浏览器发起新的请求,所以能跳到百度等网页),但跳转不到WEB-INF里面,因为浏览器无权直接访问WEB-INF里面的项目。