zoukankan      html  css  js  c++  java
  • servlet3.0 定义编码过滤器

    servlet3.0中,不用再在web.xml中建立映射,直接用注解器即可,这个样子看起来有点像pyhton中的装饰器(不知道功能实现是否一样)。

    tomcat使用的的编码方式:iso8859-1,而我们做其他事情的时候一般都是用utf-8,比如插入数据库的时候,如果不用utf-8,则会出现乱码。

    解决方法有很多:

    1.修改tomcat中的默认编码格式

    2. 在要处理的servlet中加上,这两句话,但是我们不止有一个servlet,那么多的servlet都需要加上,有点太麻烦了。

    3.用过滤器修改编码格式。

    第一和第二种方法都有其局限性,我来重点介绍第三种方法。‘

    在新建文件的时候新建一个filter文件:

    在doFilter()中写要执行的操作

    这里是将request和response中的编码格式都设置成utf-8,一个最简单的编码过滤器

    package com.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;
    
    @WebFilter(urlPatterns = "/*")// '/*'表示所有的文件都要过滤
    public class EncodeFilter implements Filter
    {
        
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException
        {
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            chain.doFilter(request, response);
            return ;
        }
        public void init(FilterConfig fConfig) throws ServletException
        {
            
        }
        @Override
        public void destroy()
        {
    
        }
    }

    注意:在 chain.doFilter(request, response);后一定要加 return;不加会出现404错误,。

  • 相关阅读:
    织梦开发——相关阅读likeart应用
    织梦标签教程
    织梦专题调用代码
    HIT 2543 Stone IV
    POJ 3680 Intervals
    HIT 2739 The Chinese Postman Problem
    POJ 1273 Drainage Ditches
    POJ 2455 Secret Milking Machine
    SPOJ 371 Boxes
    HIT 2715 Matrix3
  • 原文地址:https://www.cnblogs.com/GhostRiderQin/p/11646510.html
Copyright © 2011-2022 走看看