parameter、Part的区别 – HttpServletRequest

导读:本篇文章讲解 parameter、Part的区别 – HttpServletRequest,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

html页面展示

  html页面的代码

<body>
     <form action="FileServlet" method="post" 
enctype="multipart/form-data">
           <input type="file" name="newFile"/>
           <br><br>
           <input type="text" name="name" value="lrc">
           <br><br>
           <input type="submit" name="上传" value="上传文件"/>
     </form>
</body>


  页面效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vMXQER0W-1576003471109)(en-resource://database/12605:1)]

servlet请求处理

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    System.out.println("\nparameter方式获取参数---------------------------");		
    Enumeration<String> enums= req.getParameterNames();		
    while(enums.hasMoreElements()) {
        String paraName = enums.nextElement();
        String paraValue = req.getParameter(paraName);
        System.out.println(paraName + ": " + paraValue);
    }


    System.out.println("\npart方式获取参数---------------------------");		
    Collection<Part> parts = req.getParts();
    for(Part part : parts) {
        String partName = part.getName();
        String partValue = req.getParameter(partName);
        System.out.println(partName + ": " + partValue);
    }


    System.out.println("\ntext类型标头part-------------------------------------");		
    Part part2 = req.getPart("name");
    System.out.println(part2.getName());
    System.out.println(part2.getContentType());

    Collection<String> headerNames2 = part2.getHeaderNames();
    for(String headName : headerNames2) {
        Collection<String> headValues = part2.getHeaders(headName); 
        System.out.println(headName + ": " + headValues);
    }


    System.out.println("\nfile文件类型标头part---------------------------------");
    Part part = req.getPart("newFile");
    System.out.println(part.getName());
    System.out.println(part.getContentType());
    Collection<String> headerNames = part.getHeaderNames();
    for(String headName : headerNames) {
        Collection<String> headValues = part.getHeaders(headName); 
        System.out.println(headName + ": " + headValues);
    }

}

当文件上传时,控制台的打印情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oh9XFQ2D-1576003471127)(en-resource://database/12607:1)]

结论

  1. Part能获取所有的请求参数的参数名,而Parameter只能获取非文件类型的参数名

  2. Part不能获得普通参数的参数值,只能从 getParameter(String) 获取参数值

  3. 想要上传文件到服务器,必须使用Part获得二进制的输入流

  4. Part能获得上传文件的文件大小、文件类型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/46539.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!