servlet过滤器1 解决字符集乱码 filter

摘要:
包com.tarena.web。滤器导入java.io。IOException;导入javax.servlet。滤器导入javax.servlet。过滤链;导入javax.servlet。过滤器配置;导入javax.servlet。ServletException;感应电动机

package com.tarena.web.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.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;    import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;    public class CharacterEncodingFilter implements Filter {    private static Log log = LogFactory.getLog(CharacterEncodingFilter.class);    private boolean ignore = true;    private String encoding;    private FilterConfig filterConfig;        @Override    public void init(FilterConfig filterConfig) throws ServletException {        this.filterConfig = filterConfig;        String value = filterConfig.getInitParameter("ignore");                //ignore就是说,忽略掉页面默认编码,统一采用web.xml中的字符集配置,强制转码        if (value == null) {            this.ignore = true;        } else if (value.equalsIgnoreCase("true")) {            this.ignore = true;        } else {            this.ignore = false;        }    }        @Override    public void doFilter(ServletRequest servletRequest,            ServletResponse servletResponse, FilterChain filterChain)            throws IOException, ServletException {        HttpServletRequest request = (HttpServletRequest) servletRequest;        HttpServletResponse response = (HttpServletResponse) servletResponse;        log.info("开始过滤");        encoding = getUserEncoding();        if (ignore && encoding == null) {            encoding=filterConfig.getInitParameter("encoding");        }        if (encoding != null) {            request.setCharacterEncoding(encoding);            response.setContentType("text/html;charset=" + encoding);        }        filterChain.doFilter(request, response);    }        // 用户项目中定义字符集(配置文件中、在session中获取)    public String getUserEncoding() {            return null;    }        @Override    public void destroy() {        }    }


web.xml


<!-- 过滤器 -->    <filter>        <filter-name>CharacterEncodingFilter</filter-name>        <filter-class>            com.riambsoft.report.servlet.CharacterEncodingFilter        </filter-class>        <init-param>            <param-name>ignore</param-name>            <param-value>true</param-value>        </init-param>        <init-param>            <param-name>encoding</param-name>            <param-value>GBK</param-value>        </init-param>    </filter>            <filter-mapping>        <filter-name>CharacterEncodingFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <!--过滤器结束-->


注意 : ignore这个参数就是说,忽略掉页面默认编码,统一采用web.xml中的字符集配置,强制转码!!


这个ignore参数,自己思考了好久好久才发现是这个用途,靠,记忆力果然不可靠,不写注释害人匪浅啊~~


记住,过滤器的xml配置要优先放于最前边,放在<servlet>之前,才能生效!


下一篇介绍 servlet过滤器2,对于用户非法在线的处理~~很简单的 http://hi.baidu.com/ae6623/item/617c46c5a96b6dd196445292

免责声明:文章转载自《servlet过滤器1 解决字符集乱码 filter》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇编译异常 Caused by: java.lang.UnsupportedClassVersionError:1.3 LVM条带化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Druid连接池的简单使用

感谢原文作者:chenhongyong原文链接:https://www.cnblogs.com/chy18883701161/p/12594889.html更多请查阅阿里官方API文档:https://github.com/alibaba/druid/wiki 目录 Druid简介 druid的优点 Druid的使用 方式一:纯代码方式 方式二:配置...

eclipse实现热部署和热加载

关于Tomcat的热启动 我们知道,当我们每次修改后台java代码的时候,一保存Tomcat就会自动去重新启动,这个叫热部署。非常麻烦,浪费时间,下面就是修改配置。将热部署 改为热启动的方法 在你的eclipse中 找到Server这个文件夹 ,下面有两个xml文件 1:将content.xml中 <Context reloadable="fals...

spring mvc 的jpa JpaRepository数据层 访问方式汇总

本文转载:http://perfy315.iteye.com/blog/1460226和http://jishiweili.iteye.com/blog/2088265 AppleFramework在数据访问控制层采用了Spring Data作为这一层的解决方案,下面就对Spring Data相关知识作一个较为详细的描述。1.Spring Data所解决的...

Java Web项目案例之---登录和注册(精华版)

登录和注册(精华版) (一)实现功能 1.使用cookie记录登录成功的用户名,用户选择记住用户名,则用户再次登录时用户名自动显示 2.实现文件上传功能(上传文件的表单上传于普通的表单上传不同,必须是post,必须有value,enctype必须是multipart/form-data) 3.图片上传后的名称不能重复,使用随机生成的字符串(UUID) 4....

Filter(过滤器)

Filter(过滤器) Filter 功能: 1.用来拦截传入和传出的响应。 2.修改或以某种方式处理正在客户端和服务端之间交换的数据流。 使用方法: 与使用Servlet相似,Filter是JavaWeb提供的一个接口,开发者只要自定义一个类并且实现该接口即可。 注意事项: 1.接口实现时一定要引用 Filter(Javax.servlet) 2.doF...

eclipse+maven+ssm框架搭建

eclipse+maven+ssm框架 0、系统环境 1)Windows 10 企业版 2)JDK 1.8.0_131 3)Eclipse Java EE IDE for Web Developers  Version: Neon.3 Release (4.6.3) 4)Tomcat 8.5 1、maven下载及配置 maven的下载地址:http:...