为什么在控制台输出的中文还是乱码
来源:6-2 项目作业
大圣归来²
2020-08-16 23:17:30
package com.system.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.system.user.User;
public class IndexFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("过滤器已销毁");
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("过滤器已生效");
boolean flag=false;
HttpServletRequest request=(HttpServletRequest)arg0;
request.setCharacterEncoding("UTF-8");
HttpServletResponse response=(HttpServletResponse)arg1;
response.setContentType("text/html;charset=UTF-8");
User sessionuser=(User)request.getSession().getAttribute("superuser");
System.out.print(sessionuser);
if(sessionuser==null) {
request.setAttribute("error", "您需要先登录后才可以访问");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
else {
arg2.doFilter(request, response);
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println("过滤器已初始化");
}
}
1回答
好帮手慕小尤
2020-08-17
同学你好,1. 建议同学尝试修改IndexFilter文件的字符集为utf-8,
2. 或尝试设置控制台的字符集。点击Window 项,选择 Preferences 项进入到偏好设置窗口中,根据图示红框选择进入到 Workspace 设置。如下所示:
3. 建议删除response.setContentType("text/html;charset=UTF-8");,此语句可能会造成css文件格式错误,导致页面css加载失败。如下所示:
祝学习愉快!
相似问题