zoukankan      html  css  js  c++  java
  • getRequestDispatcher 中请求转发和请求包含的使用说明

    getRequestDispatcher()

    getRequestDispatcher() 包含两个方法,分别是请求转发和请求包含。

    RequestDispatcher rd = request.getRequestDispatcher("/MyServlet");
    rd.forward(request, response);  // 请求转发
    rd.include(request, response);  // 请求包含
    
    • 请求转发:当前Servlet可以设置响应头,由下一个Servlet完成响应体,下一个Servlet输出响应体后,当前Servlet不可以继续输出!(留头不留体)
    • 请求包含:当前Servlet可以设置响应头,由两个Servlet共同完成响应体,下一个Servlet输出响应体后,当前Servlet可以继续输出!(留头又留体)

    无论是请求转发还是请求包含,都在一个请求范围内!使用同一个request和response。

    请求转发和重定向的区别

    • 请求转发只有一次请求和一次响应,重定向有两次请求和两次响应。
    • 请求转发地址不发生改变,重定向会跳转到后一个请求的地址。
    • 请求转发只能转发到本项目的其它Servlet,重定向不只能重定向到本项目的其它Servlet,还能重定向到其它项目。
    • 请求转发是服务端行为,只需给出转发的Servlet路径,重定向需要给出requestURI,既包含项目名。

    请求值传递

    同一个请求范围内可以使用request.setAttribute()和request.getAttribute()来相互传值。前一个Servlet调用setAttribute()保存值,后一个Servlet调用getAttribute()获取值。

  • 相关阅读:
    移动开发 Native APP、Hybrid APP和Web APP介绍
    urllib与urllib2的学习总结(python2.7.X)
    fiddler及postman讲解
    接口测试基础
    UiAutomator2.0 和1.x 的区别
    adb shell am instrument 命令详解
    GT问题记录
    HDU 2492 Ping pong (树状数组)
    CF 567C Geometric Progression
    CF 545E Paths and Trees
  • 原文地址:https://www.cnblogs.com/danhuang/p/12825842.html
Copyright © 2011-2022 走看看