response中setContentType、setCharacterEncoding和setHeader方法的解释

setContentType

response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
在tomcat安装路径中(/conf/web.xml),我们就能看到大量的MIME类型,感兴趣或者有需要可以自行查看。
下面是该Java中对该方法的描述:

设置正在发送给客户的响应的内容类型,如果响应还没有被提交。给定的内容类型可能包括一个字符编码规范,例如,text/html;charset=UTF-8。只有在getWriter被调用之前调用此方法,响应的字符编码才会从给定的内容类型中设置。
这个方法可以被反复调用以改变内容类型和字符编码。如果在响应被提交后调用此方法,则没有效果。如果在getWriter被调用后或响应被提交后调用该方法,它不会设置响应的字符编码。
容器必须将内容类型和用于servlet响应的写入者的字符编码传达给客户端,如果协议提供了这样的方法。在HTTP的情况下,会使用Content-Type头。

setCharacterEncoding

该方法主要是设置响应数据的字符编码方式的,一般设置为utf-8
下面是该Java中对该方法的描述:

设置被发送到客户端的响应的字符编码(MIME字符集),例如,UTF-8。如果字符编码已经被容器默认值、ServletContext默认值、setContentType或setLocale设置了,这个方法会覆盖它。用text/html字符串调用setContentType,用UTF-8字符串调用此方法,相当于用text/html; charset=UTF-8字符串调用setContentType。
这个方法可以被反复调用,以改变字符编码。如果在getWriter被调用后或响应被提交后调用此方法,则没有效果。
如果协议提供了一种方法,容器必须将用于servlet响应的写入器的字符编码传达给客户端。在HTTP的情况下,字符编码是作为文本媒体类型的Content-Type头的一部分进行交流的。请注意,如果servlet没有指定内容类型,那么字符编码就不能通过HTTP头传达;但是,它仍然被用来对通过servlet响应的写入器写入的文本进行编码。

setHeader

setHeader详解
该方法主要是修改响应头的内容的,常常用来对下载的文件进行处理,比如设定以附件进行下载并指定文件名就会使用response.setHeader(“Content-Disposition”,“attachment;filename=” + “XXXX”); 如果文件名为中文的话最好提前使用URLEncoder.encode进行提前UTF-8编码
下面是该Java中对该方法的描述:

用给定的名称和值设置一个响应头。如果头信息已经被设置了,新的值会覆盖之前的值。containsHeader方法可以用来在设置头的值之前测试头是否存在。
Params:
name - 标头的名称
value - 标头的值 如果它包含八位数的字符串,应该根据RFC 2047进行编码(http://www.ietf.org/rfc/rfc2047.txt)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值