2023-01-06

一、处理请求响应乱码问题

通过过滤器处理乱码问题

请求乱码和响应乱码

(1)创建一个"web Application"项目,命名为“bookstore06”,将"bookstore05"的代码迁移过去。(点击bookstore05项目中的“Show in Explorer”,将“resources”、“src”、“web”文件夹复制到“bookstore06”中)

之后将“resources”设置为“资源目录”

学习笔记——书城项目第六阶段之处理请求响应乱码问题

选中“web”文件夹下中“WEB-INF”下的“lib”,将其中的包

学习笔记——书城项目第六阶段之处理请求响应乱码问题

学习笔记——书城项目第六阶段之处理请求响应乱码问题

删除“index.jsp”

(2)设置服务器(使用Tomcat8.5.27)

Name命名为“bookstore06_server”,设置为Chrome,Redeploy

学习笔记——书城项目第六阶段之处理请求响应乱码问题

(3)在“BaseServlet.java”中的“doGet”函数中的开头添加代码,用于处理响应乱码

response.setContentType("text/html;charset=utf-8");

(4)之后将“CartServlet.java”中的第82行代码(与上面的代码相同)删除。

(5)创建一个过滤器“EncodingFilter”。

学习笔记——书城项目第六阶段之处理请求响应乱码问题

设置过滤器中的注解,添加urlPatterns="/*"

@WebFilter(filterName = "EncodingFilter",urlPatterns = "/*")
public class EncodingFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");//处理post请求乱码
        resp.setContentType("text/html;charset=utf-8");//处理响应乱码
        chain.doFilter(req, resp);//之后放行
    }
    public void init(FilterConfig config) throws ServletException {
    }
    public void destroy() {
    }
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。