• servlet填充Response时,数据转换之content-type


     在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值。

    1.  Content-Type

      MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。  

      类型格式:type/subtype(;parameter)? type
      主类型,任意的字符串,如text,如果是*号代表所有; 
      subtype 子类型,任意的字符串,如html,如果是*号代表所有; 
      parameter 可选,一些参数,如Accept请求头的q参数, Content-Type的 charset参数。 

    例如: Content-Type: text/html;charset:utf-8;

    常见的媒体格式类型如下:

    •     text/html : HTML格式
    •     text/plain :纯文本格式     
    •     text/xml :  XML格式
    •     image/gif :gif图片格式   
    •     image/jpeg :jpg图片格式
    •     image/png:png图片格式

       以application开头的媒体格式类型:

    •    application/xhtml+xml :XHTML格式
    •    application/xml     : XML数据格式
    •    application/atom+xml  :Atom XML聚合格式   
    •    application/json    : JSON数据格式
    •    application/pdf       :pdf格式 
    •    application/msword  : Word文档格式
    •    application/octet-stream : 二进制流数据(如常见的文件下载)
    •    application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

       另外一种常见的媒体格式是上传文件之时使用的:

    •     multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

         以上就是我们在日常的开发中,经常会用到的若干content-type的内容格式。

    demo:Response JSON数据返回

    简述:

    在servlet填充Response的时候,做JSON格式的数据转换

    使用的类是net.sf.json.JSONObject,传入response对象和返回的显示类,修改response,返回前台JSON格式数据

    • /**
    • * 以JSON格式输出
    • * @param response
    • */ 
    • protected void responseOutWithJson(HttpServletResponse response, 
    •         Object responseObject) { 
    •     //将实体对象转换为JSON Object转换 
    •     JSONObject responseJSONObject = JSONObject.fromObject(responseObject); 
    •     response.setCharacterEncoding("UTF-8"); 
    •     response.setContentType("application/json; charset=utf-8"); 
    •     PrintWriter out = null; 
    •     try { 
    •         out = response.getWriter(); 
    •         out.append(responseJSONObject.toString()); 
    •         logger.debug("返回是 "); 
    •         logger.debug(responseJSONObject.toString()); 
    •     } catch (IOException e) { 
    •         e.printStackTrace(); 
    •     } finally { 
    •         if (out != null) { 
    •             out.close(); 
    •         } 
    •     } 
  • 相关阅读:
    kitkat-s5p4418drone 记录
    Android USER 版本与ENG 版本的差异
    Android中的Apk的加固(加壳)原理解析和实现(转)
    Android悬浮窗实现 使用WindowManager
    Android系统的开机画面显示过程分析
    【PMP】变更流程图与说明
    【PMP】十五至尊图
    【Excle】一个比VLOOKUP牛的函数LOOKUP
    【DB2】慎用nickname,可能会引起效率较低
    【读书】人生向前-读书笔记
  • 原文地址:https://www.cnblogs.com/xtreme/p/4633080.html
Copyright © 2020-2023  润新知