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()获取值。

  • 相关阅读:
    随风而行(Android运动提示)
    Android简单的四则随机运算
    随手记(一)(六)
    随手记(五)
    随手记(四)
    随手记(三)
    随手记(二)
    痛点以及需求分析
    WC项目解析统计文本文件中的字符数、行数、单词数
    个人项目需求分析粉日记
  • 原文地址:https://www.cnblogs.com/danhuang/p/12825842.html
Copyright © 2011-2022 走看看