解决乱码,我们当然是可以在每个Servlet中解决对应的乱码问题,但在实际web开发中,web应用的逻辑比较复杂,上述解决乱码的方式太过于复杂,代码重复性太高。所以为了解决该问题,以下引入了过滤器来解决这个问题
自定义一个Filter的实现类,在doFilter方法中 定义一个MyRequest类解决全站乱码【重写获取用户数据的三个getParameter方法,对于getParameterMap方法而言,其他两个方法都是可以通过Map方法获取到用户数据的,所以以下只需要在Map方法中解决post get请求乱码,在另外两个方法调用map重写的方法即可】
当然如果希望设置全局编码,可以在MyRequest构造方法中传入两个参数,但需要在自定义Filter实现类中的Init方法中获取Filter配置文件中的参数
web.xml中Filter的配置文件