zoukankan      html  css  js  c++  java
  • java学习笔记-JavaWeb篇四

    86 文件上传基础

    87 使用 fileupload 组件

    88 文件上传案例_需求

    89 文件上传案例_JS代码

    90 文件上传案例_约束的可配置性

    91 文件上传案例_总体步骤分析

    92 文件上传案例_构建 FileUploadBean 集合

    93 文件上传案例_完成文件的上传

    94 文件上传案例_复习

    95 文件上传案例_校验及小结

    96 文件下载

    97 国际化之Locale

    98 国际化之DateFormat

    99 国际化之NumberFormat

    100 国际化之MessageFormat

    101 国际化之ResourceBundle

    102 国际化之 fmt 标签及小结

    86 文件上传基础

     1. 进行文件上传时,表单需要做的准备:

    1) 请求方式为post:<form action="uploadServlet" method="post" ...>

    2) 使用file的表单域:<input type="file" name="file">

    3) 使用multipart/form-data的请求编码方式:<form action="uploadServlet" method="post" enctype="multipart/form-data">

    <form action="uploadServlet" method="post" enctype="multipart/form-data">
    上传文件:<input type="file" name="file">
    <input type="submit" value="submit">
    </form>

    4) 关于enctype:

     > application/x-www-form-urlencoded:表单enctype 属性的默认值。这种编码方案使用有限的字符集,当使用了非字母和数字时,必须用“%HH”(H代表十六进制数字)。对于大容量的二进制数据或包含非ASCII字符的文本来说,这种编码不能满足要求

     > multipart/form-data:form设定了enctype="multipart/form-data"属性后,表示表单以二进制传输数据

    2. 服务端:

    1)不能再使用request.getParameter()等方式获取请求信息。获取不到,因为请求的编码方式已经改为multipart/form-data,以二进制的方式来提交请求信息

    2)可以使用输入流的方式来获取,但不建议这样做

    @WebServlet("/uploadServlet")
    public class UploadServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            InputStream in = request.getInputStream();
            Reader reader = new InputStreamReader(in);
            BufferedReader bufferedReader = new BufferedReader(reader);
            
            String str = null;
            while((str = bufferedReader.readLine()) != null){
                System.out.println(str);
            }
        }
    
    }
    输入流这样处理

    3)具体使用commons-fileupload组件来完成文件的上传操作

    87 使用 fileupload 组件

    I. 搭建环境:加入

    commons-io-2.0.jar

    commons-fileupload-1.2.2.jar

    II. 基本思想:

      > commons-fileupload 可以解析请求,得到1个FileItem对象组成的list

      > commons-fileupload 把所有的请求信息都解析为FileItem对象,无论是一个一般的文本域还是一个文件于

      > 可以调用FileItem 的isFormField() 方法来判断是一个表单域 或不是表单域(则是一个文件域)

      > 再来进一步获取信息

    // Process a regular form field
    if (item.isFormField()) {
        String name = item.getFieldName();
        String value = item.getString();
        ...
    }
    // Process a file upload
    if (!item.isFormField()) {
        String fieldName = item.getFieldName();
        String fileName = item.getName();
        String contentType = item.getContentType();
        boolean isInMemory = item.isInMemory();
        long sizeInBytes = item.getSize();
        ...
    }

    InputStream uploadedStream = item.getInputStream();
        ...
    uploadedStream.close();
     

    88 文件上传案例_需求

    89 文件上传案例_JS代码

    90 文件上传案例_约束的可配置性

    91 文件上传案例_总体步骤分析

    92 文件上传案例_构建 FileUploadBean 集合

    93 文件上传案例_完成文件的上传

    94 文件上传案例_复习

    95 文件上传案例_校验及小结

    96 文件下载

    97 国际化之Locale

    98 国际化之DateFormat

    99 国际化之NumberFormat

    100 国际化之MessageFormat

    101 国际化之ResourceBundle

    102 国际化之 ft 标签及小结

  • 相关阅读:
    洛谷P1070 道路游戏
    洛谷P1556 幸福的路
    洛谷P1457 城堡 The Castle
    洛谷P1298 最接近的分数
    2017-9-13 NOIP模拟赛[xxy]
    洛谷P3405 [USACO16DEC]Cities and States省市
    洛谷P1549 棋盘问题(2)
    洛谷P1578 奶牛浴场
    洛谷P2073 送花
    洛谷P3797 妖梦斩木棒
  • 原文地址:https://www.cnblogs.com/hnini/p/5748210.html
Copyright © 2011-2022 走看看