Servlet------文件上传和下载

Servlet 文件上传/下载

  • 文件上传 : 将客户端的资源通过网络传输的方式提交到远程web服务器的过程
  • 文件下载 : 将远程web服务器通过网络传输的方式同步到客户端的过程

Servlet 文件上传

  • 基于Servlet3.0 API的文件上传
  • apache 提供的 fileupload 文件上传

基于Servlet3.0 API的文件上传

使用表单进行文件的上传,同时需要满足2个条件, 1. 必须采用 POST提交, 2. 必须设置 enctype=multipart/form-data 以流的方式进行数据提交

在 Servlet的类上,添加一个注解 @MultipartConfig 用来标记该Servlet支持文件上传

通过 Part part = request.getPart(key) 来获取上传的文件对象

Part 对象常见的方法
  • getSubmittedFileName() : 获取上传的文件名
  • getSize() : 获取上传的文件大小
  • getContentType() : 获取文件的媒体类型
  • getName() : 获取 上传文件的表单 name值
  • write(filename) : 将上传的文件写入到 filename 对应的磁盘位置
  • getInputStream() : 将上传的文件对象写入到输入流中

Servlet 文件下载

  • 使用 response.getOutputStream 获取 输出流,将要下载的资源通过 得到的 输出 流 写入到浏览器

  • 可以下载的头信息

Content-type :  设置下载的资源的媒体类型, 可以不设置 
Content-length : 设置下载资源的大小, 可以不设置
Content-Disposition : 设置内容附件 (必须设置)
       attachment;filename=xxx  :  设置以附件的形式,文件名为 xxx 进行下载
       inline;filename=xxx :  设置文件以预览的形式在浏览器中显示,一般适用于 图片、纯文本

如果没有设置Content-Disposition,默认是inline

Servlet 返回 JSON

  • 将查询的结果使用 FastJson 转成 JSON格式的字符串(JSON的序列化)
  • 设置响应头信息 Content-Type 值为 application/json;charset=UTF-8
response.setContentType("application/json;charset=UTF-8")  

response.setHeader("Content-Type", "application/json;charset=UTF-8")
  • 使用 Writer向浏览器写入 JSON格式的字符串
response.getWriter().write(jsonstr) 
向浏览器写入 JSON格式的字符串

你可能感兴趣的:(servlet,java,apache)