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对象。
  • 相关阅读:
    Hashset;HashMap;ArrayList;
    排序方法(冒泡排序,直接选择排序,反转排序);
    父类引用指向子类的对象;
    SQL分支语句与循环语句
    ORCAL 数据库的约束以及SQL语言的四种类型
    Oracle基础数据类型与运算符
    集合
    数组的几种排序
    转换日期格式的工具类
    equals方法重写
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/10926082.html
Copyright © 2011-2022 走看看