zoukankan      html  css  js  c++  java
  • web基础----->servlet中得到请求的数据

      对tomcat的源码做一些分析,今天我们就开始servlet中的请求分析。

    form表单中的默认类型

    一、在index.jsp中get请求:

    <form action="ParameterServlet" method="get">
        username: <input type="text" name="username"/><br>
        password: <input type="password" name="password"/><br>
        file:<input type="file" name="file"><br>
        <input type="submit" value="submit">
    </form>

    二、在ParameterServlet中的doGet方法中:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletInputStream inputStream = request.getInputStream();
        System.out.println("queryUrl: " + request.getMethod() + ", data: " + request.getQueryString());
        System.out.println("--------------------------------------------------------------------------");
        int len;
        while((len = inputStream.read()) != -1) {
            System.out.print((char)len);
        }
        inputStream.close();  
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    get请求的结果:

    queryUrl: GET, data: username=huhx&password=123456&file=efdjoue.png
    --------------------------------------------------------------------------

    post请求结果:

    queryUrl: POST, data: null
    --------------------------------------------------------------------------
    username=huhx&password=123456&file=test.png

    三、get和post请求的一些总结

    getQueryString方法得到的url中的请求参数部分,而request.getInputStream读取的是请求体的内容。对于get请求来说,从请求流中读取的数据是为空的。

    form表单中的multipart类型

    修改form表单的enctype为:multipart/form-data

    一、index.jsp如下:

    <form action="ParameterServlet" method="get" enctype="multipart/form-data">
        username: <input type="text" name="username"/><br>
        password: <input type="password" name="password"/><br>
        file:<input type="file" name="file"><br>
        <input type="submit" value="submit">
    </form>

    get请求的结果和浏览器的地址url:

    queryUrl: GET, data: username=Linux&password=password&file=efdjoue.png
    --------------------------------------------------------------------------

    post请求的结果:

    queryUrl: POST, data: null
    --------------------------------------------------------------------------
    -----------------------------178538991256
    Content-Disposition: form-data; name="username"
    
    huhx
    -----------------------------178538991256
    Content-Disposition: form-data; name="password"
    
    123456
    -----------------------------178538991256
    Content-Disposition: form-data; name="file"; filename="efdjoue.png"
    Content-Type: image/png
    
    ‰PNG
    ....后面是图片的乱码信息,这里省略....

     二、在设置了multipart/form-data之后的请求中

    • get请求可以使用request.getParameter("username")得到对应的值
    • post请求使用request.getParameter("username")得到的是null,getParameter("file")也是null。

    友情链接

  • 相关阅读:
    ICON 收集
    vs2015with_update_3
    文件大全,以后就从这些格式入手fuzz
    诗词
    tools URL 收集
    (四)ORBSLAM运动估计
    (三)ORB特征匹配
    (二)ORB描述子提取源码思路与实现
    (一)ORB描述子提取
    双目立体匹配——归一化互相关(NCC)
  • 原文地址:https://www.cnblogs.com/huhx/p/tomcatSrc1.html
Copyright © 2011-2022 走看看