在我们写jsp时都会写或看见下面量段熟悉的代码:
<%@ page language="java" contentType="text/html;
charset=utf-8">
在head里面也会有meta标签
<meta http-equiv="content-type" content="text/html;
charset=utf-8" />
这量段代码的区别是:
当你不指定编码时<%@ page language="java" contentType="text/html; %>
就会去 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
找 charset 。
希望下面的文章对大家有帮助。
关于JSP页面中的pageEncoding和contentType两种属性的区别:
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, 更有利亚洲区的文字 CJKV系JSP网页的开发和展示, (例pageEncoding=GB2312 不等于 contentType=utf-8)。
jsp文件不像.java,.java在被编译器读入的时候默认采用的是操作系统所设定的locale所对应的编码,比如中国大陆就是GBK,台湾就是BIG5或者MS950。而一般我们不管是在记事本还是在ue中写代码,如果没有经过特别转码的话,写出来的都是本地编码格式的内容。所以编译器采用的方法刚好可以让虚拟机得到正确的资料。
但是jsp文件不是这样,它没有这个默认转码过程,但是指定了pageEncoding就可以实现正确转码了。
举个例子:
<%@ page contentType="text/html;charset=utf-8" %>
大都会打印出乱码,因为输入的“你好”是gbk的,但是服务器是否正确抓到“你好”不得而知。
但是如果更改为
<%@ page contentType="text/html;charset=utf-8" pageEncoding="GBK"%>
这样就服务器一定会是正确抓到“你好”了。
分享到:
相关推荐
因此,为了处理中文字符,最好在JSP文件头部使用`<%@ page pageEncoding="GBK" %>`或指定你需要的编码格式。 2. **Web容器编译JSP** 当Web容器(如Tomcat)将JSP编译为Servlet时,它会读取硬盘上的JSP文件。如果...
通过对JSP文件与响应编码方式的设置、文件头部的字节顺序标记(BOM)、表单数据的读取、请求参数的处理等多个方面进行深入分析,帮助开发者更好地理解和解决这一问题。 #### 1. 设置JSP文件与响应编码方式 在JSP...
1. **在JSP文件头部添加以下代码:** ``` ;charset=UTF-8" %> ``` 其中,“application/vnd.ms-excel”表示数据应被解释为Excel文件,而“charset=UTF-8”则指定了字符编码,确保中文等非英文字符能正确显示。 ...
这确保了项目内的所有文本文件(包括JSP文件)以正确的编码方式打开和保存。 2. **Window -> Preferences -> Workspace** 这一步是为了全局配置Eclipse的工作空间设置。同样地,找到“Text file encoding”选项,...
在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...
解决方法包括设置正确的字符集,如在JSP文件头部声明`;charset=UTF-8" %>`,以及在Tomcat的`server.xml`文件中配置Connector的`URIEncoding`属性。 7. **解决tomcat5.0中文乱码问题纪录**:这个文件可能详细记录了...
在创建或修改JSP文件时,需确保编辑器以UTF8编码保存,同时在JSP文件头部声明字符编码,如: ```jsp ;charset=UTF-8" language="java" %> ``` 这样,浏览器就能正确解析和显示页面内容。 JavaScript作为客户端脚本...
JSP中文乱码问题主要是由字符编码不一致引起的,通过在JSP文件中明确指定编码格式或在服务器层面配置统一的编码标准,可以有效地解决这一问题。在实际开发中,应根据项目的规模和需求选择合适的解决方案,确保中文...
JSP文件的扩展名通常为`.jsp`,并且所有JSP程序的执行都在服务器端进行。 常见的动态网页技术包括ASP、PHP和JSP。Apache Tomcat是一个广泛使用的开源Java Servlet容器,它的目录结构包括bin(用于存放启动和关闭...
- **解决中文问题**:在JSP文件头部加入`;charset=GBK" %>`可以解决中文乱码问题。 - **编译指令**:JSP编译指令用于定义JSP页面的一些基本属性,如使用的脚本语言、Servlet实现的接口等。 - `<%@ page %>`指令:...
"JSP文件管理系统"是一个基于JavaServer Pages (JSP) 技术开发的文件管理解决方案。JSP是一种服务器端的动态网页技术,它允许开发者在HTML或者XML文档中嵌入Java代码,从而实现动态内容的生成。在这个系统中,用户...
这可以通过在JSP文件头部添加`;charset=UTF-8"%>`来实现,确保页面输出和接收的数据都是UTF-8格式。 3. **引入Ueditor资源**:将Ueditor的JavaScript和CSS文件引入到你的JSP页面中。通常,这涉及到将`ueditor.all....
- **引入TLD**:在JSP文件头部,使用`<%@ taglib %> `指令引入分页标签库,指定其URI。 - **设置属性**:在JSP中,通过EL(Expression Language)或脚本let设置分页所需的属性,如总记录数、每页记录数、当前页码...
在IT行业中,JSP(JavaServer Pages)是一种用于创建...通过分析这些文件,你可以进一步了解JSP文件下载的具体实现细节,以及如何与服务器的文件系统交互。记住,安全性和用户体验是设计下载功能时必须兼顾的重要因素。
文件下载通常涉及生成HTTP响应,设置适当的响应头(如Content-Disposition,指示浏览器以附件形式下载文件,以及Content-Type指定文件类型),然后将文件内容写入响应流。在JSP中,可以通过Servlet或者使用JSP内置...
总结起来,使用Java和JSP实现文件下载的过程包括:创建一个用户界面(如`downloadtool.jsp`)来触发下载请求,处理请求的服务器端程序(如`dodownloadtool.jsp`)设置正确的HTTP响应头并读取并发送文件内容。...
总结来说,JSP文件上传下载是通过SmartUpload库实现的,它简化了文件操作的复杂性,使得开发者能更专注于业务逻辑。通过理解和实践SmartUpload的用法,你将能够为你的Web应用添加这一关键功能。同时,理解文件上传...
【jsp文件上传下载】是一个常见的Web开发功能,用于在服务器端处理用户上传的文件并提供文件下载服务。在Java Web环境中,JSP(JavaServer Pages)是常用的动态网页技术,结合Servlet可以实现复杂的文件交互操作。 ...
- **设置响应头**:在JSP或Servlet中,我们需要设置HTTP响应头,包括Content-Type(指定文件类型)、Content-Disposition(定义附件的名称)和Content-Length(文件大小)。 - **读取文件**:从服务器的文件系统中...