尊敬的高手!!
帮小弟一个忙
问题是这样的:
   我在一个jsp页面把请求提交给一个servlet,然后servlet根据请求的类型不同转到相应的jsp页面,结果是在jsp页面不能显示中文(只显示问号),但是不通过servelt转发直接访问jsp页面的时候却能正常显示.
先向各位高手说声谢谢!!

解决方案 »

  1.   

    设置过滤器。1、到你Tomcat 5.0\webapps\servlets-examples\WEB-INF\classes\filters下找到SetCharacterEncodingFilter.java这个文件。
    2、把SetCharacterEncodingFilter.java放到你的工程代码中。
    3、设置web.xml
        <filter>
         <filter-name>Set Character Encoding </filter-name>
         <filter-class>你的包.SetCharacterEncodingFilter </filter-class>
         <init-param>
           <param-name>encoding </param-name>
           <param-value>UTF-8 </param-value>
         </init-param>
         <init-param>
           <param-name>ignore </param-name>
           <param-value>true </param-value>
         </init-param>
       </filter>
       <filter-mapping>
         <filter-name>Set Character Encoding </filter-name>
         <servlet-name>action </servlet-name>
       </filter-mapping>
      

  2.   

    up
    原因很简单 编码问题不规范 
    前台和后台的编码不一致  如楼上所说 使用过滤器
    还有你的jsp页面编码也要一致 
      

  3.   

    siyue_qi 你好!
    我用的是tomcat6.0我找不到这个SetCharacterEncodingFilter.java文件啊!
    还有我更本就没有servlets-examples这个文件夹
    我用的ide是MyEclipse6.0
      

  4.   

    那就在jsp页面里加上:<%request.setCharacterEncoding("gb2312"); %>
      

  5.   

    在 servlet里面接受数据的时候 
    写一
    request.setCharacterEncoding("gb2312"); 
    response.setCharacterEncoding("gb2312"); 
    在不看看,
    同时你确定你下你的页面编码为GB2312的  或者GBK
      

  6.   

    首先所有的java中文乱码问题都是可以解决的。
    解决这些乱码问题需要了解很多方面的原理。简单的问题要了解servlet(jsp)编码,html解码原理。如果你的中文在数据库和servlet中都是正常的,那么,只要在jsp文件的<head>中加入<meta http-equiv="Content-Type" content="text/html; charset=gb2312">就OK了。
      

  7.   

      谢谢各位的帮忙,真正的原因是我在servlet用了一个out做为测试,搞了大半天,我同学来帮我调试的时候,把那些测试的out注释掉一点问题都没有了,虽然问题都不在各位的所说范围,但是依然要感谢你们,谢谢!!!