请求乱码
get请求
get请求的数据存储在URL中,故只要解决tomcat中的URL乱码即可解决问题
在Tomcat目录的conf文件夹下的server.xml文件中找到配置服务的一行, 加入
URIEncoding="UTF-8"
post请求
post请求是数据在请求体中, 故需要在获取前指定编码, 可通过Servlet过滤器来完成
// Filter: /*表示对所有文件执行
import javax.servlet.*;
import java.io.IOException;
public class WelcomeServlet implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("UTF-8");
filterChain.doFilter(servletRequest, servletResponse);
}
}
响应乱码
指发给浏览器的数据乱码, 可使用过滤器拦截请求在发送前设置编码格式告诉浏览器
import javax.servlet.*;
import java.io.IOException;
public class WelcomeServlet implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException, IOException {
servletResponse.setContentType("text/html;charset=utf-8");
filterChain.doFilter(servletRequest, servletResponse);
}
}
但是通常不需要, 因为html文件会有对应的设置