1. pageEncoding:<%@ page pageEncoding="UTF-8"%>

jsp页面编码: jsp文件本身的编码

2. contentType: <%@ page contentType="text/html; charset=UTF-8"%>

web页面显示编码:jsp的输出流在浏览器中显示的编码

3. html页面charset:<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

web页面输入编码: 输入框输入的字体编码

4. setCharacterEncoding:request.setCharacterEncoding(),response.setCharacterEncoding()

web服务器输入的请求流: web Server相应浏览器的请求数据

5 .setContentType:response.setContentType()

web服务器输出的响应流: web Server相应浏览器的输出数据

他们之间的相互影响和作用域,以及先后作用顺序

1. pageEncoding: 只是指明了 JSP 页面本身的编码格式,跟页面显示的编码没有关系;
    容器在读取(文件)或者(数据库)或者(字符串常量)时将起转化为内部使用的 Unicode,而页面显示的时候将内部的Unicode转换为contentType指定的编码后显示页面内容;如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。

2. contentType: 指定了MIME类型和JSP页面回应时的字符编码方式。MIME类型的默认值是“text/html”;
    字符编码方式的默认值是“ISO-8859-1”. MIME类型和字符编码方式由分号隔开;

3. pageEncoding和contentType的关系:
        1. pageEncoding的内容只是用于jsp输出时的编码,不会作为header发出去的; 是告诉web Server jsp页面按照什么编码输出,即web服务器输出的响应流的编码;
       2. 第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java).
       3. 第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码.JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码java encoding)内表达的规范.
       4. 第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效

4. 和contentType效果一样的设置方式还有 html页面charset, response.setCharacterEncoding(),response.setContentType();response.setHeader(); response.setContentType(),response.setHeader();优先级最好,其次是response.setCharacterEncoding();再者是<%@page contentType="text/html; chareset=gbk"%>,最后是<meta http-equiv="content-type"content="text/html; charset=gb2312" />.

5. web页面输入编码: 在设置页面编码<%@page contentType="text/html; chareset=gbk"%>的同时,也就指定了页面的输入编码;如果页面的显示被设置为UTF-8,那么用户所有的页面输入都会按照 UTF-8 编码; 服务器端程序在读 取表单输入之前要设定输入编码; 表单被提交后,浏览器会将表单字段值转换为指定字符集对应的字节值,然后根据 HTTP 标准 URL编码方案对结果字节进行编码.但是页面需要告诉服务器当前页面的编码方式;request.setCharacterEncoding(),能修改Serverlet获取请求的编码,response.setCharacterEncoding(),能修改Serverlet返回结果的编码.

JSP页面的编码设置(转载)的更多相关文章

  1. 关于HTML(JSP)页面的缓存设置 -- cache-control

    我在项目中遇到这么一个问题,当用户登录了系统后,进入并copy下系统某个页面的link,然后关闭浏览器,重新打开浏览器,把刚才复制好的link paste到浏览器的地址栏去,直接enter,发现浏览器 ...

  2. Eclipse中JSP页面默认编码修改

    jsp页面默认编码为ISO-8859-1 要修改为UTF-8,步骤如下 选择windon-->preference 在弹出框操作 以后新建jsp页面编码为UTF-8编码

  3. [转]JSP中的编码设置

    转至:http://blog.csdn.net/XinVSYuan/article/details/3864853 1. pageEncoding:<%@ page pageEncoding=& ...

  4. 在Java中导出word、excel格式文件时JSP页面头的设置

    我们在JSP中往往会把一些表格里的东西需要导出到本地,一般都是导成word.excel格式的文件.这只需要在JSP页面头设置及在<head></head>标签中添加下面的代码: ...

  5. eclipse --- 新建JSP页面默认模版设置

    设置 在eclipse中新建 jsp时是这样的: 有时候我们不想字符集是ISO_8859-1,想字符集是UTF-8,一个个修改会很麻烦,那么我们可以修改jsp模版的设置: window>Pref ...

  6. eclipse - 新建jsp页面默认模板设置

    有时候我们自己如果没有现成的JSP模板时,系统一般会自动生成如下页面: 这个页面显然并不是我们所需要的,所以我们需要修改默认模板 进入 修改 <%@ page language="ja ...

  7. 如何设置jsp默认的编码为utf-8

    方法一: 文件里写: <%@ page contentType="text/html; charset=UTF-8"  %> 方法二: 选择window –> P ...

  8. jsp config设置jsp页面

    jsp-config jsp-config功能:用于设定jsp页面的相关设置(web.xml 版本在2.4之后) 常用的设置包括 taglib和jsp-property-group两个子元素.其中ta ...

  9. 【转载】spring-boot 项目跳转到JSP页面

    原路径:https://blog.csdn.net/qq_36820717/article/details/80008225 1.新建spring-boot项目  目录结构如下 2.新建TestCon ...

随机推荐

  1. 【python自动化】python 常用时间获取方法

    代码如下: import datetime import time DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S" DATE_FORMAT = &quo ...

  2. 编写webconfig连接串与使用(新)

    原文发布时间为:2008-07-27 -- 来源于本人的百度文章 [由搬家工具导入] webconfig 中<appSettings/> 得后面代码添加如下: <appSetting ...

  3. math对象的方法

    方法 描述 abs(x) 返回数的绝对值. acos(x) 返回数的反余弦值. asin(x) 返回数的反正弦值. atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切 ...

  4. Linux 之 文件压缩解压

    文件压缩解压 参考教程:[千峰教育] 命令: gzip: 作用:压缩文件,只能是单个文件,不能是多个,也不能是目录. 格式:gzip file 说明:执行命令会生成file.gz,删除原来的file ...

  5. WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)

     接口测试与数据驱动 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程. 2 数据驱动与jmeter接口测试 我们已经简单介绍 ...

  6. Linux Perf Probes for Oracle Tracing

    Luca Canali on 21 Jan 2016 Topic: this post is about Linux perf and uprobes for tracing and profilin ...

  7. spring计时工具类stopwatch用法

    public class Test { public static void main(String[] args) { StopWatch stopWatch = new StopWatch(); ...

  8. DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境

    DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境 笔者使用ubuntu64位LINUX 首先必须保证LINUX可以连互联网. 安装MYSQLsudo apt-get update ...

  9. xcode创建一个工程的多个taget,便于测试和发布多个版本

    背景:很多时候,我们需要在一个工程中创立多个target,也就是说我们希望同一份代码可以创建两个应用,放到模拟器或者真机上,或者是,我们平时有N多人合作开发,当测试的时候,在A这里装了一遍测A写的那块 ...

  10. CSS 发明者 Håkon Wium Lie 访谈--csdn zhangxin09

    原文地址:https://dev.opera.com/articles/css-twenty-years-hakon/ ---------------------------------------- ...