说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用<%@ include file="xxx.jsp"%>出现的怪问题!求教

编辑:说三道四文库 发布时间:2018-07-16 04:25
HTML文档下载 WORD文档下载 PDF文档下载
有一个公共的jsp:xxx.jsp,里头有如下内容
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page errorPage="errorPage.jsp"%>

此JSP用来给其他jsp页面包含,奇怪的是包含了此jsp的页面中文依然是乱码,但是我把
<%@ page contentType="text/html;charset=gb2312"%>直接写在页面中就没乱码了。

本来以为是包含没有起作用,但是发现后面那句errorPage是有效的,说明是包含进来的。

哪位高手遇到过这个问题帮忙看一下,谢谢了。
在每个JSP页面中都声明<%@ page contentType="text/html;charset=gb2312"%>不就行了吗?
<jsp:include page="xxx.jsp" />
用<jsp:include page="xxx.jsp" />也是不行的,我试过了
page contentType语句一般是在页面的开始进行设置,待到有响应之后contentType就已经进行了设置,再添加page contentType语句理论上是不起作用的
每个JSP页面中都声明<%@ page contentType="text/html;charset=gb2312"%>,这个必要的
<%@ page contentType="text/html;charset=gb2312"%>
放在整个页面的最顶端,
<%@ page include="" %>
<jsp:include page="" />
是不一样的啊。
前者是把整个内容都拿过来,然后在编译。
后者是在自己的内部编译后在拿过去。
你自己看看是不是哪里写多了,或者位置搞错了。
up
这个是tomcat的jsp引擎的关系么?我在weblogic下面用include就一点问题也没有啊,大家继续讨论。
而且页面很多,用include比较好维护啊,在tomcat下头就没有办法解决了么?大家继续。
up
转到另一个页面,当然是中文字符串问题了。

传之前:
str=new String(str.getBytes("gb2312"),"ISO8859-1");
传之后:
str=new String(str.getBytes("ISO8859-1"),"gb2312");


这里好像没有牵涉到转页面的问题吧。

郁闷啊,include进来咋就不可以呢。
将你的
<%@ page errorPage="errorPage.jsp"%>

改为看行不行
<%@ include file="errorPage.jsp"%>
??这个<%@ page errorPage="errorPage.jsp"%>是指定出错页面,让页面出异常时候转过去的,include它是做什么????
因为每一个网页都指明该页的编码方式,即需加入
<%@ page contentType="text/html;charset=gb2312"%>语句。

你的xxx.jsp页中的<%@ page contentType="text/html;charset=gb2312"%>
语句只说明是xxx.jsp这个页的编码方式,不能代表其它页。

所以用include是不能解决中文刮码的问题。
那为什么在weblogic下面这样做就可以啊,是不是各个应用服务器实现的规范问题呢?
up
我试过在同样的tomcat环境中include没有中文问题。你再检查一下看。
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