Java菜鸟学习日记20

entype
  • 表单的默认编码方式  application/x-www-form-urlencoded
    • key1 = value1&key2 = value2...
    • 只能将字符串发送到服务端
    • 在服务端通过request.getParameter("key")或者request.getParameterValues("key") 获取
    • 如果要列举所有发送数据的名字,可以使用:request.getParameterNamers()
    • 如果此时表单中有<input type="file"> 则只能将文件名发送到服务器,文件数据不会上传
    • 注意:此时请求头中的 Content-Type头的值是:application/x-www-form-urlencoded
  • 上传文件的编码方式  multipart/form-data
    • 请求体的格式是
---------分隔符------------用来分隔不同的part
Content-Disposition;name="key1"

value1
---------分隔符------------
Content-Disposition;name="key2"

value2
---------分隔符------------
Content-Disposition;name="file1"
Content-Type:image/jpg

sfajkl;sdfk1 faskdljfasjdf-f51文件内容

此时请求头中的Content-Type头的值是 multipart/form-data;boundery=---------
---------分隔符------------
    • 如果使用multipart发送数据,则服务器无法通过 request.getParameter("key") 获取数据
      • getParameter("key") 只支持urlencoded
    • multipart数据在新的Servlet版本(3及以上)中可以通过
      • request.getPaths():获取multipart的所有part
      • request.getPart(key):通过key获取指定的part
    • part.getName():获取<input name="key值"> key值
    • part.getContentType:过去内容类型
      • 普通字符串:null
      • 上传文件:MimeType
      • 图片:image/jpg
      • 文本:text/txt
      • 视频:video/mp4
      • 音频:audio/mp3
    • part.getSize():上传文件大小
    • part.getSubmittedFileName():文件原始名称
    • part.getInputStream():获取文件数据流,通常需要将其保存到服务器磁盘上
  • 互联网应用常用编码  application/json
    • 请求体:
{name: "常伟", age: 3, isMale: true}
    • JSON语法
      • { }:表示对象
      • 对象属性:属性名:属性值
        • 多个属性中间用英文逗号隔开
        • 注意:属性名一定要带 双引号
      • 数组:[ 值1,值2,{ 属性 }.....]
        • 值既可以是基本类型,也可以是对象
      • JSON支持基本类型
        • 字符串:"adfas"
        • 数字:123 3.14
        • 布尔值:true,false
        • 空:null
      • 发送JSON请求时,请求头中Content-Type头的值是:application/json或者text/json
    • 使用Servlet接受JSON请求
  1. 从请求体的inputStream中获取JSON字符串
    1. ServletinputStream input = request.getInputStream();
    2. 把input输入流读成字符串:IOUtils.toString(input,"utf-8");
  2. 把JSON字符串转换成Java对象
    1. 使用阿里提供的FastJSON Jar包
    2. JSON.parseObjext(str,Class);
  • 传统企业级服务编码  application/xml
图片上传
上传首页
Java菜鸟学习日记20
上传图片Servlet
Java菜鸟学习日记20
XML配置
Java菜鸟学习日记20