zoukankan      html  css  js  c++  java
  • Request对象实现请求转发

          在实现之前我们首先应该了解请求转发请求重定向的概念和区别:https://www.cnblogs.com/haimishasha/p/5952129.html

           在Servlet中,我们是通过ReqDispatcher对象来实现请求转发,Servlet把请求转发给Servlet、HTML、JSP或其它信息资源,由第2个信息资源响应该请求,两个信息资源共享同一个request对象。

          有两种方式可以获取这个对象:

           

             //1.通过ServletContent.getReqDisPathcer()获取ReqDisPathcer对象,再调用该对象的forward()实现请求转发
            RequestDispatcher requestDispatcher= this.getServletContext().getRequestDispatcher("/test.jsp");
            requestDispatcher.forward(request,response);
            //2.通过Request.getDisPatcher()获取ReqDisPatcher对象,再调用该对象的forward()实现请求转发
            RequestDispatcher requestDispatcher=request.getRequestDispatcher("/test.jsp").forward(request,response);

     下面我们可以来看一个Demo:

      在TestReqDispatcher Servlet中将请求转发至test.jsp

      

    package com.java.controller;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    public class TestReqDispatcher extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String data="今天天气很好";
            request.setAttribute("data",data);
            //1.通过ServletContent.getReqDisPathcer()获取ReqDisPathcer对象,再调用该对象的forward()实现请求转发
            RequestDispatcher requestDispatcher= this.getServletContext().getRequestDispatcher("/test.jsp");
            requestDispatcher.forward(request,response);
            //2.通过Request.getDisPatcher()获取ReqDisPatcher对象,再调用该对象的forward()实现请求转发
            //RequestDispatcher requestDispatcher=request.getRequestDispatcher("/test.jsp").forward(request,response);
        }
        public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    
    }

     test.jsp

      

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>大家好</title>
    </head>
    <body>
    普通方式取出data:
    <h2><%= request.getAttribute("data")%></h2>
    EL表达式取出data:
    <h2>${data}</h2>
    
    </body>
    </html>

      好了,我们看一下在浏览器输出的结果:

      

        

  • 相关阅读:
    Excel相关界面
    延时函数
    VBA窗体之ListView分页显示
    VBA窗体之ListView
    医疗机构税收大全及理论探讨(2018年)
    VBA_Xpath定位元素
    VBA_CSS定位元素
    VBA_DOM定位元素
    VBA_IE&HTTP
    Listbox
  • 原文地址:https://www.cnblogs.com/fankailei/p/10008449.html
Copyright © 2011-2022 走看看