在jsp页面编写中,每一页开头就有这样一句话
<%@ page contentType="text/html; charset=GB2312" %>
contentType是HTTP头信息中的一个属性,指定响应的HTTP内容类型,默认为text/Html(还有很多类型的文件)。
当然,contentType还有一个属性charset,指定编码。而jsp中还有一个pageEncoding也是指定编码,这两者有什么区别呢?
pageEncoding是jsp页面本身的编码。
contentType的charset是指服务器端发送给客户端时内容的编码。
jsp页面要经过两次编码:
第一次由.jsp转化为.java,这里是根据pageEncoding读取jsp中的内容。翻译成utf-8 java源代码(.java);
第二次由tomcat(或其它容器)载入.class文件并执行,输出结果到客户端时,charset就发挥作用了。
contentType的charset和pageEncoding的设置
两者都预设为"ISO8859-1",随便设定二者中的一个,另一个就跟着变了。(不是绝对的)
<%@ page contentType="text/html; charset=GBK" pageEncoding="GBK"%>
弄懂了这个,上次的配置文件那块就不难解释了
<action name="equip_export" method="exportSheetPart" class="MaintainListAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<param name="contentDisposition">attachment;fileName="${docName}"</param>
<param name="inputName">exportStream</param>
<param name="bufferSize">4096</param>
</result>
</action>
contentType="application/octet-stream" 表示任意的二进制内容。