`
yiminghe
  • 浏览: 1434057 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Jsp - pageEncoding 解析

    博客分类:
  • java
阅读更多

    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
1
0
分享到:
评论
2 楼 yiminghe 2012-02-23  
jiahut 写道
请问阁下图用什么东西画的,很性感

skitch
1 楼 jiahut 2012-02-19  
请问阁下图用什么东西画的,很性感

相关推荐

    jsp解析

    jsp指令:*"pageEncoding="UTF-8"%> jsp中的内置对象 <form method="post" action="hao.jsp"> 一:request内置对象的方法 解决中午乱码问题: request.setCharacterEncoding("utf-8"); 获取页面数据: ...

    JSP+Servlet制作Java Web登录功能的全流程解析

    0.新建web项目 首先,在MyEclipse里新建java web项目,项目名为...打开login.jsp页面后,修改第一行的代码为pageEncoding=”utf-8″,防止页面中文出现乱码。接下来在body部分定义form表单,用于用户输入用户名和密

    JSP实时显示当前系统时间的四种方式示例解析

    JSP显示当前系统时间的四种方式: 第一种java内置时间类实例化对象: <%@ page language=java import=java.util.* pageEncoding=UTF-8%> <% String path = request.getContextPath(); String ...

    JSP forward用法分析实例代码分析

    1.首页(填写姓名)(可选,表单post到time.jsp即可): 略 2.判断时间forward到不同页面: time.jsp: 代码如下: <%– Document : index Created on : 2009-10-3, 15:48:00 Author : lucifer –%> <%@...

    详解Android之解析XML文件三种方式(DOM,PULL,SAX)

    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

    myEclipse乱码解决办法

    告诉浏览器用何种编码来解析html或者JSP文件。 window-->Preferences-->MyEclipse-->Files and Editors-->选择子项-->Encoding 例如:选择UTF-8, 新建jsp文件的时候,contentType="text/html; charset=UTF-8" ...

    AJAX+JSP实现读取XML内容并按排列显示输出的方法示例

    @ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% response.setContentType("text/xml"); String txt = request.getParameter("username"); out.println("<student><name>张

    AJAX解析XML实例之下拉框省、市二级联动

    在本例中AJAX通过解析XML文件得到的数据传回到jsp页面,其中省市均是从数据库取到的值: jsp页面代码: 代码如下: <%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%> <% ...

    spring_MVC源码

    -- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> 17. 18. p:prefix="/WEB-INF/view/" p:suffix=".jsp" /> 19. 20. 21. class="org.springframework.web.multipart.commons....

    Apache Commons fileUpload实现文件上传

    最简单的例子,通过ServletFileUpload静态类来解析Request,工厂类FileItemFactory会对mulipart类的表单中的所有字段进行处理,不只是file字段。getName()得到文件名,getString()得到表单数据内容,isFormField...

    Ajax如何传输Json和xml数据

    ajax传输xml数据:只要把数据封装成xml格式就可以实现传输,前台js用responseXML接收xml参数,后台读取用流和dom4j来解析 前台页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> ...

    java 面试题 总结

    动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,定不会检查所含文件的...

    Ajax实现二级联动菜单

    index.jsp <%@ page language=java pageEncoding=UTF-8%> <html> <head> <title>二级菜单联动演示</title> [removed] var req; window.οnlοad=function() {//页面加载时的...

    Ajax二级联动菜单实现原理及代码

    index.jsp: 代码如下: <%@ page language=”java” pageEncoding=”UTF-8″%> <html> <head> <title>二级菜单联动演示</title> [removed] var req; [removed]=function() {//页面...

    超级有影响力霸气的Java面试题大全文档

     动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,定不会检查所含文件...

Global site tag (gtag.js) - Google Analytics