文档章节

jsp_filter 编码 过滤器

李茂冉
 李茂冉
发布于 2016/05/17 03:26
字数 293
阅读 3
收藏 0

##字符集过滤器

public class CharacterEncodingFilter implements Filter {   
    private String edcoding=null;   
    private FilterConfig filterConfig=null;   
    private boolean ignore=true;   

    public void destroy() {   
         edcoding=null;   
         filterConfig=null;   
    }   

    public void doFilter(ServletRequest request, ServletResponse response,   
            FilterChain filterChain) throws IOException, ServletException {   
        if(ignore==true||request.getCharacterEncoding()==null){   
            String encoding=setCharacterEncoding(request);   
              if(encoding!=null){   
                request.setCharacterEncoding(encoding);   

                }   
        }   
          filterChain.doFilter(request, response);   
    }   

    public void init(FilterConfig filterConfig) throws ServletException {   
        this.filterConfig=filterConfig;   
        this.edcoding=filterConfig.getInitParameter("encoding");   
        String value=filterConfig.getInitParameter("ignore");   
        if(value==null){   
            this.ignore=true;   
        }else if(value.equalsIgnoreCase("true")){   
            this.ignore=true;   

        }else{   
            this.ignore=false;   
        }   

    }   
    public String setCharacterEncoding(ServletRequest request){   
        return this.edcoding;   
    }   
}   

##web.xml中加以下代码

<filter>  
        <filter-name>CharacterEncodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>CharacterEncodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping> 

###完整示例:

package dw05prj.util.filter; 
import javax.servlet.Filter; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.FilterChain; 
import java.io.IOException; 
/*页面字符集过滤流*/ 
/* 
在web.xml中配制的例子 
<filter> 
<filter-name>CharEncodingFilter</filter-name> 
<filter-class>dw05prj.util.filter.CharEncodingFilter</filter-class> 
<init-param> 
<param-name>charset</param-name> 
<param-value>GBK</param-value> 
</init-param> 
</filter> 
<filter-mapping> 
<filter-name>CharEncodingFilter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 
*/ 
public class CharEncodingFilter implements Filter { 
    private String charSet ; 
    public void init(FilterConfig parm1) throws ServletException { 
        charSet = parm1.getInitParameter("charset") ; 
        if (charSet == null && charSet.length() < 1)  { 
            charSet = "UTF-8" ; 
        } 
        System.out.println ("CharEncodingFilter--字符集: " + this.getCharSet()) ; 
    } 

    public void doFilter(ServletRequest parm1, ServletResponse parm2,  FilterChain parm3)  throws IOException, ServletException { 
        // 设定字符集 
        parm1.setCharacterEncoding(this.getCharSet()); 
        parm3.doFilter(parm1, parm2); 
        //页面中每个向服务器的请求都被过滤 -- 如 图片,js,HTML/JSP等等 
        //System.out.println ("---CharEncodingFilter: " + this.getCharSet()) ; 
    } 
    public void destroy() { 
        this.setCharSet(null) ; 
    } 
    public void setCharSet(String charSet) { 
        this.charSet = charSet; 
    } 
    public String getCharSet() { 
    return (this.charSet); 
    } 
}

© 著作权归作者所有

共有 人打赏支持
李茂冉
粉丝 5
博文 103
码字总数 59256
作品 0
东城
高级程序员
javaweb开发之Filter

一、简介 在Servlet2.3规范中定义了过滤器,它对servlet容器调用servlet的过程进行拦截,从而在servlet进行响应处理的前后实现一些特殊的功能。 过滤器实现了一个责任链的模式。多个过滤器形...

小米米儿小
2013/12/06
0
0
关于Java Servlet的中文乱码

具体如下: 1.JSP里CHARSET要为GB2312 contentType="text/html;charset=GB2312" 2.SERVERLET类里要有 request.setCharacterEncoding(gb2312); 3.字符集的重新格式化 java.net.URLEncoder ja......

xiahuawuyu
2012/08/02
0
0
过滤器(Fileter)执行流程

Servlet过滤器的概念: Servlet过滤器是在 java Servlet 2.3 中定义的,它能够对Servlet容器中的请求和响应对象,进行检查和修改 Servlet过滤器并不会生成request和response对象,它只起到过...

狼行-狼行
2013/11/22
0
0
servlet/filter/listener/interceptor区别与联系

由于最近两个月工作比较清闲,个人也比较“上进”,利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时候,发现 为什么struts1要用servlet,而struts2要用filter呢...

lzw_me
2014/08/04
0
0
servlet/filter/listener/interceptor区别与联系

原文地址:http://blog.csdn.net/sundenskyqq/article/details/8549932 由于最近两个月工作比较清闲,个人也比较“上进”,利用工作空余时间,也继续学习了一下,某天突然想起struts2和strut...

随智阔
2014/04/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SAP不同的产品是如何支持用户创建自定义字段的

我们从SAP CRM,Cloud for Customer(简称C4C)和S/4HANA这三个产品分别来看看。 SAP CRM 我们使用所谓的Application Enhancement Tool(AET)来创建扩展字段。首先在Personalize里将Configu...

JerryWang_SAP
24分钟前
3
0
Vue-Element-Upload

记录一下文件上传封装Js 代码示例 封装:uploadFile.vue <template> <el-upload v-model="attachment" ref="upload" class="upload-demo" :action="uploadUrl" ......

华山猛男
31分钟前
2
0
AWVS破解及使用手册

1.安装 因为是windows软件,比较简单,此部分略: 破解插件下载: 链接: https://pan.baidu.com/s/1x9LK9F3KvqDgTvXDjoSZnQ 提取码: 7k4u 2.创建扫描目标 2-1.Targets->Add Target 2-2.对话框...

硅谷课堂
33分钟前
1
0
Centos 7 安装Zabbix 3.4

Zabbix 3.4 支持Centos 7。貌似不支持6.9. 更多详细内容请参考官方说明文档,详细的安装要求不贴出来了。 https://www.zabbix.com/documentation/3.4/zh/manual/installation/requirements 虚...

linjin200
39分钟前
1
0
阿里云数据库HybridDB for PostgreSQL使用教程

云数据库HybridDB for PostgreSQL(ApsaraDB HybridDB for PostgreSQL)是一种在线MPP大规模并行处理数据仓库服务。云数据库HybridDB for PostgreSQL基于Greenplum Database开源数据库项目,...

mcy0425
47分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部