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

JSP页面中的pageEncoding和contentType两种属性 - 51CTO_COM - 注解 JSP页面中的pageEncoding和contentType两种属性的区别与联系。 立即下载

pageEncoding是jsp文件本身的编码 

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

 

 

一. JSP要经过2次的“编码”,三个阶段: 

 

1. 第一阶段用pageEncoding属性

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

 

2. 第二阶段用utf-8至utf-8

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

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

 

3. 第三阶段会用contentType属性

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

 

 

二.contentType 和pageEncoding属性的設定: 

1. pageEncoding 和contentType的默认都是 ISO8859-1.设定了其中一个, 另一个就跟着一样了. 

2. 但这不是绝对的, pageEncoding和contentType都可以显示设定。 (例pageEncoding=GB2312 不等于 contentType=utf-8)。 

 

 

三.jsp文件不同于.java

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

 

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

  举个例子: 

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

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

  但是如果更改为 

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

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

 

======================================================================

在JSP标准的语法中,如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由 contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。

======================================================================

我们新建JSP页面时,第一行语句:<%@ page contentType="text/html;charset=GB2312"%>的作用是:

设置文档类型, text/html代表是文本类型的html文件;charset=GB2312  字符集编码是GB2312。

然而有些页面第一行语句:

<%@ page contentType="text/html;charset=GB2312" pageEncoding="GB2312"%>
“charset”
与“pageEncoding”到底有什么区别?

charset:
字符编码
pageEncoding:
页面编码

pageEncoding是设置的JSP页面源代码的字符编码格式,如果该项的值是utf-8,则JSP源代码里不能写汉字了,如果你用的是eclipse等工具的话,保存时他会提示有一个错误,改成gbk就没事了,就是这个道理

charset是请求服务器以后返回过来的内容的字符编码,即使pageEncoding设置了gbk,保存,运行程序,查看页面时会发现刚才写的汉字不能正常显示,把charset改成gbk,正常。

 

 

Marin说PCB之LPDDR5的布线注意事项--03 这个规则中是把每个字节中的WCK to RDQS 以及DM / DQ to WCK等长规则都加到了DM / DQ这个等长规则中去了,因为芯片手册上的设计要求中的DM / DQ这个group的等长误差是+-50MIL, WCK to RDQS的等长group的规则是62.5MIL,DM / DQ to WCK等长group的规则是相对松一些是150MIL。其实上面的等长规则还是建少了一些的,例如手册上要求的每个channel的WCK0:1,WCK2:3等长误差在+-488MIL,这个规则建议还是补上去吧。 阅读详情

相关推荐

深入解析ISO12233标准:SFR算法从理论到代码实现

本文深入解析ISO12233标准中的SFR算法,从理论到代码实现全面介绍如何量化成像系统的解析力。通过e-SFR算法测量边缘扩散函数(ESF)和空间频率响应(SFR),结合光学原理和实际代码示例,帮助开发者准确评估影像质量。文章包含关键步骤的Python实现和工程优化技巧,适用于相机测试、镜头评估等应用场景。

weixin_29200485的博客 155

java web 开发——第二章jsp语法

本章主要内容为JSP页面的基本结构、声明变量和定义方法、Java程序片、Java表达式、JSP指令标记、JSP动作标记等小节。在传统的HTML页面文件中加入Java程序片和JSP标记就构成了一个JSP页面。%> 之间声明的变量在整个JSP页面内都有效,与其书写的位置无关。%> 之间声明变量和定义方法,习惯上放在JSP页面指令之后,之前。%>之间定义方法,可在Java程序片中调用该方法。2.7.1 include动作标记。2.7.1 include动作标记。2.7.2 param动作标记。

Estheryjl的博客 375

Obsidian免费同步全攻略:手把手教你用OneDrive+Remotely Save插件跨设备同步笔记

本文提供了一份详细的Obsidian免费同步方案指南,核心是利用OneDrive云存储与Remotely Save插件实现跨设备笔记同步。文章手把手教学,涵盖插件安装、OneDrive授权配置、桌面端与移动端的同步设置,并解答了常见问题,帮助用户在不依赖官方付费服务的情况下,构建稳定、自主的免费同步工作流。

bash7scripter的博客 849

JSP指令

JSP指令 JSP 指令的作用是为当前页面做一些基本的属性设置,为当前的页面的运行提供基本的环境。 在JSP中包含三类指令: page,页面指令 include,包含指令 taglib,标签库指令 这些指令的使用的语法格式均为如下形式: <%@ 指令名称 属性名=属性值 ... %> page指令 page指令用于设置当前JSP页面的相关信息, 一个 JSP中可以包含多个 page 指令,有以下几个常用的属性: pageEncoding pageEncoding属性用于设置当前JSP页面

