Java Glassfish 3.01上的JSP UTF-8字符编码错误

Java Glassfish 3.01上的JSP UTF-8字符编码错误,java,jsp,servlets,character-encoding,servlet-filters,Java,Jsp,Servlets,Character Encoding,Servlet Filters,我有一个相当严重的问题。在我的web应用程序中,我使用UTF_8编码。在我将jsp页面放入/Protected/文件夹之前,这一切都很正常。完全相同的jsp文件在我的文档根目录下运行良好。 要访问/protected/文件夹,我使用过滤器。 像这样: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IO

我有一个相当严重的问题。在我的web应用程序中,我使用UTF_8编码。在我将jsp页面放入/Protected/文件夹之前,这一切都很正常。完全相同的jsp文件在我的文档根目录下运行良好。 要访问/protected/文件夹,我使用过滤器。 像这样:

    public void doFilter(ServletRequest request, ServletResponse response,
                     FilterChain chain)
throws IOException, ServletException {

    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;
    HttpSession session = req.getSession();
    PrintWriter out = res.getWriter();
    if (session.getAttribute("user") == null){
        // redirect the user to the login page and give error message
             res.sendRedirect("/myApp/login.jsp");
         }
    else {

    chain.doFilter(request, response);

    }
}
在我的sun-web.xml中,我指定了以下内容:

<locale-charset-info default-locale="">
<parameter-encoding default-charset="UTF-8"/>
</locale-charset-info>
在我的jsp文件中,我指定了以下内容:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
加上:


非常感谢您的帮助!提前谢谢

去掉过滤器中的以下行

PrintWriter out = res.getWriter();

您不仅在筛选器中根本不需要它,而且在第一次创建响应的outputstream或writer时,您以后不能再更改其字符编码。

请删除筛选器中的以下行

PrintWriter out = res.getWriter();

您不仅不需要在筛选器中使用它,而且在第一次创建响应的outputstream或writer时,您以后不能再更改其字符编码。

谢谢您的帮助!它解决了我的问题。在重定向之前,我只是使用Printwriter out=res.getWriter进行了一些测试,但忘了删除它。再次感谢!谢谢你的帮助!它解决了我的问题。在重定向之前,我只是使用Printwriter out=res.getWriter进行了一些测试,但忘了删除它。再次感谢!