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用户提交页面编码,JSP用户提交页面编码
myeclipse(设置JSP页面编码格式)【图解很详细的】....下载下看看哦
总结了在java web开发中遇到的种种编码问题,使乱码问题逐一清除
java中文乱码解决之道(7)JSP页面编码过程Java开发Java经验技巧共2页.pdf.zip
Java源文件 .java Java字节码文件 .class 动态页面 .jsp 静态页面 .html 脚本文件 .js
jsp页面跳转到后台乱码 还需要在html中指定编码格式。 ; charset=gb2312" /> <title>title 解决方法是要在jsp最前面加上一条java语句,设置请求的字符编码。 request.setCharacterEncoding("gb2312"); %>
jsp页面间传中文参数示例(页面传参数编码).docx
JSP severlet 动态 base64 编码 图片 显示处理
jsp页面向数据库中写入数据,当数据为英文时,可正常写入,当数据为中文时,就会出现乱码。
使用JSP传递中文时,常会出现乱码,有时所有的页面虽然都统计一编码方式,仍不能解决。如iframe,需要修改tomcat的编码方式
Jsp页面中的字符编码方式与乱码解决方法[归类].pdf
在jsp页面 做个链接,如果是英文的文件名,点击可以下载文件,但是如果是中文文件名,就提示找不到页面,上网查了很多方法,都不适合我的这个情况,结果发现是tomcat 中没有配置支持中文的编码方式,因为我的tomcat...
使用jsp+js脚本进行开发,同时使用html+css语言作为美化页面的方式,jsp页面使用c标签和el表达式来遍历和获取后台的数据,同时将部分脚本代码封装为js文件引用,提高代码的可读性 数据库设计: 数据库采用mysql...
采用纯jsp页面+Mysql的方法实现功能 项目编码是gb2312,要转换格式的请自己装换,界面简洁,功能简单,实现容易,非常适合初学者 有助于加深初学者对jsp的理解和使用Mysql数据库 String DBDRIVER = ...
可以通用到所有的jsp的一些编码问题,希望能帮大家解决一下乱码问题
jsp在线聊天室源码 包括前台和后台管理 非常详细,欢迎大家下载 不下会后悔啊 其中包含公聊和私聊等等 后台包括对前台用户信息的管理等
用MyEclipse 8.5 开发的JavaWeb页面编码过滤器.支持所有web页面,包括servlet
NULL 博文链接:https://laoli5290.iteye.com/blog/1633707
第二节 jsp页面 第三节 jsp的运行原理 第四节 jsp技术特点 第五节 jsp运行环境的配置 实训 习题 第二章ccjsp语法 第一节 jsp页面的基本结构 第二节 jsp脚本 第三节 jsp标签 实训 ...
(因为该组件内部使用GBK编码,所以如果使用utf-8的话,反而从表单中会获取中文乱码)切记,同时前台jsp页面中也要做如下处理, *" pageEncoding="UTF-8"%> ; charset=GBK"%> 这里为什么使用了两个编码格式呢?因为...