• 转发(request.setRequestDispacter)和重定向(response.sendRedirect)的区别以及转发的include和forward的区别


    //response 重定向的时候,url是会跳转到新的页面的,输入的地址要包含项目名(可以跳到项目之外的页面,比如百度)
    //request 请求转发的时候,url是不会跳转到新页面的,输入的地址不包含项目名(只可以在此项目中进行跳转 )

    /*request.getRequestDispatcher("/RquestDemo5").forward(request, response);
    *request.getRequestDispatcher("/RquestDemo5").include(request, response); 的区别
    *
    *在原页面out.write("11111") ,在新的页面out.write("22222");
    *
    *forward :在浏览器显示的是 22222
    *include :在浏览器中显示的11111
    */

    这个自己写一两个小demo试一试就知道了

    页面一(原页面):

    package com.chensi;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet  请求转发和请求重定向  进行一下 对比
     */
    @WebServlet("/RequestDemo4")
    public class RequestDemo4 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            
            String str = "66666";
            request.setAttribute("str", str);
            //request.getRequestDispatcher("/RequestDemo/RquestDemo5").forward(request, response);
            request.getRequestDispatcher("/RquestDemo5").forward(request, response);
            //request.getRequestDispatcher("http://WWW.baidu.com").forward(request, response);
            //response.sendRedirect("/RequestDemo/RquestDemo5");
            //response.sendRedirect("http://WWW.baidu.com");
            //request.getRequestDispatcher("/RquestDemo5").include(request, response);
            response.getWriter().write("111111111111");
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }

    页面二(被跳转的页面):

    package com.chensi;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class RquestDemo5
     */
    @WebServlet("/RquestDemo5")
    public class RquestDemo5 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            //System.out.println("我试试 进没进来这个demo5");
            //response.getWriter().write("这个是被转发或者重定向 的页面!!!demo5");
            //System.out.println(request.getAttribute("str"));
            response.getWriter().write("22222222");
    
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }
  • 相关阅读:
    编译安装Nginx和php搭建KodExplorer网盘
    mysql二进制安装及基础操作
    Apache环境下搭建KodExplorer网盘
    编译安装Apache httpd和php搭建KodExplorer网盘
    KodExplorer介绍
    Nginx反向代理、负载均衡及日志
    Nginx include和Nginx指令的使用
    Nginx auto_index和auth_basic
    [译]在 64bit 环境中执行32 bit的SSIS包
    [译]SSIS 通过环境变量配置数据源连接参数
  • 原文地址:https://www.cnblogs.com/zhanghaoliang/p/5623822.html
Copyright © 2020-2023  润新知