zoukankan      html  css  js  c++  java
  • HttpServletRequest

      在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response。

    request的运行流程

     通过抓包工具抓取Http请求

       因为request代表请求,所以我们可以通过该对象分别获得Http请求的请求行,请求头和请求体

    通过request获得请求行

      获得客户端的请求方式:String getMethod()

      获得请求资源:

        String getRequsetURI()

        StringBuffer getRequestURL()

        String getContextPath()  --web应用的名称

        String getQueryString()  --get提交url地址后的参数字符串

          username=zhangsan&password=123

      注意:request获得客户机(客户端)的一些信息

        request.getRemoteAddr()  --获得访问的客户端IP地址

    通过request获得请求头

      long getDateHeader(String name)

      String getHeader(String name)

      Enumeration getHeaderNames()

      Enumeration getHeaders(String name)

      int getIntHeader(String name)

      referer头的作用:获取该访问的来源做防盗链

    通过request获得请求体

      请求体中的内容通过post提交的请求参数,格式是:

      username=zhangsan&password=123&hobby=football&hobby=basketball

        key-----------------value

        username   [zhangsan]

        password   [123]

        hobby      [football,basketball]

      以上面参数为例,通过一下方法获得请求参数:

        String getParameter(String name)

        String[] getParameterValues(String name)

        Enumeration getParmeterNames()

        Map<String,String[]> getParameterMap()

      注意:get请求方式的请求参数 上述的方法一样可以获得

        解决post提交方式的乱码:request.setCharacterEncoding("UTF-8");

        解决get提交方式的乱码:parameter=new String(parameter.getbytes("iso8859-1"),"utf-8");

     request的其他功能

      1.request是一个域对象

        request对象也是一个储存数据的区域对象,方法:

        setAttribute(String name,Object o)

        getAttribute(String name)

        removerAttribute(String name)

        注意:request域的作用范围:一次请求中

      2.request完成请求转发

        获得请求转发器----path是转发的地址

        RequestDispatcher getRequestDispatcher(String path)

        通过转发器对象转发

        requestDispathcer.forward(ServletRequest request,ServletResponse response)

        

  • 相关阅读:
    被老板批评“公司离开谁都照转,谁的工作干不好谁走人”,你会立马辞职吗?
    开课啦 dubbo-go 微服务升级实战
    如何通过 Serverless 提高 Java 微服务治理效率?
    Alluxio 助力 Kubernetes,加速云端深度学习
    收藏!这些 IDE 使用技巧,你都知道吗
    基于 Wasm 和 ORAS 简化扩展服务网格功能
    基于 KubeVela 与 Kubernetes 打造“无限能力”的开放 PaaS
    Kubernetes 稳定性保障手册 -- 日志专题
    Kubernetes 稳定性保障手册 -- 极简版
    Serverless 如何在阿里巴巴实现规模化落地?
  • 原文地址:https://www.cnblogs.com/wode007/p/13501845.html
Copyright © 2011-2022 走看看