zoukankan      html  css  js  c++  java
  • JavaWeb response对象常用操作

    JavaWeb response对象常用操作

    CreationTime--2018年7月18日10点42分

    Author:Marydon

    1.设置响应内容类型

      方式一

    response.setContentType(contentType);
    

      方式二

    response.setHeader("Content-Type", contentType);
    

      response.setContentType(MIME)的作用:

      让服务器告诉浏览器它发送的数据属于什么文件类型,使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。

      例如:

      当Content-Type 的值设置为text/html和text/plain时,前者会让浏览器把接收到的实体内容以HTML格式解析,后者会让浏览器以普通文本解析。

    2.设置响应数据字符集

    response.setCharacterEncoding("UTF-8");
    

      解决中文乱码问题

    3.设置响应内容类型并设置编码集

      上面的2个可以合并到一起

      方式一

    response.setContentType(contentType + ";charset=UTF-8");

      方式二

    response.setHeader("Content-Type", contentType + ";charset=UTF-8");

    4.返回客户端数据

      方式一

    response.getWriter().print("String字符串");
    

      方式二

    response.getWriter().println("响应数据");
    

    注意:使用print(strParam)方法返回的数据只能是字符串格式。 

    5.设置Content-Disposition(指定下载该文件时的文件名) 

    response.setHeader("Content-Disposition", "attachment;filename=" + formatFileName);
    

    作用:告诉浏览器这个文件的名字和类型(指定返回的文件的名称及扩展名);

    说明:在弹出的下载对话框中的文件类型是按照文件的扩展名显示的,点保存后,文件以filename的值命名,保存类型以ContentType中设置的为准。

    注意:

      1.在设置Content-Disposition头字段之前,一定要设置Content-Type头字段;

      2.返回的文件名为中文时,需要对中文进行编码,否则会造成乱码。

    解决方案:

    方法一:(推荐使用)

    // 对中文以UTF-8格式进行编码
    String formatFileName = URLEncoder.encode(fileName, "UTF-8");

    方法二:(ie不兼容)

    // 为什么不适用这种方式?因为不兼容ie浏览器
    // String formatFileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
  • 相关阅读:
    hutool工具之验证码登录
    jsp下拉框
    MyBatis错误之找不到实体类
    MybatisDay1
    JDBCUtil
    JDBC-1
    SQL学习笔记day01
    CoreJava基础面试题
    每日leetcode-数组-54. 螺旋矩阵
    每日leetcode-数组-396. 旋转函数
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/9328125.html
Copyright © 2011-2022 走看看