Java中文jsp页面_java中文乱码解决之道(七)—–JSP页面编码过程
我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的。在JSP转换为servlet过程中下面一段代码起到至关重要的作用。
在上面代码中有两个地方存在编码:pageEncoding、contentType的charset。其中pageEncoding是jsp文件本身的编码,而contentType的charset是指服务器发送给客户端时的内容编码。
在前面一篇博客中就提到过(java中文乱码解决之道(四)—–java编码转换过程)jsp在转换为Servlet的过程中是需要经过主要的三次编码转换过程(除去数据库编码转换、页面参数输入编码转换):
第一次:转换为.java文件;
第二次:转换为.class文件;
第三次:业务逻辑处理后输出。
第一阶段
JVM将JSP编译为.jsp文件。在这个过程中pageEncoding就起到作用了,JVM首先会获取pageEncoding的值,如果该值存在则采用它设定的编码来编译,否则则采用file.encoding编码来编译。
第二阶段
JVM将.java文件转换为.class文件。在这个过程就与任何编码的设置都没有关系了,不管JSP采用了什么样的编码格式都将无效。经过这个阶段后.jsp文件就转换成了统一的Unicode格式的.class文件了。
第三阶段
后台经过业务逻辑处理后将产生的结果输出到客户端。在这个过程中contentType的charset就发挥了功效。如果设置了charset则浏览器就会使用指定的编码格式进行解码,否则采用默认的ISO-8859-1编码格式进行解码处理。
流程如如下:
Java中文jsp页面_java中文乱码解决之道(七)—–JSP页面编码过程相关推荐
- [转]java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码
http://www.cnblogs.com/chenssy/ java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码 随着计算机的发展.普及,世界各国为了适应本国的语言 ...
- java 页面编码_java中文乱码解决之道(七)-----JSP页面编码过程
我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. 在上面代码中有两个地方存在编码:pageEncodi ...
- java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**
原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...
- java中文乱码解决之道(八)-----解决URL中文乱码问题
来源:http://www.cnblogs.com/chenssy/p/4237953.html 我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要 ...
- java url utf 8_java中文乱码解决之道(八)—–解决URL中文乱码问题
我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不 ...
- java中文乱码解决之道(五)—–java是如何编码解码的
编码&解码 1:I/O操作 2:内存 3:数据库 4:javaWeb 下面主要介绍前面两种场景,数据库部分只要设置正确编码格式就不会有什么问题,javaWeb场景过多需要了解URL.get.P ...
- VC6里面的中文名字或者注释复制乱码解决
只要你把输入法换成中文的输入法如搜狗,复制的编辑器输入法也调整为中文的,就会解决乱码复制问题,不知道原因,肯定是编码问题,不想深究.解决问题而已 转载于:https://www.cnblogs.com ...
- java pinyin4j 官网_Java中文转汉语拼音类库pinyin4j使用示例
pinyin4j的java开源类库,提供中文转汉语拼音(并且支持多音字) pinyin4j官方网址:http://pinyin4j.sourceforge.net/ import java.util. ...
- java之跳转_java学习之五种跳转关于jsp的
现在介绍一下五种关于jsp的跳转. 1.RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Se ...
最新文章
- 《Android App开发入门:使用Android Studio 2.X开发环境》——1-3 Android Studio 快速上手...
- [LeetCode]Gray Code
- SAP中创建分部机构凭证号码并且按年度编号
- VS2008非托管c++访问webservice服务(以WeatherWS 天气服务 为例)
- 转:ORACLE的JDBC连接方式:OCI和THIN
- IE和Firefox对iframe document对象的差异性
- php 错误500排错,如何排查Web服务器HTTP ERROR 500的错误?
- 【caffe-windows】 caffe-master 之图片转换成lmdb or leveldb
- 计算机存储系统中,有哪些措施可以提高 CPU 访问存储系统的速度?
- 封装自己的DB类(PHP)
- C语言符号优先级——(“++”符号的的坑)
- 嵌入式开发 | 单片机产品开发流程及学习方法
- 什么是php-fpm
- view的superview的变换
- Tilemap瓦片地图
- 使用计算机打印资料时需要安装打印机驱动,详细教您如何在计算机上安装打印机驱动程序...
- 云场景实践研究第40期:网聚宝
- 解决Android 模拟机开机黑屏问题、npm内存溢出问题
- 最长公共子序列_使用序列化查找对象中的脏字段
- python十六进制排序_python十六进制
热门文章
- VC++6.0中使用GDI+绘图(转载)
- Eclipse 真机调试检测不到手机解决方案
- 【白皮书分享】2020年未来智慧园区白皮书-华为.pdf(附下载链接)
- 【报告分享】中国人工智能产业发展指数.pdf
- Resource punkt not found
- 倒计时6天|2020腾讯广告犀牛鸟计划申请即将截止,错过再等一年!
- 海外仓ERP系统功能怎么样?
- Star Schema完全参考手册学习笔记九
- 面试准备每日五题:C++(八)——重写重载隐藏、vector相关
- 加快Linux上yum下载安装包的速度(以CentOS 7,安装gcc为例)