zoukankan      html  css  js  c++  java
  • 转发(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);
        }
    
    }
  • 相关阅读:
    Web2.0技能评测
    [收藏]流程设计和优化原则
    [读书笔记1] 卓有成效的管理者(彼得.德鲁克)
    [读书笔记3] 卓有成效的管理者聚焦贡献
    [读书笔记2] 卓有成效的管理者管理时间
    动态生成的Web软件 应该如何设计???
    Logs
    JQuery推荐插件(200+)
    Spring AOP 实例
    《JavaScript凌厉开发Ext详解与实践》一书说了些什么
  • 原文地址:https://www.cnblogs.com/zhanghaoliang/p/5623822.html
Copyright © 2011-2022 走看看