• HttpServletRequest对象,请求行、请求头、请求体


    HttpServletRequest

    公共接口类HttpServletRequest继承自ServletRequest。客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。对象包含了客户端请求信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。HttpServletResponse继承了ServletResponse接口,并提供了与Http协议有关的方法,这些方法的主要功能是设置HTTP状态码和管理Cookie。
      request就是将请求文本封装而成的对象,所以通过request能获得请求文本中的所有内容,请求头、请求体、请求行 。

    1.请求行(https://baike.baidu.com/item/HTTP请求/10882159)

    • String getRemoteAddr()返回发送请求的客户端或最后一个代理的Internet协议**(IP)地址**。对于HTTP servlets,与cgi变量remote_addr的值相同。
      返回:
      包含发送请求的客户端的IP地址的字符串
    • String getMethod()返回用于发出此请求的HTTP方法的名称,例如GET、POST或PUT。与CGI变量REEST方法的值相同。
      返回:
      指定用于发出此请求的方法的名称的字符串
    • String getQueryString() 返回路径后请求URL中包含的查询字符串。如果URL没有查询字符串,则此方法返回空值。与CGI变量查询字符串的值相同。
      返回:
      包含查询字符串的字符串,如果URL不包含查询字符串,则为空。该值未被容器解码。
    • String getRequestURI()返回从协议名到HTTP请求第一行查询字符串的该请求的URL部分。Web容器不解码此字符串。
      返回:
      包含从协议名到查询的URL部分的字符串
    • String getRequestURL()重新构造客户端用于发出请求的URL。返回的URL包含协议、服务器名称、端口号和服务器路径,但不包含查询字符串参数。
      如果此请求已使用RequestDispatcher.Forward(javax.servlet.servletRequest、javax.servlet.servletResponse)转发,则重建的URL中的服务器路径必须反映用于获取RequestDispatcher的路径,而不是客户端指定的服务器路径。
      由于此方法返回的是StringBuffer,而不是字符串,因此可以轻松修改URL,例如附加查询参数。
      此方法对于创建重定向消息和报告错误很有用。
      返回:
      包含重建的URL的StringBuffer对象
    • String getServletPath()返回此请求的URL中调用servlet的部分。此路径以“/”字符开头,包括servlet名称或servlet的路径,但不包括任何额外的路径信息或查询字符串。与cgi变量script_name的值相同。
      如果用于处理此请求的servlet使用“/”模式匹配,则此方法将返回空字符串(“”)。
      返回:
      包含被调用servlet的名称或路径的字符串,如请求URL中指定,已解码,或者如果用于处理请求的servlet使用“/
      ”模式匹配,则为空字符串。
    • String getContextPath()返回请求URI中指示请求上下文的部分。上下文路径总是位于请求URI的第一位。路径以字符开头,但不以字符结尾。对于默认(根)上下文中的servlet,此方法返回“”。容器不解码此字符串。
      servlet容器可能通过多个上下文路径匹配上下文。在这种情况下,此方法将返回请求使用的实际上下文路径,并且可能与servletcontext.getContextPath()方法返回的路径不同。servletContext.getContextPath()返回的上下文路径应被视为应用程序的第一个或首选上下文路径。
      返回:
      指定请求URI的一部分的字符串,该部分指示请求的上下文
    		String remoteAddr = request.getRemoteAddr();
            String remoteUser = request.getRemoteUser();
            String method = request.getMethod();
            String contextPath = request.getContextPath();
            String servletPath = request.getServletPath();
            String queryString = request.getQueryString();
            String requestURI = request.getRequestURI();
            StringBuffer requestURL = request.getRequestURL();
    

    结果

    		0:0:0:0:0:0:0:1
            null
            GET
                    /JdbcTemplate_war_exploded
                    /a
            age=18&name=jack
                    /JdbcTemplate_war_exploded/a
            http://localhost:8999/JdbcTemplate_war_exploded/a
    

    2.请求头

    key-value
    请求头(Request Header)
    请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。
    在这里插入图片描述

    重要方法

    • String getHeader(String name)//返回指定请求头的值
      String getHeader(String name)以字符串形式返回指定请求头的值。如果请求不包含指定名称的头,则此方法返回空值。如果有多个具有相同名称的头,此方法将返回请求中的第一个头。头名称不区分大小写。您可以将此方法用于任何请求头。
      参数:
      名称-指定头名称的字符串
      返回:
      包含请求头的值的字符串,如果请求没有该名称的头,则为空。

    • Enumeration<String> getHeaderNames()
      返回此请求包含的所有头名称的枚举。如果请求没有头,则此方法返回空枚举。
      某些servlet容器不允许servlet使用此方法访问头,在这种情况下,此方法返回空值
      返回:
      与此请求一起发送的所有头名称的枚举;如果请求没有头,则为空枚举;如果servlet容器不允许servlet使用此方法,则为空
      枚举遍历类似迭代器

    		Enumeration<String> headers = request.getHeaderNames();
            while (headers.hasMoreElements()){
                System.out.println(headers.nextElement());
            }
    

    结果

    host
    connection
    cache-control
    upgrade-insecure-requests
    user-agent
    sec-fetch-mode
    sec-fetch-user
    accept
    sec-fetch-site
    accept-encoding
    accept-language
    cookie
    

    3.请求体

    post方法才有请求体
    在这里插入图片描述

  • 相关阅读:
    [ActionSprit 3.0] FMS直播
    Selenium学习之==>Css Selector使用方法
    Selenium学习之==>Xpath使用方法
    Selenium学习之==>WebDriver驱动对照表
    Selenium学习之==>Selenium介绍
    HTML学习之==>JS
    HTML学习之==>DOM操作
    HTML学习之==>CSS
    HTML学习之==>HTML标签
    Python学习之==>线程&&进程
  • 原文地址:https://www.cnblogs.com/BIG-BOSS-ZC/p/11807339.html
Copyright © 2020-2023  润新知