黑龙省建设厅网站首页,办公室隔断,网站关键词排名seo,高端网页设计培训在一个web应用中通过两种方式#xff0c;可以完成资源的跳转#xff1a; 第一种方式#xff1a;请求转发 第二种方式#xff1a;重定向
转发和重定向的区别#xff1a; 代码上的区别#xff1a; 请求转发 // 获取请求转发器对象 RequestDispatcher dispatcher request.…在一个web应用中通过两种方式可以完成资源的跳转 第一种方式请求转发 第二种方式重定向
转发和重定向的区别 代码上的区别 请求转发 // 获取请求转发器对象 RequestDispatcher dispatcher request.getRequestDispatcher(/dept/list); // 调用请求转发器对象的forward方法完成转发 dispatcher.forward(request, response); // 合并一行代码 request.getRequestDispatcher(/dept/list).forward(request, response); // 转发的时候是一次请求不管你转发了多少次。都是一次请求。 // AServlet转发到BServlet再转发到CServlet再转发到DServlet不管转发了多少次都在同一个request当中。 // 这是因为调用forward方法的时候会将当前的request和response对象传递给下一个Servlet。 重定向 // 注意路径上要加一个项目名。 // 浏览器发送请求请求路径上是需要添加项目名的。 // 以下这一行代码会将请求路径“/oa/dept/list”发送给浏览器 // 浏览器会自动的向服务器发送一次全新的请求/oa/dept/list response.sendRedirect(/oa/dept/list); 形式上的区别 请求转发一次请求 在浏览器地址栏上发送的请求是http://localhost:8080/servlet10/a 最终请求结束之后浏览器地址栏上的地址还是这个。没变。 重定向两次请求 在浏览器地址栏上发送的请求是http://localhost:8080/servlet10/a 最终在浏览器地址栏上显示的地址是http://localhost:8080/servlet10/b 转发和重定向的本质区别 请求转发是由WEB服务器来控制的。A资源跳转到B资源这个跳转动作是Tomcat服务器内部完成的。 重定向是浏览器完成的。第二次请求是由浏览器发出的。 请求转发和重定向应该如何选择 - 如果在上一个Servlet当中向request域当中绑定了数据希望从下一个Servlet当中把request域里面的数据取出来使用请求转发机制。 - 剩下所有的请求均使用重定向。重定向使用较多。 跳转的下一个资源有没有要求呢必须是一个Servlet吗 回答不一定跳转的资源只要是服务器内部合法的资源即可。包括Servlet、JSP、HTML..... 请求转发会存在浏览器的刷新问题。 请求转发示意图 重定向示意图