• request对象域和转发


    1.request是一个域对象,具备以下方法

      setAttribute(string name,Object O)

      getAttribute(String name)

      removeAttribute( String name)

    2.关于域对象的请求转发

    servlet1,servlet2

            // 1.servlet1将请求转发给servlet2
            // 这是在服务器内部的请求(在web15内的请求不需要写为/WEB15/servlet2)
            RequestDispatcher requestDispatcher = request.getRequestDispatcher("/servlet2");
            // 2.执行转发的方法
            requestDispatcher.forward(request, response);

    3.域对象中的数据转发

      servlet1   
             //向request域中存储数据  
            //request域的作用范围  在一次request和response请求中
            request.setAttribute("name", "Tom");   
     
      servlet2       
             //在request域中提取数据
            Object attribute = request.getAttribute("name");
            response.getWriter().write("hello word......"+attribute);              

    4.注意事项

    request域的作用范围:仅在一次request和response请求中有效

    5.完整代码

    servle1

    package com.hdh.forward;
    
    import java.io.IOException;    
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class Servlet1 extends HttpServlet {
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //向request域中存储数据  
            //request域的作用范围  在一次request和response请求中
            request.setAttribute("name", "Tom");
            
            
            // 1.servlet1将请求转发给servlet2
            // 这是在服务器内部的请求(在web15内的请求不需要写为/WEB15/servlet2)
            RequestDispatcher requestDispatcher = request.getRequestDispatcher("/servlet2");
            // 2.执行转发的方法
            requestDispatcher.forward(request, response);
    
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request, response);
        }
    
    }

    servlet2

    package com.hdh.forward;
    
    import java.io.IOException;    
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class Servlet1 extends HttpServlet {
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //向request域中存储数据  
            //request域的作用范围  在一次request和response请求中
            request.setAttribute("name", "Tom");
            
            
            // 1.servlet1将请求转发给servlet2
            // 这是在服务器内部的请求(在web15内的请求不需要写为/WEB15/servlet2)
            RequestDispatcher requestDispatcher = request.getRequestDispatcher("/servlet2");
            // 2.执行转发的方法
            requestDispatcher.forward(request, response);
    
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request, response);
        }
    
    }
  • 相关阅读:
    codeforces 589G G. Hiring(树状数组+二分)
    树状数组的小总结
    virtualenv
    Redis备份与恢复
    Linux 网站相关
    MySQL文章参考
    动态执行表不可访问,本会话的自动统计被禁止 。 在执行菜单里你可以禁止统计,或在v$session,v$sesstat 和 v$statname 表里获得select权限
    app已损坏,打不开。你应该将它移到废纸篓
    macos系统用virtualbox安装Linux系统无法设
    Hadoop 分布式部署HDFS-hadoop用户部署
  • 原文地址:https://www.cnblogs.com/asndxj/p/9830451.html
Copyright © 2020-2023  润新知