• Servlet request获取请求数据(请求行,请求体,请求体)


    请求行:GET/request-demo/req1?/username=zhangsan HTTP/1.1

    1.请求行:

      *String getMethod():获取请求方式 GET

      *String getContextPath():获取虚拟目录(项目访问路径):/request-demo

      *StringBuffer getRequestURL():获取url(统一资源定位符):http:/localhost:8080/request-demo/req1

      *String getRequestURL():获取url(统一资源定位符):/request-demo/req1

      *String getQueryString():获取请求参数(GET/username=zhangsan&password=123

     2.请求头 :

    例如:User-Agent:Mozilla/5.0 Chrome/103.0.5060.134//获取客户端浏览器的版本信息

    String getHeader(String name):根据请求头名称,获取值

    3.请求体:

    例如:username=zhangsan&password=123

    ServletInputStream getInputStream():获取字节输入流

    BufferReader getReader():获取字符输入流

    代码演示:

    1. package com.itheima.web;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.annotation.WebServlet;
    4. import javax.servlet.http.HttpServlet;
    5. import javax.servlet.http.HttpServletRequest;
    6. import javax.servlet.http.HttpServletResponse;
    7. import java.io.BufferedReader;
    8. import java.io.IOException;
    9. @WebServlet("/req1")
    10. public class request_demo01 extends HttpServlet {
    11. /*
    12. *String getMethod():获取请求方式 GET
    13. *String getContextPath():获取虚拟目录(项目访问路径):/request-demo
    14. *StringBuffer getRequestURL():获取url(统一资源定位符):http:/localhost:8080/request-demo/req1
    15. *String getRequestURL():获取url(统一资源定位符):/request-demo/req1
    16. *String getQueryString():获取请求参数(GET)/username=zhangsan&password=123
    17. */
    18. @Override
    19. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    20. String method = req.getMethod();
    21. System.out.println(method); //获取请求方式 GET
    22. String contextPath = req.getContextPath();
    23. System.out.println(contextPath);//获取虚拟目录(项目访问路径)(模块)
    24. StringBuffer stringBufferRequestURL = req.getRequestURL();
    25. System.out.println(stringBufferRequestURL);//获取url(统一资源定位符),获取全目录
    26. String requestURI = req.getRequestURI();
    27. System.out.println(requestURI);//获取url(统一资源定位符)(模块+访问文件名称)
    28. String queryString = req.getQueryString();
    29. System.out.println(queryString);//:获取请求参数(GET)地址栏参数
    30. //-------------
    31. //获取请求头浏览器版信息
    32. String header = req.getHeader("User-Agent");
    33. System.out.println(header);
    34. }
    35. @Override
    36. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    37. //-------------
    38. //获取请求体POST
    39. //1.获取字符输入流
    40. BufferedReader reader = req.getReader();
    41. //读取数据
    42. String s = reader.readLine();
    43. System.out.println(s);
    44. }
    45. }

    效果演示:

     总结:

    1.第一行是获取post的请求体

    2.最后一行是获取请求头,也就是浏览器的版本

    3.中间的几行是获取的去请求行,也就是地址栏里面的参数

  • 相关阅读:
    sqlmap 执行后打开其它程序
    SNERT预备队招新CTF体验赛-Misc(SWCTF)
    AD拼板技巧
    域渗透委派攻击之约束委派
    2022年高教社杯国赛A题思路——波浪能最大输出功率设计
    驱动开发1 概念、内核模块编程、内核消息打印函数printk函数的使用、内核模块传参、内核导出符号
    【Ubuntu搭建MQTT Broker及面板+发布消息、订阅主题】
    Go Run - Go 语言中的简洁指令
    LeetCode - 611.有效三角形个数
    apifox 针对测试使用教程(持续更新)
  • 原文地址:https://blog.csdn.net/qq_51272114/article/details/126028377