JSP页面编码

  • A+
所属分类:学习分享 未分类

在JSP中通常通过page指令进行设置,page指令是JSP页面中最常用的指令,用于定义整个JSP页面的相关属性,这些属性在JSP被服务器解析成为Servlet时会转换成为相应的Java程序代码。page指令的语法格式如下:

<%@page attr1="value1" attr2="value2" ....%>

在page指令中有两个属性就是用于设置编码的:

<%@ page language="java" import="java.util.*"  contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

从中我们可以看到contentType、pageEnconding两个属性都在设置编码,

其意义 是第一个编码 pageEncoding="UTF-8" 是针对 jsp 页面的编码。就是在我们的操作系统中jsp源文件的编码。容器会检测这个值对源文件进行编译。

第二个编码contentType="text/html;charset=UTF-8" 是指jsp 输出结果的编码,同时浏览器会将编码设成相应的编码,当浏览器发送请求时,会使用此编码对发送的内容编码。

另外,要想在 Servlet 中正常显示,还需通过以下代码来设置跟 jsp 一样的编码。

 request.setCharacterEncoding("UTF-8");    
 response.setCharacterEncoding("UTF-8");

但是,当jsp 的请求方式 为  get 时,这样设置仍然无效,还需 在  server.xml 中connector的URIEncoding属性来指定. 也就是说如果完全解决编码问题,对于tomcat来讲需要两种方式都加。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: