pageEncoding:设置JSP源文件和响应正文中的字符集编码。
contentType:设置JSP源文件和响应正文的字符集编码及MIME类型。
可见,pageEncoding和contentType都可以设置JSP源文件和响应正文中的字符集编码。但也有区别:
设置JSP源文件字符集时,优先级为pageEncoding>contentType。如果都没有设置,默认ISO-8859-1。
设置响应输出的字符集时,优先级为contentType>pageEncoding。如果都没有设置,默认ISO-8859-1。
可以简单认为是,pageEncoding是jsp文件本身的编码;contentType的charset是指服务器发送给客户端时的内容编码。例如:pageEncoding="GBK"。这句话的意思是,告诉JVM 这个jsp本身采用的"GBK"编码,在JSP编译成Servlet传给JVM的时候,就用“GBK”的编码方式将Jsp网页源文件翻译成统一的UTF-8形式的Java字节码。如果不加设定,则JVM默认的用ISO-8859-1这种编码方式。contentType里的charset=gbk,指的是此网页文件输出到浏览器的输出方式为gbk。在这个过程中,一个JSP的源文件需要经过三个阶段,两次编码,才能完成一次完整的输出。
第一阶段:将jsp编译成Servlet(.java)文件。用到的指令是pageEncoding,根据pageEncoding=“XXX”的指示,找到编码的规则为“XXX”,服务器在将JSP文件编译成.java文件时会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8编码的JAVA源码(即.java)。
第二阶段:从Servlet文件(.java)到Java字节码文件(.class),从UTF-8到UTF-8。在这一阶段中,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。JAVAC用UTF-8的encoding读取java源码,编译成UTF-8编码的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。这一过程是由JVM的内在规范决定的,不受外界控制。
第三阶段:从服务器到浏览器,这在一过程中用到的指令是contentType。服务器载入和执行由第二阶段生成出来JAVA二进制码,输出的结果,也就是在客户端可见到的结果,在这次输出过程中,由contentType属性中的charset来指定,将UTF8形式的二进制码以charset的编码形式来输出。如果没有人为设定,则默认的是ISO-8859-1的形式。
分享到:
相关推荐
### JSP页面中的pageEncoding与contentType两种属性的区别 在Java Server Pages(JSP)技术中,`pageEncoding`和`contentType`是两个重要的属性,它们分别控制着JSP页面的编码方式以及输出内容的类型。了解这两个...
在JSP(Java Server Pages)开发中,pageEncoding和contentType是两个非常重要的属性,它们对于网页的显示和数据处理起着关键作用。理解这两个属性的区别和联系是确保网页内容正确显示和数据安全传输的基础。 首先...
在Web开发中,尤其是使用Java Server Pages(JSP)进行页面渲染时,经常会遇到`pageEncoding`和`contentType`属性,并且它们都涉及到`charset`这一概念。正确理解这些属性及其之间的差异对于确保网页内容能够被正确...
在JavaServer Pages (JSP) 技术中,`pageEncoding` 和 `contentType` 是两个非常重要的属性,它们直接影响到JSP页面的编码处理和内容的传输。理解这两个属性的区别和作用对于避免乱码问题至关重要。 `pageEncoding`...
出现上述错误的原因在于 `date.jsp` 文件中也包含了 `contentType` 属性的设置。当使用 `<%@ include file="date.jsp" %>` 或 `<jsp:include page="date.jsp" flush="true"/>` 方式包含时,主页面和被包含的页面都...
jsp编码的作用是告诉jsp编译器在将jsp文件编译成Servlet时使用的编码方式。jsp编码还可以指定对服务器响应进行重新编码的编码方式。例如,在jsp页面中指定pageEncoding="UTF-8",那么jsp编译器将使用UTF-8编码将jsp...
- 在JSP页面的`<%@ page %>`指令中正确设置`contentType`,确保与JSP文件的编码一致,同时也与浏览器期望的编码匹配。 - 对于从数据库或其他外部源获取的数据,确保它们在传输和存储过程中使用了正确的编码,并在...
2. `pageEncoding`:在`<%@ page pageEncoding="UTF-8"%>`中设置,用于指示JSP文件自身的编码。它影响JSP在被容器转换为Servlet源代码时的读取编码。如果未指定,将默认使用"ISO-8859-1"。 3. HTML页面`charset`:...
pageEncoding 的作用还包括在 JSP 中不指定 contentType 属性,也不使用 response.setCharacterEncoding 方法指定编码方式时,服务器响应的编码方式以及浏览器的编程方式。 2. contentType="text/html;charset=UTF-...
在 jsp 页面中,pageEncoding 指的是 jsp 文件本身在本地保存时的编码方式,而 contentType 的 charset 是指服务器发送网页内容给客户端时所使用的编码。因此,在 jsp 页面中需要设置 pageEncoding 和 contentType ...
此外,该参数还有一个功能,就是在 JSP 中不指定 contentType 属性,也不使用 response.setCharacterEncoding 方法指定编码方式时,服务器响应的编码方式以及浏览器的编程方式就是此时 pageEncoding 指定的编码方式...
- **作用**:`pageEncoding` 属性用于设置JSP文件编译成Servlet时的编码方式。这是JSP特有的属性,不能在Servlet中使用。 - **应用场景**:当JSP文件中有直接定义的字符串时(即不在表单提交中出现的字符串),如果...
如果已经存在的 JSP 文件中出现了中文显示问号问题,可以通过修改 JSP 文件的编码方式来解决问题。具体步骤如下: 1. 打开 JSP 文件,添加以下代码:<%@ page language="java" contentType="text/html; charset=GB...
这里,`pageEncoding` 设为 `UTF-8` 表示JSP文件本身采用UTF-8编码,而 `contentType` 的 `charset` 参数设为 `GBK` 表示响应内容将以GBK编码发送给浏览器。需要注意的是,为了保证一致性和避免乱码,建议让 `...
通过合理设置JSP文件的`pageEncoding`属性、请求的`characterEncoding`以及响应的`contentType`,可以有效地避免中文乱码问题的发生。此外,对于GET请求还需要额外处理URL编码问题。通过以上步骤,可以大大提升JSP...
如果在JSP文件中,pageEncoding和contentType的charset设置不一致,同样会导致乱码。例如,JSP文件以GBK编码,但contentType声明为ISO-8859-1。此时,需要确保所有地方的编码设置统一,通常是将它们都设置为相同的...
**JSP编码与乱码问题详解** 在JSP(JavaServer Pages)开发中,编码问题是一个常见的困扰,尤其是在处理中文字符时。本文将深入探讨JSP编程过程中出现的乱码问题,包括原因分析和解决方案。 1. **基本的乱码问题**...
- `pageEncoding`属性:此属性用于定义JSP文件本身的编码,当JSP被解析和转换为Java源代码时,JSP引擎会根据此设置读取和处理文件。在示例中,`pageEncoding="utf-8"`表示JSP文件使用UTF-8编码,这是推荐的编码方式...
如果JSP文件的实际编码与其`pageEncoding`属性设置的编码不一致,就可能导致中文字符显示为乱码。例如,如果JSP文件实际以GBK编码保存,但在JSP中设置了`pageEncoding="UTF-8"`,那么JSP内部的中文字符串就可能出现...
例如,在jsp文件中,使用`<%@ page language="java" pageEncoding="UTF-8"%>`指定jsp文件的存储格式为UTF-8,但是使用`<%@ page contentType="text/html;charset=iso8859-1"%>`指定解码格式为iso8859-1,这样就会...