JSP中的pageEncoding和contentType属性

关于JSP页面中的pageEncoding和contentType两种属性的区别:

pageEncoding是jsp文件本身的编码

contentType的charset是指服务器发送给客户端时的内容编码

JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。

第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。

JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。

第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效

contentType的設定.

pageEncoding 和contentType的预设都是 ISO8859-1. 而随便设定了其中一个, 另一个就跟着一样了(TOMCAT4.1.27是如此). 但这不是绝对的, 这要看各自JSPC的处理方式. 而pageEncoding不等于contentType, 更有利亚洲区的文字 CJKV系JSP网页的开发和展示, (例pageEncoding=GB2312 不等于 contentType=utf-8)。

jsp文件不像.java,.java在被编译器读入的时候默认采用的是操作系统所设定的locale所对应的编码,比如中国大陆就是GBK,台湾就是BIG5或者MS950。而一般我们不管是在记事本还是在ue中写代码,如果没有经过特别转码的话,写出来的都是本地编码格式的内容。所以编译器采用的方法刚好可以让虚拟机得到正确的资料。

但是jsp文件不是这样,它没有这个默认转码过程,但是指定了pageEncoding就可以实现正确转码了。

举个例子:

<%@ page contentType="text/html;charset=utf-8" %>

大都会打印出乱码,因为我输入的“你好吗”是gbk的,但是服务器是否正确抓到“你好吗”不得而知。

但是如果更改为

<%@ page contentType="text/html;charset=utf-8" pageEncoding="GBK"%>

这样就服务器一定会是正确抓到“你好吗”了。

转载于:https://www.cnblogs.com/qqnnhhbb/archive/2007/09/01/878106.html

JSP中的pageEncoding和contentType属性(转)相关推荐

  1. JSP页面中的pageEncoding和contentType两种属性

    关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容 ...

  2. 关于jsp页面中的pageEncoding和contentType以及html中的meta标签中字符集的设置(转)...

    转载:<关于JSP页面中的pageEncoding和contentType两种属性的区别> pageEncoding是jsp文件本身的编码 contentType的charset是指服务器 ...

  3. jsp中提供的四种属性范围

    参考:http://www.cnblogs.com/xdp-gacl/p/3781056.html 1.当前页:一个属性只能在一个页面中取得,跳转到其他页面无法取得 2.一次服务器请求:一个页面中设置 ...

  4. jsp中的contentType与pageEncoding的区别和作用

    <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> pag ...

  5. JSP中四种属性范围

    在JSP中提供了四种属性的保存范围,所谓属性保存范围,指的就是一个设置的对象,可以在多少个页面中保存并继续使用. 四种属性范围: pageContext      在一个页面中保存属性,跳转之后无效. ...

  6. JSP contentType 属性

    JSP 的page指令 的contentType属性用于在发送到客户端的响应头中设置文档的MIME 类型. MIME代表多用途 Internet 邮件扩展.MIME 类型是一种告诉浏览器应该打开文件的 ...

  7. java 拖放文字_myeclipse2014如何实现jsp中的html代码的文字拖放

    本帖最后由 liyihongcug 于 2015-3-5 16:53 编辑 把 jsp打开 (visual jsp editor) 之后上班区 单击右键 show --- pallette 就可以了 ...

  8. JSP中的page指令常用的属性

    JSP中指令使用的格式: <%@指令名 属性名="属性值" 属性名="属性值"-%> <%@page pageEncoding="u ...

  9. 在jsp中调用常量类中的属性值

    在jsp中想要调用常量类中的属性值方法: 1.  在jsp中导入此常量类   <%@page import="com.Zyp.constant.FlagConstant"%& ...

最新文章

  1. Java学习总结:45(字符编码)
  2. 刷牙刷了这么多年,我们居然都搞错了!
  3. python编程从入门到实践读书笔记-《Python编程:从入门到实践》项目部分读书笔记(二)...
  4. 关于Javascript闭包的理解
  5. 一文理清面向对象(封装、继承、多态)+ 实战案例
  6. popstate_HTML onpopstate 属性 - Break易站
  7. 电脑软件:巧用微软小工具解决日常问题!
  8. 配置IPsec on GRE Tunnel with IOS Firewall and NAT
  9. Java描述设计模式(11):观察者模式
  10. Kafka和的安装与配置
  11. UI设计为什么要使用Figma?
  12. cocos2D创建一组单选按钮菜单
  13. Mysql 数字类型转换函数
  14. 接口 java性能_MyPerf4J 一个极快的Java接口性能监控和统计工具
  15. Rpm另类用法加固Linux安全
  16. VC2015搭建OpenCV环境(超详细教程)
  17. eclipse中追加html模板,Eclipse创建自定义HTML5,JSP模板
  18. it运维工程师的工作是做什么的?累吗?
  19. c语言函数定义时涉及的基本要素是什么,C语言基础:函数的定义与调用
  20. 图像处理:双边滤波算法

热门文章

  1. 日常生活小技巧 -- win10造字
  2. Breaking the Ledger Security Model
  3. 对深度学习的逃逸攻击 — 探究人工智能系统中的安全盲区
  4. 学习 Android O HIDL
  5. JZOJ 3804. 【NOIP2014模拟8.24】小X 的AK 计划
  6. 用Java统计姓氏个数_JAVA统计数字个数
  7. java中如何获得屏幕的宽度和高度_在Android中获取屏幕宽度和高度
  8. JavaScript怎么安装_几句话说清楚JavaScript、V8引擎、NodeJS、NMP,到底是什么东东...
  9. mysql如何处理图片吗_如何解决mysql插入图片后缀名问题?
  10. 关于webservice的经典理解