forward 和 redirect 区别 深碍√TFBOYSˉ_ 2023-07-18 14:02 1阅读 0赞 重定向的特点:redirect 1. 地址栏发生变化 2. 重定向可以访问其他站点(服务器)的资源 (写了网址可以重定向到百度、网易各种网址) 3. 重定向是两次请求,不能使用request对象来共享 转发的特点:forward 1. 地址栏路径不变 2. 转发只能访问当前服务器下的资源 3. 转发是一次请求,可以使用request对象来共享数据 forward和redirect的区别 1. 路径: 不管是使用转发还是重定向,都会涉及到路径的问题,路径分为相对路径、绝对路径。 绝对路径是指以"/"开头的路径信息。相对路径是指不以"/"开头的路径信息。 (1)request.getRequestDispatcher("/login.jsp").forward(request, response); 其中"/"(login.jsp前面的/)代表 http://服务器ip:端口号/项目名 [http://localhost:8080/Demo3][http_localhost_8080_Demo3] 转发时url为[http://localhost:8080/Demo3][http_localhost_8080_Demo3]/login.jsp (2) response.sendRedirect("/Demo4/ResponseDemo2"); 其中"/"(项目名Demo4前的/)代表 http://服务器ip:端口号/ [http://localhost:8080/][http_localhost_8080_Demo3] 重定向时url为[http://localhost:8080/][http_localhost_8080_Demo3]Demo4/login.jsp 2.工作原理: 请求转发:(1)浏览器向Servlet1发出访问请求。 (2)Servlet1调用forward()方法,在服务器端将请求转发给Servlet2 (3)最终由Servlet2作出相应 (4)一次请求 ** **![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xicWx6Y2g_size_16_color_FFFFFF_t_70][] 重定向:(1)浏览器向Servlet1发出访问请求 (2)Servlet1调用sendRedirect()方法,将浏览器重定向到Servlet2 (3)浏览器向Servlet2发出请求 (4)最终由Servlet2做出响应 (5)两次请求 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xicWx6Y2g_size_16_color_FFFFFF_t_70 1][] 3.从运用地方来说 (1)forward一般用于用户登录的时候,根据角色转到相应的模块 (2)redirect一般用于用于用户注销登录时反水主页面或者跳转到其他的网站 4.从效率来说 (1)forward效率高,而redirect效率低 5.从本质来说 forward转发是服务器上的行为,而redirect重定向是客户端的行为。 **常见面试题** Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。 直接转发方式(Forward),客户端和浏览器只发出一次请求,Servlet、HTML、JSP或其它信息资源,由第二个信息资源响应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的。 间接转发方式(Redirect)实际是两次HTTP请求,服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。 举个通俗的例子: 直接转发就相当于:“A找B借钱,B说没有,B去找C借,借到借不到都会把消息传递给A”; 间接转发就相当于:"A找B借钱,B说没有,让A去找C借"。 [http_localhost_8080_Demo3]: http://localhost:8080/Demo3/login.jsp [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xicWx6Y2g_size_16_color_FFFFFF_t_70]: /images/20230528/f3d33796d7fc482a86a0d2ec2a74666a.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xicWx6Y2g_size_16_color_FFFFFF_t_70 1]: /images/20230528/66ac89cc2d5a4c788916024b8d12fce9.png
还没有评论,来说两句吧...