问下导入以前的文件但是控制台乱码问题。
老师问一下我把以前的文件什么的导入了进来,但是控制台输出会有乱码。
package 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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import entity.User;
import service.UserService;
/**
* Servlet Filter implementation class LoginFilter
*/
@WebFilter(urlPatterns = {"/books","/booklist","/category"})
public class LoginFilter implements Filter {
private UserService userService = new UserService();
/**
* Default constructor.
*/
public LoginFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
// pass the request along the filter chain
//System.out.println("ok");
HttpServletRequest req= (HttpServletRequest)request;
System.out.println("Login Filter捕捉到URI :" + req.getRequestURI());
User user2 = (User) req.getSession().getAttribute("user");
System.out.println(user2);
HttpServletResponse res = (HttpServletResponse)response;
if(req.getSession().getAttribute("user") == null) {
req.setAttribute("errmessage", "请登陆");
req.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);;
}else {
User user = (User) req.getSession().getAttribute("user");
if(userService.checkUser(user)) {
chain.doFilter(request, response);
}else {
req.setAttribute("errmessage", "请登录");
req.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);;
}
}
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
System.out.println("Login Filter初始化成功");
}
}这是文件
这是 控制台输出的效果
Login Filter???URI :/category
现在cosole 的encoding 是GBK
但是加入我把他的encoding 改为utf-8的话输出为:
5-Aug-2020 21:56:04.746 ��Ϣ [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory ��web Ӧ�ó�����Ŀ¼ [D:\apache-tomcat-8.5.57\webapps\manager]
类似于这样,在gbk的encoding下这些乱码都是中文。
Encoding Filter ?????????encoding??:UTF-8
而且这个地方也还是乱码。
问下这个要怎么解决呢?
正在回答 回答被采纳积分+1
同学你好,1. 设置所有文件都是UTF-8编码。具体:左上角:File-->settings-->Editor-->File Encodings 将所有编码都设置为UTF-8模式。如下所示:

2. 找到intellij idea安装目录,bin文件夹下面idea64.exe.vmoptions、idea.exe.vmoptions文件,追加:-Dfile.encoding=UTF-8 如下所示:

3. 在部署Tomcat的VM options项中添加:-Dfile.encoding=UTF-8
4. 重启Intellij idea
祝学习愉快!
- 参与学习 人
- 提交作业 9410 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星