JSP中的<%@page pageEncoding=”UTF-8”%>具体的功能是什么.

来源:互联网 发布:seo关键字是什么意思 编辑:程序博客网 时间:2024/05/01 06:03
当有人问你:JSP中的<%@page pageEncoding=”UTF-8”%>具体的功能是什么?
你答:设置页面编码字符集。没了,那可不太合适,小编在这里详解一下

JSP-> .java文件的翻译过程,由谁执行

是Tomcat(中间件容器)执行的.

那么中间件容器运行在什么环境中

相信有人不太清楚,是运行在你的操作系统中的.

那么操作系统的字符集又是什么呢?

操作系统的字符集是根据具体环境定义的:

如:中国GBK、中国台湾BIG5等等.

Tomcat默认使用ISO-8859-1字符集编译jsp.

JSP提供页面指令,设置页面字符集,通知中间件容器在翻译JSP的时候,使用什么字符集来翻译.调用JVM编译和解释java代码及字节码文件的时候,使用什么字符集.


例如:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
1.pageEncoding与contentType中的charset的区别
1jsppageEncoding的含义:宏观上指jsp文件本身的编码pageEncoding="UTF-8",jsp文件本身的编码为UTF-8
2) 而contentType中的charset指的是服务器发送给客户端时的内容编码,
contentType="text/html; charset=UTF-8",是指服务器发送给客户端的文本类型是text/html,编码格式是UTF-8
底层:
.jsp文件被转译成.java文件时, response.setContentType("text/html;charset=ISO-8859-1");
[size=10.5000pt]2. pageEncoding="UTF-8"与pageEncoding="ISO-8859-1"区别
[size=10.5000pt]1)在浏览器上显示,pageEncoding="UTF-8"格式的jsp页面中的中文没有乱码,而pageEncoding="ISO-8859-1"格式的jsp页面中的中文有乱码
[size=10.5000pt]2).jsp文件被转译成.java文件时,pageEncoding="UTF-8"格式的.java文件中的中文没有乱码,而pageEncoding="ISO-8859-1"格式的.java文件中的中文有乱码
如下:
代表pageEncoding="ISO-8859-1"格式的.java文件
          out.write("   \t\t我爱我å®\r\n");
      out.write("   \t\t<form action=\"#\">\r\n");
      out.write("   \t\t\t姓名:<input type=\"text\">\r\n");
      out.write("   \t\t\t<input type=\"submit\" value=\"提交\">\r\n");
代表pageEncoding="UTF-8"格式的.java文件
  out.write("   \t\t我爱我家\r\n");
      out.write("   \t\t<form action=\"#\">\r\n");
      out.write("   \t\t\t姓名:<input type=\"text\">\r\n");
      out.write("   \t\t\t<input type=\"submit\" value=\"提交\">\r\n");
[size=10.5000pt]3)总结:也因此说明1)条结论中为什么在浏览器中pageEncoding="ISO-8859-1"格式的jsp页面中的中文有乱码原因:
在于pageEncoding="ISO-8859-1"格式的.jsp文件在被转译成.java文件时就已经出现乱码,服务器再把乱码的数据响应到浏览器,自然浏览器展示出来的数据也是乱码的。
阅读全文
0 0
原创粉丝点击