zoukankan      html  css  js  c++  java
  • [Java][Web] Servlet中转发和重定向比较

    Servlet中页面跳转的两种方式

    请求转发

    使用requestDispatcher对象

    request.getRequestDispatcher("path").forward(request, response);
    

    使用JSP动作元素

    <jsp:forward page="/">
    

    请求重定向

    使用response的sendRedirect方法

    response.sendRedirect("path");
    

    请求转发与请求重定向的区别

    1. 转发是在服务器内部完成,是服务器内部的跳转;重定向是在客户端完成,是客户端的跳转。
    RequestDispatcher.forward方法在服务器内部请求转发给另外一个资源,浏览器只知道发出去了请求并得到结果,但不知道请求在服务器内部的转发。
    HttpServletResponse.sendRedirect方法是服务端接收了客户端的请求,并返回给客户端结果,这个结果是告诉客户端去请求另外一个资源,并且当前会话关闭,因此客户端会跳转到另外一个解面。
    
    1. 转发地址栏不会改变;重定向地址栏会改变。
    2. 由于转发是在服务器内部进行的,因此转发只能转发给同一个WEB项目范围内的资源;而重定向可以指定任何地方。
    3. 由于转发是在服务器内部进行,转发前后服务器内部共享同一个request和response对象;而重定向前后分别对应不同的request和response对象。
  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/10926082.html
Copyright © 2011-2022 走看看