• 入门servlet:request请求转发和共享数据


    request 请求转发:一种在服务器内部的资源跳转方式

      步骤:

        1.通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)

        2.使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)

      特点:

        1. 浏览器地址路径不发生改变

        2. 只能转发到当前服务器内部资源中

        3. 转发是一次请求

    request 共享数据(域对象)

      * 域对象:一个有作用范围的对象,可以在范围内共享数据

      * request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据

      * 方法:

        1. void setAttribute(String name,Object obj):存储数据

        2. Object getAttribute(String name):通过键获取值

        3. void removeAttribute(String name):通过键移除键值对

    servletA:

     1 @WebServlet("/RequestDemo8")
     2 public class RequestDemo8 extends HttpServlet {
     3     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     4         System.out.println("demo8............");
     5         //转发到demo9
     6 
     7 //        RequestDispatcher requestDispatcher = request.getRequestDispatcher("/RequestDemo9");
     8 //        requestDispatcher.forward(request,response);
     9 
    10         //存储数据到request域中
    11         request.setAttribute("flypig","666");
    12 
    13         request.getRequestDispatcher("/RequestDemo9").forward(request,response);
    14     }
    15 
    16     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    17         //get获取请求参数
    18 
    19         //根据参数名称获取参数值
    20 //        String username = request.getParameter("username");
    21 //        System.out.println("get");
    22 //        System.out.println(username);
    23 
    24         this.doPost(request,response);
    25     }
    26 }

    servletB:

     1 @WebServlet("/RequestDemo9")
     2 public class RequestDemo9 extends HttpServlet {
     3     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     4 
     5         //获取数据,
     6         Object attribute = request.getAttribute("flypig");
     7         //转发资源时才能共享数据
     8         System.out.println(attribute);
     9 
    10         System.out.println("demo9...........");
    11 
    12     }
    13 
    14     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    15         //get获取请求参数
    16 
    17         //根据参数名称获取参数值
    18 //        String username = request.getParameter("username");
    19 //        System.out.println("get");
    20 //        System.out.println(username);
    21 
    22         this.doPost(request,response);
    23     }
    24 }
  • 相关阅读:
    redisserver 双击闪退
    PHP QueryList采集器
    【ubuntu】配置国内源
    【ffmpeg基础知识】文件的删除和重命名
    【ffmpeg基础知识】打印视频meta信息
    Ubuntu下pkgconfig环境变量配置
    音视频基础知识
    【linux小技巧】返回上一个目录,vi默认显示行号,vi多窗口
    【ffmpeg基础知识】ffmpeg操作目录实现list
    【ffmpeg基础知识】日常日志
  • 原文地址:https://www.cnblogs.com/flypig666/p/11480537.html
Copyright © 2020-2023  润新知