为什么在控制台输出的中文还是乱码

来源: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,

http://img.mukewang.com/climg/5f39faaf09022b8c08070561.jpg

2. 或尝试设置控制台的字符集。点击Window 项,选择 Preferences 项进入到偏好设置窗口中,根据图示红框选择进入到 Workspace 设置。如下所示:

http://img.mukewang.com/climg/5f39fb56095da9e307480624.jpg

3. 建议删除response.setContentType("text/html;charset=UTF-8");,此语句可能会造成css文件格式错误,导致页面css加载失败。如下所示:

http://img.mukewang.com/climg/5f39faea09cb231806120276.jpg

祝学习愉快!

0

0 学习 · 9666 问题

查看课程