举个例子:
只有注册用户可以进入ticket.jsp页面,过滤器部分代码
if(session.getAttribute("user")!=null){
   chain.doFilter(request, response);
}
else{
   out.println("<script language='javascript'>alert('你还未登录');history.go(-1);</script>");
}
web.xml文件部分代码:
<filter-mapping>
   <filter-name>UserFilter</filter-name>
   <url-pattern>/ticket.jsp</url-pattern>
</filter-mapping>
在运行时,如果没登录,弹出的警告框的中文也是乱码。这时我登录后还是进不去ticket.jsp。重刷新页面后才可以进去,但是打开的ticket.jsp中文全是乱码(如果不用过滤器过滤该页面,打开后就是正常的)。
望大侠们不吝赐教,谢谢

解决方案 »

  1.   

    去把页面编码,和过滤器编码 一致最好都用GBK的编码
      

  2.   

    1) 更改 D:\Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”:  方法是找到 server.xml 中的    <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="8443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />
    2)更改 Java 程序:public class ThreeParams extends HttpServlet {
      public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
          response.setContentType("text/html; charset=GBK");
          ...
      }  
    }3)
    keywords=new String(request.getParameter("keywords").getBytes("8859_1")); 
      

  3.   

    我把全部文件的编码都 改成GBK了,可是还是显示乱码啊。注意我的问题中注明了:如果不用过滤器过滤该页面,打开后就是正常的
    着急啊...
      

  4.   

    最好都用GBK的编码,保证你的页面编码和你过滤器里写的一致
      

  5.   

    编码我都统一了好多次了,有gb18030->gbk->utf-8,还是没解决问题,也把request.setCharacterEncoding("UTF-8")放在接收和处理数据之前了,可是还不行啊,谁能救我啊