Java Glassfish 3.01上的JSP UTF-8字符编码错误
我有一个相当严重的问题。在我的web应用程序中,我使用UTF_8编码。在我将jsp页面放入/Protected/文件夹之前,这一切都很正常。完全相同的jsp文件在我的文档根目录下运行良好。 要访问/protected/文件夹,我使用过滤器。 像这样: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
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进行了一些测试,但忘了删除它。再次感谢!