• 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)

        

  • 相关阅读:
    DevOps的基本原则与介绍
    微信和WeChat的合并月活跃账户达6.97亿
    dedecms手机站图片错误的解决方法
    可以搜索到DedeCms后台文章列表文档id吗?或者快速定位id编辑文章
    Slyce,这家硅谷创业公司的来头你知道吗
    一个canonical标签解决site不在首页的问题
    通过html<map>标签给图片加链接
    解决后台无法进入提示DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value
    六小龄童终究还是没能上春晚
    excel同时冻结首行和首列怎么操作
  • 原文地址:https://www.cnblogs.com/wode007/p/13501845.html
Copyright © 2020-2023  润新知