陌影的博客 592

Eclipse在Mac上报错JNI_CreateJavaVM?可能是你的JDK架构搞错了(附Adoptium JDK下载指南)

本文深入解析了Mac(尤其是Apple Silicon芯片)上Eclipse启动时出现“JNI_CreateJavaVM”错误的根本原因,即JDK架构(aarch64与x86_64)不匹配。文章提供了详细的诊断步骤,并推荐通过下载并配置Eclipse Adoptium提供的aarch64版本JDK来彻底解决问题,同时附上清晰的配置指南。

weixin_29065659的博客 321

大疆无人机地理视频制作全流程:从SRT文件到GIS叠加(附实战避坑指南)

本文详细解析了大疆无人机地理视频制作全流程,从解析SRT文件中的位姿数据,到在GIS软件中构建地理视频工程并生成可分发的文件。文章重点介绍了地理视频的核心概念、数据处理实战技巧,并探讨了其在应急响应、工程巡检等场景的高级应用与精度边界,为GIS工程师和无人机爱好者提供了一份实用的避坑指南。

river的博客 465

contentType和pageEncoding属性的区别

前言:     在jsp中,使用page指令标识的话,contentType和pageEncoding属性经常同时使用,那么这两个属性有什么区别呢?     <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>区别:     pageEncoding属性:作用是指定jsp

LittleFlown的博客 900

6、Cocos2D游戏开发:精灵添加与角色实现

本文详细介绍了在Cocos2D游戏开发中如何添加背景精灵和玩家角色精灵。通过创建GameScene场景、组织项目资源、使用多分辨率图像适配不同设备,并深入讲解了将角色拆分为上下半身以实现更真实瞄准效果的原理。文章还解析了Cocos2D的图像搜索机制、锚点概念及其应用,以及如何通过父子节点关系管理复合角色。最终实现了猎人角色在场景中的正确显示与定位,为后续动画和交互功能打下基础。

e3f4g5的博客 90

jsp charset pageEncoding区别,中文乱码解决

转载自 软件钢琴师最终编辑 铁书来也JSP指令标签中这句有什么用途? 关于JSP页面中的pageEncoding和contentType两种属性的区别:  pageEncoding是jsp文件本身的编码  contentType的charset是指服务器发送给客户端时的内容编码

顾传龙 922

【UML】第12篇 序列图(1/2)——基本概念和构成

序列图(Sequence Diagram)是一种用于显示对象之间交互的图形化表示。它描述了在特定场景下,对象之间按照时间顺序进行的消息传递和协作过程。在序列图中,对象被表示为带有垂直虚线的矩形,虚线表示对象的生命周期。对象之间的交互通过箭头表示的消息来表示,箭头从一个对象的生命线指向另一个对象的生命线,表示消息的发送和接收。

AI人人懂 3048

【Bug已解决】openclaw max turns reached / Tool calls exceeded limit — OpenClaw 最大轮次超限解决方案

OpenClaw 在执行过程中达到最大轮次限制任务未完成,本质是 --max-turns 设置过小或任务过于复杂。文中给出增加轮次、--continue 继续、分步执行等完整方案。

一键难忘的博客 5505

java pageencoding_jsp pageEncoding属性详解

Java pageEncoding原理详解首先看下文章解释:意思是jsp文件本身的编码巨大的疑问:这里有一个很大的问题,既然你都已经从jsp中读到了这条属性,证明内容读取正确,那你还需要知道这条属性所指的编码是什么干嘛?下面务必来看看Jsp的编译原理第一阶段是jsp编译成java它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.jav...

weixin_32535389的博客 331

基于OpenCV的实时疲劳检测系统实现

本文介绍了一个基于OpenCV的实时疲劳检测系统,使用Python实现。系统通过Haar级联分类器检测人脸和眼睛,计算眼睛宽高比(EAR)和PERCLOS(眼睛闭合时间比例)来评估疲劳程度,分为4个等级:正常、轻度、中度和重度疲劳。核心代码包含人脸眼睛检测、疲劳评估和可视化显示功能,具有实时性、稳定性和直观的视觉反馈。系统可通过摄像头实时监控驾驶员状态,为疲劳驾驶预警提供简单有效的解决方案。

weixin_62135607的博客 232

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

这里引用论坛里朋友hafsky 的回答帖子,感觉总结的不错和大家共享一下! 关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三

jercy的专栏 1889

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

关于在jsp页面中pageEncoding和contentType两种属性的区别

pageEncoding 在JSP标准的语法中,如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。 ContentType ContentType属性指定了MIME类型和JSP

tangpeng2018的博客 806

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: Form表单的一些Type类型
下一篇: <meta http-equiv>的作用
V再见诺丁山
博客等级 码龄16年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值