JSP/Servlet中的编码相关设置
在JSP和Servlet中有几个地方都可以设置编码,各个编码的功能也不一样,本文将对各个编码做一个小结。
各种编码一览
A. JSP/Servlet都有的编码设置
1. request.setCharacterEncoding("UTF-8")
2. response.setCharacterEncoding("UTF-8")
3. response.setContentType("text/html;
charset=UTF-8");
4. response.setHeader("Content-Type", "text/html; charset=UTF-8");
B. JSP专有的编码设置
1. <%@ pageEncoding="UTF-8" %>
2. <%@ contentType="text/html; charset=UTF-8" %>
C. HTML页面中的编码设置
1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
※以下内容用到本部分编码设置时,将使用A1, A3, B2的方式。
浏览器如何确定编码格式来显示页面
web服务器在接收到浏览器的请求信息后,经过处理,会发送一个应答消息给浏览器。应答消息包含一般三个部分:状态行,应答首部,应答主体。下面是一个示例:
HTTP/1.0 200 OK
Last-Modified: Mon: 20 Dec 2001 23:26:42 GET
Date: Tue 11 Jan 2002 20:52:40 GMT
Status: 200
Content-Type: text/html; charset=UTF-8
Servlet-Engine: Tomcat Web Server/4.0.1
Content-Length: 59
<html>
<body>
<h1>Hello World!</h1>
</body>
</html>
其中,第一行是状态行,最后的一部分是应答主体,而中间的部分就是应答首部了。而应答主体部分的Content-Type中的charset就指定了浏览器应该采用什么编码格式来显示页面。如果没有指定charset的话,浏览器会根据C1(meta中的charset)来显示页面;如果C1也没有的话,就采用本地默认的编码格式显示页面(应该与客户端的操作系统有关)
★浏览器显示页面所用的格式可以通过菜单 -> 查看 -> 编码来查看具体是哪种编码格式
web服务器如何决定编码
从上面可以知道,服务器在发送给客户端的应答主体中一般会包含charset。而这个charset的值有几个来源,我们从高优先级到低优先级排列。
注:下面的结论是采用Tomcat 5.5确认的结论,不一定全部适用于其他服务器。
1. A2, A3, A4
如果你的JSP或者Servlet中包含以上3中类型的代码,那么charset就是它们。如果有多条语句设置,那么charset就是最后一条所设置的值。
2. B2
B2的代码在编译成class
相关文档:
JSP 内置对象 收藏
内置对象是不需要声明,直接可以在JSP中使用的对象,JSP有以下几种内置对象:
1.request对象
request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。客户端的请求信息被封装在request对象中,通过它才能了解到客户 ......
<?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet type="tet/css" href="mystyle.css" ?>
<%@ page errorPage="error.jap" %>
<%@ page contentType="text/xml" %>
<realmarid>
皇马花名册
<athlete>
<name>齐达内</name>
<country> ......
WEB进行上传中文文件名的文件时没问题,但下载的时候出现问题,经过一番查找之后原来是TOMCAT默认不支持中文路径和中文文件,如果直接从Apache站点中下载Tomcat,无论是安装版的exe文件,还是
解压缩的ZIP文件,内置的对于get协议中的URL编码都是ISO-8859-1,这个字符集不能直接支持中文等双字节的信息,而中文文件的下载 ......
在开发过程出现这么一个问题:
比如:一个字段content 类型CLOB,这其中存的有可能复制粘贴过来的word excel html中的内容,用java将这些内容存入,存入后有特殊的符号 比如回车换行等。那么不能正常展示的数据。
解决方案:
存入数据的是将这个数据contentdata在js中进行
......
首先要说的就是 ajax 是无法实现上传文件的,可以想一下ajax与后台通信都是通过传递字符串,怎么能传递文件呢?其实出于安全考虑js是不能操作文件的,所以就不要再说用ajax来实现文件的上传了,这是不可能的。
而本文实现的文件上传也是无页面刷新的,可以说是一种"类似AJAX"方法。
&n ......