关于JSP页面中的pageEncodingcontentType两种属性的区别:

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就可以实现正确转码了。

举个例子: 

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

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

但是如果更改为 

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

转载于:https://www.cnblogs.com/x_wukong/p/3646848.html

JSP页面中的pageEncoding和contentType两种属性相关推荐

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

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

  2. java定义一个长方形类,该类中具有长方形长宽两种属性,并具有相应的构造方法属性访问方法,计算长方形的周长和面积的方法,要求输出长是5,宽是4的长方形

    定义一个长方形类,该类中具有长方形长宽两种属性,并具有相应的构造方法 属性访问方法,计算长方形的周长和面积的方法,要求输出长是5,宽是4的长方形 public class test3 {public ...

  3. JSP中的pageEncoding和contentType属性(转)

    JSP中的pageEncoding和contentType属性 关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 co ...

  4. Jsp页面中使用fckeditor控件的两种方法

    fckeditor控件请到官方网站下载[url]http://www.fckeditor.net[/url],本例主要用到FCKeditor_2.6.3.zip.fckeditor-java-demo ...

  5. jsp页面中include的两种使用方法

    jsp页面中include的两种使用方法 include有两种用法 <%@ include file="文件的绝对路径或者相对路径"%> <jsp:include ...

  6. JSP页面中常用四种标签

    JSP页面常用四种标签: 1. EL表达式:  ${} 2. jstl表达式(sun apache): <%@ taglib prefix="c" uri="htt ...

  7. javaWeb-百斯特电子商城-在jsp页面中侧边栏点击,右边进行变化(java实现)(持续完善)

    (javaWeb-百斯特电子商城-在jsp页面中侧边栏点击,右边进行变化(java实现)(持续完善) 1.问题描述: 2.开发环境:+解决思想+建议+注意 3.问题解决 3.1项目结构 3.资源下载( ...

  8. 编写1个JSP页面,在JSP页面中使用Java程序片输出26个小写的英文字母表。

    编写1个JSP页面,在JSP页面中使用Java程序片输出26个小写的英文字母表. <%@ page language="java" contentType="tex ...

  9. jsp页面中嵌入java代码

    1.jsp页面中嵌入java代码 jsp的脚本元素 jsp的指令元素 jsp的动作元素 1.1 jsp的脚本元素(直接嵌入java代码) 第一种:表达式(expression)形式:<%= %& ...

最新文章

  1. php 日历重复_PHP 生成日历
  2. Win32 API 和 ODBC 访问数据库一
  3. 开源项目管理软件 禅道
  4. 代换-置换网络(SP网络)
  5. NSURLRequest 使用(网络文摘)
  6. Network location provider at ‘https://www.googleapis.com/‘ : No response received.
  7. 学田岛电脑绣花制版新人上手教程之一
  8. gimp 抠图_GMIC(gimp 快速抠图)V1.5.2.4 免费版
  9. Gallery3d 学习笔记(6)
  10. win11系统备份和还原
  11. Python——通过while、for、if—else完成一个地铁乘车消费计算器
  12. 上万元游戏拼多多7块搞定 PICO防不住
  13. matlab输出以下图形,输出高品质MATLAB图形的方法与技巧_陈丽安.pdf
  14. Python蒙特卡罗法测圆周率
  15. 至少9所大学!将要招收计算机/软件专业第二学士学位!
  16. Worthington弹性蛋白酶的应用和相关研究
  17. 网易云音乐小程序,带后台(SpringBoot)
  18. 微信扫描二维码在内置浏览器打不开文件的下载链接怎么办
  19. 哪项不是计算机联网检测系统的常见故障,计算机联网检测系统应用研究.docx
  20. ASP 3.0高级编程(七)

热门文章

  1. VTK:可视化之LegendScaleActor
  2. VTK:PolyData之CellLocatorVisualization
  3. VTK:PolyData之CombineImportedActors
  4. VTK:IO之ReadBMP
  5. OpenGL 高级光照Advanced Lighting
  6. c语言实现堆Stack(附完整源码)
  7. 经典C语言程序100例之三二
  8. 01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置
  9. 09_EGIT插件的安装,Eclipse中克隆(clone),commit,push,pull操作演示
  10. 2Boost之UPD,Client and Server