• 获取请求体数据 POST


    • POST获取请求体
      1.   请求体中封装了 POST请求的请求参数
      2.   获取流对象 再从流对象中那数据 一种字节流 一种字符流
      3.   BufferedReader getReader()获取字符输入流 只能操作字符
        1.    ServletInputStream  getInputStream(); 获取字节输入流 可以操作所有类型数据
    1. 获取请求参数通用方式
      1.   String getParameter(String name); 根据参数名称获取参数值 username=zs&password=13
      2.   String getParameterValues(String name);根据参数名称获取参数数组 hobby=ss&&hobby=sdad
      3.   Enumeration<String> getHeaderNames();  后去所有的请求的名称
      4.   Map<String,String[]>getParameterMap(); 获取所有的参数的Map集合
    •  request请求转发 是一中服务器内部资源跳转的方式 
    • request.getRequestDispatcher("...").forward(request,response);
    • 特点 浏览器地址栏路径不发生变化
    • 只能转发到当前服务器内部资源中
    • 转发是一次请求
    • 数据共享
      •   域对象:一个有作用范围的对象,在范围内可以共享数据
      • request域:代表一次请求的范围,一般用于请求转发的多个资源共享数据
    1. Servlet之间数据通信 
    •   setAttribute(String name ,Object obj):存储数据
    •        getAttitube(String name):通过键获取值
    •   removeAttribute(String name);通过键移除键直对
    • 获取ServletContext
    1. ServletContext getServletContext();
    • 对最后一个方法举例
    •     Map<String, String[]> parameterMap = request.getParameterMap();

      Set<String> keySet = parameterMap.keySet();//获取Keyset字符串数组

      for (String name : keySet) {//循环Keyset

      System.out.println(name); //输出键名称

      String[] values = parameterMap.get(name);

      for (String value : values) {

      System.out.println(value);//输出键值数组
      }
      System.out.println("--------");

      }

      }

      

    • GET和POST中文乱码问题  设置流的编码 request.setCharacterEncoding("utf-8"); 即可解决  get不会乱码 post 使用中文 要注意

        注册实例 

    <form action="/reDemo5" method="post">
    <input type="text" placeholder="in" name="username"><br>
    <input type="password" placeholder="out" name="password"><br>
    <input type="submit" value="resgist">
    </form>

        BufferedReader br = request.getReader();
    String line = null;
    while ((line=br.readLine())!=null){
    System.out.println(line);

    }
    }



  • 相关阅读:
    python学习笔记 | 国内常用源镜像地址
    python学习笔记 | macOS Big Sur动态壁纸食用指南
    GitHub README.md文本编写指南
    FAT32、NTFS、exFAT有什么区别?
    python模块详解 | unittest(单元测试框架)(持续更新中)
    Linux学习笔记 | 常见错误之账户密码正确但是登录不进去系统
    数学建模学习笔记 | matlab基本命令及用法
    selenium自动化 | 借助百度AI开放平台识别验证码登录职教云
    JAVA集合框架
    JAVA集合框架
  • 原文地址:https://www.cnblogs.com/yitaqiotouto/p/12437271.html
Copyright © 2020-2023  润新知