与web服务器有关,你用哪一个web服务器

解决方案 »

  1.   

    哦,抱歉,忘了说我的配置了:
    win2000pro+jdk1.4.0+tomcat3.2.1+apache1.3.20
      

  2.   

    请试一下这个:成功了别忘了加分哟!:)
    <jsp:include page="xxxxx.jsp" flush="true"/>
      

  3.   

    试一试每个被包含文件内都加上<%@ page contentType="text/html;charset=gb2312" %>
      

  4.   

    老兄,问题还没有解决!
    query.jsp中的所有<%@ include file="xxxx.jsp" %>都改成上述形式吗?
    <%@ page contentType="text/html;charset=gb2312" import="java.sql.*,java.util.*"%>
    放在哪个文件里面呢?
      

  5.   

    <%@ page contentType="text/html;charset=gb2312"%>
      

  6.   

    每页都要有<%@ page contentType="text/html;charset=gb2312" %> 
      

  7.   

    对于tomcat 3.2.1,这是它的一个bug,
    包含文件中的汉字不能正确显示,解决的方法有两个
    1。对每一个包含文件中的每一处汉字,进行字符集转换
    2。修改tomcat的源代码,更正这个错误,然后重新编译,
    如果想要修改方法,请回个帖!
      

  8.   

    tomcat 修改方法
    1。找到src\org\apache\jasper\compiler\Parser.java,打开它
    2。找到函数public boolean accept(...
    3。在这个函数下找到这样几行
       else if(match.equals("include"))
           JspUtil.checkAttributes("Include directive",attrs,includeDvalidAttrs);
    4。这样修改
       else if(match.equals("include"))
       {
           JspUtil.checkAttributes("Include directive",attrs,includeDvalidAttrs);
           attrs.put("encoding","gb2312");
       }
    5。编译此文件,得到一堆.class文件
    6。找到tomcat\lib\jasper.jar
    7。使用jar命令行展开该文件,得到一个目录结构及文件
    8。将5中产生的.class文件按照目录放在7中的对应目录下,覆盖原来的文件
    9。使用jar命令行工具重新打包成jasper.jar文件
    10。将9中生成的jasper.jar拷贝到tomcat\lib下,覆盖原来的文件
    11。重启tomcat
    大功告成
    赶快加分!
      

  9.   

        else if (match.equals("include")) {
            JspUtil.checkAttributes ("Include directive", attrs, 
     includeDvalidAttrs, start);
     attrs.put("encoding","gb2312");
     System.out.println("ok");
     }
    我修改了你所说的类,并按照你的要求重新构造了jasper.jar文件,我确实看到了新的类文件的生成日期是我编译的时间,而且在你的要求上加了System.out.println("ok");,但是我重新启动tomcat后没有反应啊,既没有输出ok也没有看到menu.jsp中的中文正常,我甚至在该方法的入口处打印ok也没有任何反应,无论我使用的是<%@ include file="menu.jsp" %>
    还是<jsp:include page="xxxxx.jsp" flush="true"/>,
    问题出在什么地方呢?难道要将所有的<%@ include 换成<jsp:include 吗
      

  10.   

    即使我将所有的<%@ include 形式换成<jsp:include 都不好用啊!!!!
    你这样做过吗?我到底错在那里呢?
      

  11.   

    这说明你的jasper.jar文件可能不止一个,而你又没有全部覆盖,
    看看你实际启动tomcat时的classpath吧
      

  12.   

    1.这种修改只适用于<%@ include 形式,要在最外层的jsp文件开头设置charset=gb2312
    2.对于<jsp:include ,每个文件开头都设置charset=gb2312,不用修改任何tomcat的源
    文件都是对的
      

  13.   

    http://www.csdn.net/expert/topic/318/318066.shtm
    我的也是没有解决,使用<jsp:inclue...>
    错误:
    Page directive: can't have multiple occurrences of contentType
      

  14.   

    我不是没有对你的方法没有信心,只是不知道错在那里了,我在国外的一个站点上也看到说修改tomcat的源代码可以解决中文问题,但是没有具体的代码,我也不知道该改哪儿。我还装了tomcat4,不知道是否是这个原因,我在试试,不要急,我会给分的。
      

  15.   

    OK,你的方法是对的,我把原来的那个jasper.jar文件在该目录下存为了jasper2.jar,结果tomcat启动的路径里面包含了它,而那个在类路径的后面,可能比前面的优先,结果:)。非常感谢你的帮助!
    另外我已经不用tomcat了,因为在页面间使用request.getParameter()传递参数时得到的中文还是需要进行编码转换,而resin这两个都没有问题,现在我的问题是我在使用apache的jakarta project的taglibs,其中的DBTags里面的一个标签getNumber在resin下不支持,而tomcat支持,哎,为什么免费的东西总有问题呢?
      

  16.   

    不知这样行不行:
    你把charset=gb2312这个东西去掉,然后在页面里所有涉及到有中文的地方,就用这种形式。
    {%>
    ....
    <%=var%>//var就代表汉字
    .....<%}
    我以前在用MYSQL时就是这样搞定的,不知在这里行不行,我只是随便说说而已。
      

  17.   

    to secball(一片秋叶):
    这个方法我试过,不行的。
      

  18.   

    lliang2(ll)的方法还有一个问题是对页面属性设置<%@ page contentType="text/html;charset=gb2312" import="java.sql.*,java.util.*"%>
    必须放在query.jsp中,如果放在header.jsp中则query.jsp中的静态中文还是不能正常显示,只是其它被包含页面中的中文没有问题了。
      

  19.   

    看来必须要修改源码了阿!
    另外:resin支持多平台么?
      

  20.   

    resin的国际化支持我觉得比tomcat好!resin好像也支持多平台。
      

  21.   

    response.setContentType("text/html; charset=GB2312");
    或者response.setContentType("text/html; charset=UTF-8");
    charset前面留一个空格