`
ammayjxf
  • 浏览: 70788 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

【转】JSP contentType的charset和pageEncoding区别

 
阅读更多
"ContentType" (描述内容类型的字符串。该字符串通常被格式化为类型/子类型,其中类型是常规内容范畴而子类为特定内容类型)

  一句话总结就是,服务器响应客户端是以"ContentType" 的类型来响应的。这个很容易理解,但是在百度百科里面看了一下发现问题了,在contenttype里面有一个属性是charset 指定编码的,而pagEncoding也是编码的,这两个编码有什么区别呢?

  查阅了资料之后有了深刻的了解!

  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,

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

  记得老师上课讲的时候遇到了下面这种情况 他的处理办法是把utf-8改成了gbk,

  <%@ page contentType="text/html;charset=gbk" %>

  貌似就是利用了随便改变其中一个另一个就跟着变的原理吧。实际上正规的该法应该是

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

  但是如果改成了这样,在服务器端收到的获取的中文不是乱码,但是在客户端打开的还是乱码,因为charset=utf-8" 中charset指定了,输出到客户端的是utf-8的编码,所以想正规的该法应该改成

  <%@ page contentType="text/html;charset=gbk" pageEncoding="GBK"%>

  貌似这样写,还不如

  <%@ page contentType="text/html;charset=gbk" %>

  简单呢, 看来以后自己还是用 这种简单的写法吧!

  纯属个人自学的理解。如果错误还望指出
分享到:
评论

相关推荐

    jsp中charset和pageEncoding

    ### jsp中charset和pageEncoding知识点详解 #### 一、基本概念 在Web开发中,尤其是在使用JavaServer Pages (JSP) 进行网页开发时,经常会遇到字符集(Charset)与页面编码(Page Encoding)的相关问题。这两个...

    PageEncoding&contentType中charset区别

    在Web开发中,尤其是使用Java Server Pages(JSP)进行页面渲染时,经常会遇到`pageEncoding`和`contentType`属性,并且它们都涉及到`charset`这一概念。正确理解这些属性及其之间的差异对于确保网页内容能够被正确...

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

    ### JSP页面中的pageEncoding与contentType两种属性的区别 在Java Server Pages(JSP)技术中,`pageEncoding`和`contentType`是两个重要的属性,它们分别控制着JSP页面的编码方式以及输出内容的类型。了解这两个...

    JSP页面中的pageEncoding和contentType两种属性 - 51CTO_COM - 注解

    在JSP(Java Server Pages)开发中,pageEncoding和contentType是两个非常重要的属性,它们对于网页的显示和数据处理起着关键作用。理解这两个属性的区别和联系是确保网页内容正确显示和数据安全传输的基础。 首先...

    JSP页面pageEncoding和contentType属性

    在JavaServer Pages (JSP) 技术中,`pageEncoding` 和 `contentType` 是两个非常重要的属性,它们直接影响到JSP页面的编码处理和内容的传输。理解这两个属性的区别和作用对于避免乱码问题至关重要。 `pageEncoding`...

    jsp编码 jsp乱码

    jsp编码 jsp乱码解决方案 ...通过设置pageEncoding参数、contentType参数、request.setCharacterEncoding方法和response.setCharacterEncoding方法等,可以解决jsp页面中的乱码问题,提高Web应用程序的用户体验。

    jsp页面文档编码问题

    为了解决这些问题,我们需要深入理解JSP中的`contentType`和`pageEncoding`这两个关键属性。 首先,`contentType`属性是用于定义JSP生成的HTML页面在浏览器中的字符编码。它告诉浏览器如何解析和显示接收到的内容。...

    jsp页面显示中文乱码解决.pdf

    解决 jsp 页面显示中文乱码的方法是:在 jsp 页面设置 pageEncoding 和 contentType 的其中一个或者两个为支持中文的编码格式,如 utf-8、gbk、gb2312 等,并且在 post 方式传值和 get 方式传值时,需要设置 request...

    JSP中文解码方法

    - `pageEncoding`属性:此属性用于定义JSP文件本身的编码,当JSP被解析和转换为Java源代码时,JSP引擎会根据此设置读取和处理文件。在示例中,`pageEncoding="utf-8"`表示JSP文件使用UTF-8编码,这是推荐的编码方式...

    JSP内置对象之域对象和JSP指令

    - 确保JSP页面的`charset`和`pageEncoding`属性设置为同一编码格式,通常推荐使用"UTF-8"。 示例代码: ```jsp &lt;%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %&gt; ``...

    JSP实验指导 JSP页面标记

    通过编写不同类型的JSP页面,深入了解JSP页面标记的使用方法,包括指令、脚本和动作元素的应用。 #### 主要仪器设备及环境 同上。 #### 实验内容与步骤 ##### 编写 4 个 JSP 页面 1. **PageDirective.jsp**: `...

    JSP中文乱码的产生原因及解决方案.docx

    当JSP文件的`pageEncoding`、`contentType`中的charset和`&lt;meta&gt;`标签中的charset设置不同时,会导致乱码。例如,`pageEncoding`设置为GBK,而`contentType`的charset设置为ISO-8859-1,这样在不同环节的编码转换中...

    JSP之使用jsp:forward实现用户信息验证的页面跳转

    在Java服务器页面(JSP)开发中,页面跳转是一个常见的需求,特别是在处理用户交互和信息验证时。`jsp:forward`元素是JSP中的一种动作标签,用于将请求转发到另一个页面,而不是生成一个新的HTTP请求。这在处理用户...

    jsp 例程 jsp 例程 jsp 例程

    charset=UTF-8" pageEncoding="UTF-8"%&gt; &lt;!DOCTYPE html&gt; &lt;title&gt;My First JSP Page int num = 5; out.println("Hello, World! The number is " + num); %&gt; ``` 这个例子中,`&lt;% %&gt;`内的Java...

    将html页改成jsp的两种方式

    在JSP中,`charset`和`pageEncoding`属性是关于字符编码的重要设置。 - `charset=GB18030`定义了HTTP响应体(即浏览器接收到的内容)的字符集,意味着浏览器将以GB18030编码解码页面内容。 - `pageEncoding="GB...

    关于jsp 加法运算

    在JavaServer Pages(JSP)技术中,进行加法运算是一项基本操作,广泛应用于各种网页交互和数据处理。JSP是一种动态网页开发技术,它允许开发者在HTML、XML或者其他标记语言中嵌入Java代码,从而实现服务器端的逻辑...

    JSP指令和动作熟悉

    charset=UTF-8" pageEncoding="UTF-8"%&gt; ``` 这里设置了页面的语言为Java,内容类型为HTML,并指定了字符编码为UTF-8。 接下来,我们来看`include`指令,它用于静态地包含其他文件。这在需要多个页面共享相同内容...

    jsp编写简单的学生信息注册界面

    charset=UTF-8" pageEncoding="UTF-8"%&gt;` 是JSP的`@page`指令,用于设置JSP页面的基本属性。这里设置了语言为Java,内容类型为HTML,字符编码为UTF-8。 - `contentType` 属性:定义了页面的MIME类型和字符集,这里...

    jsp登陆界面源代码

    charset=GB18030" pageEncoding="GB18030"%&gt;*" %&gt;&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;&lt;html&gt;&lt;head&gt; &lt;title&gt;登录页面&lt;/title&gt;&lt;/head&gt;&lt;body&gt; ...

    JSP实例入门-JSP实例入门

    charset=UTF-8" pageEncoding="UTF-8"%&gt; &lt;!DOCTYPE html&gt; 我的第一个JSP页面 out.println("欢迎来到JSP世界!"); %&gt; ``` 在这个例子中,`&lt;%@&gt;` 是指令元素,用来设置页面属性;`&lt;%...%&gt;` 是脚本元素,...

Global site tag (gtag.js) - Google Analytics