pageEncoding 作为 Jsp page 指令的一个属性,表示当前 jsp 文件的编码格式,由于以前多用 contentType 来解决编码问题,从来没有用过这个属性,不过这个属性也不是没用,记录一下:
pageEncoding:
pageEncoding :
Jsp 需要由 jsp 引擎先转化为 servlet 源代码然后再编译 ,最后由 servlet 引擎载入执行。
画个图:(skitch
)
那么 , pageEncoding 就主要用在(建议只用在) jsp 转为 servlet code 这步,由于 jsp 引擎需要读取 jsp file ,那么就需要知道这个 jsp file 的编码,以防里面的非英文字符转化到 servler code 时不一致。当然contentType也有这个副作用,下面再说。
注意:
第一次默认使用 iso8809-1 读取 jsp 文件以获得 jsp 中 pageEncoding 的值,当然无论什么编码 ( 除了utf-16 ? ) 下英文的编码都一样,这样读去开头的 jsp 指令不会有错的。
contentType:
contentType :
用处就很多了,主要用于设置 http 头 的 content-type ,来指示 servlet 引擎以什么编码向浏览器传递信息以及指示浏览器以什么编码来显示服务器传过来的信息。
不过在 servlet 以及 jsp 中也有点副作用了。
在 jsp 中如果没有设置 pageEncoding ,jsp 引擎 则读取 contentType里的 charset 来替代 pageEncoding 作为 jsp 文件的编码,如果两者都没有则用iso8809-1读取了,那么毫无疑问里面由中文的话,必定乱码。
比较:
那么既然 contentType 可以完成 pageEncoding 的工作,为什么还要 pageEncoding 这个属性呢?我觉得是为了一个特殊情况,
如果 jsp 文件是编码 A ,但是想要在网络上以
B 编码
传输,以及浏览器以 B 编码来显示服务器信息,则这时候只能设置 jsp 文件 pageEncoding 为 A ,contentType charset 为 B编码 。
一般,如果 jsp 文件编码和网络传输编码一致的话,则只设置contentType charset 即可,这也正是我以前一直的做法,不过这并不意味着 pageEncoding 没用了,毕竟还有上述的特殊条件。
- 大小: 56 KB
分享到:
相关推荐
jsp指令:*"pageEncoding="UTF-8"%> jsp中的内置对象 <form method="post" action="hao.jsp"> 一:request内置对象的方法 解决中午乱码问题: request.setCharacterEncoding("utf-8"); 获取页面数据: ...
0.新建web项目 首先,在MyEclipse里新建java web项目,项目名为...打开login.jsp页面后,修改第一行的代码为pageEncoding=”utf-8″,防止页面中文出现乱码。接下来在body部分定义form表单,用于用户输入用户名和密
JSP显示当前系统时间的四种方式: 第一种java内置时间类实例化对象: <%@ page language=java import=java.util.* pageEncoding=UTF-8%> <% String path = request.getContextPath(); String ...
1.首页(填写姓名)(可选,表单post到time.jsp即可): 略 2.判断时间forward到不同页面: time.jsp: 代码如下: <%– Document : index Created on : 2009-10-3, 15:48:00 Author : lucifer –%> <%@...
1.xml文件代码 ... charset=UTF-8 pageEncoding=UTF-8%> <%@ taglib uri=http://java.sun.com/jsp/jstl/core prefix=c%> <%@ page isELIgnored=false %> ${fqs} var=fq> <fq name=${fq.nam
告诉浏览器用何种编码来解析html或者JSP文件。 window-->Preferences-->MyEclipse-->Files and Editors-->选择子项-->Encoding 例如:选择UTF-8, 新建jsp文件的时候,contentType="text/html; charset=UTF-8" ...
@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% response.setContentType("text/xml"); String txt = request.getParameter("username"); out.println("<student><name>张
在本例中AJAX通过解析XML文件得到的数据传回到jsp页面,其中省市均是从数据库取到的值: jsp页面代码: 代码如下: <%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%> <% ...
-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> 17. 18. p:prefix="/WEB-INF/view/" p:suffix=".jsp" /> 19. 20. 21. class="org.springframework.web.multipart.commons....
最简单的例子,通过ServletFileUpload静态类来解析Request,工厂类FileItemFactory会对mulipart类的表单中的所有字段进行处理,不只是file字段。getName()得到文件名,getString()得到表单数据内容,isFormField...
ajax传输xml数据:只要把数据封装成xml格式就可以实现传输,前台js用responseXML接收xml参数,后台读取用流和dom4j来解析 前台页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> ...
动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,定不会检查所含文件的...
index.jsp <%@ page language=java pageEncoding=UTF-8%> <html> <head> <title>二级菜单联动演示</title> [removed] var req; window.οnlοad=function() {//页面加载时的...
index.jsp: 代码如下: <%@ page language=”java” pageEncoding=”UTF-8″%> <html> <head> <title>二级菜单联动演示</title> [removed] var req; [removed]=function() {//页面...
动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,定不会检查所含文件...