JSP 中 pageEncoding和contentType 的区别

来源:互联网 发布:网络用语ac是什么意思 编辑:程序博客网 时间:2024/06/05 21:13
转载自:http://blog.csdn.net/dragon4s/article/details/6604624

pageEncoding是jsp文件本身的编码
contentType的charset是指服务器发送给客户端时的内容编码

首先,说说JSP/Servlet中的几个编码的作用。 
     在JSP/Servlet中主要有以下几个地方可以设置编 码,pageEncoding="UTF-8"、contentType="text/html;charset=UTF-8"、request.setCharacterEncoding("UTF-8")和 response.setCharacterEncoding("UTF-8"),其中前两个只能用于JSP中,而后两个可以用于JSP和Servlet 中。 
1、pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。 
     众所周知,JSP在服务 器上是要先被编译成Servlet的。pageEncoding="UTF-8"的作用就是告诉JSP编译器在将JSP文件编译成Servlet时使用的 编码。通常,在JSP内部定义的字符串(直接在JSP中定义,而不是从浏览器提交的数据)出现乱码时,很多都是由于该参数设置错误引起的。例如,你的 JSP文件是以GBK为编码保存的,而在JSP中却指定pageEncoding="UTF-8",就会引起JSP内部定义的字符串为乱码。 
     另外,该参数还有一个功能,就是在JSP中不指定contentType参数,也不使用response.setCharacterEncoding方法时,指定对服务器响应进行重新编码的编码。

2、contentType="text/html;charset=UTF-8"的作用是指定对服务器响应进行重新编码的编码。 
    在不使用response.setCharacterEncoding方法时,用该参数指定对服务器响应进行重新编码的编码。
3、request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码。
      该方法用来指定对浏览器发送来的数据进行重新编码(或者称为解码)时,使用的编码。

4、response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码。 
     服务器在将数据发送到浏览器前,对数据进行重新编码时,使用的就是该编码。
原创粉丝点击