java WEB过滤器的用法_liuhexing_新浪博客
implements Filter 类 
2:实现三个方法: 
   1、在使用过滤器之前由web容器调用。 
     public void init(FilterConfig filterConfig){#125_word__ 
     filterConfig 为 FilterConfig 接口的对象。 
   
     FilterConfig 接口中的方法分别为: 
    getFilterName(): 返回部署描述中定义的过滤器名称。 
    getInitParameter(String name):将命名初始化参数的值作为字符串返回。 
    getInitParameterNames():返回<filter>元素中定义的init参数的名称的字符串枚举。 
    getServletContext():返回过滤器或Servlet的ServletContext。   
   2、过滤器方法,每当传递请求或响应时有web容器调用。 
     public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2){#125_word__ 
     ServletRequest 定义一个对象,将客户请求提交给servlet。 
     ServletResponse 定义一个对象,帮助servlet将响应发送给用户。 
     FilterChain 用于调用过滤器链,如果调用的过滤器是链中的{zh1}一个过滤器,则会调用web资源。 
   3、释放资源方法(可以不实现)在停止过滤器之后由容器调用: 
     public void destroy(); 

3:在 web.xml 加上节点: 
   <filter> 
    <filter-name>过滤器的名字,也就是Class的名字,如:myFilter</filter-name> 
    <filter-class>过滤器属于的类名,如:myPackage.myFilter</filter-class> 
   </filter> 
   <filter-mapping> 
    <filter-name>过滤器的名字,也就是Class的名字,如:myFilter</filter-name> 
    <url-pattern> 
    protected FilterConfig filterConfig null; 


     
    protected boolean ignore true; 
    public void destroy() {
          this.encoding null; 
        this.filterConfig null; 

    }


     
    public void doFilter(ServletRequest request, ServletResponse response, 
                         FilterChain chain) 
    throws IOException, ServletException {

        // Conditionally select and set the character encoding to be used 
        if (ignore || (request.getCharacterEncoding() == null)) {
            String encoding selectEncoding(request); 
            if (encoding != null) 
                request.setCharacterEncoding(encoding); 
        }

    // Pass control on to the next filter 
        chain.doFilter(request, response); 

    }
     
    public void init(FilterConfig filterConfig) throws ServletException {

    this.filterConfig filterConfig; 
        this.encoding filterConfig.getInitParameter("encoding"); 
        String value filterConfig.getInitParameter("ignore"); 
        if (value == null) 
            this.ignore true; 
        else if (value.equalsIgnoreCase("true")) 
            this.ignore true; 
        else if (value.equalsIgnoreCase("yes")) 
            this.ignore true; 
        else 
            this.ignore false; 

    }


       protected String selectEncoding(ServletRequest request) {

        return (this.encoding); 

    }


}







#5 
发表于 2008-1-30 09:29 
web.xml添加这样的代码: 

XML code 
<filter> 
        <filter-name>Set Character Encoding</filter-name> 
        <filter-class>filters.SetCharacterEncodingFilter</filter-class> 
        <init-param> 
            <param-name>encoding</param-name> 
            <param-value>GBK</param-value> 
        </init-param> 
    </filter> 


<filter-mapping> 
        <filter-name>Set Character Encoding</filter-name> 
        <url-pattern> 
protected   boolean   processPreprocess(HttpServletRequest   request,HttpServletResponse   response)   {

try   {
request.setCharacterEncoding("GBK"); 
response.setContentType("text/html;charset=GBK"); 
}
catch   (Exception   e)   {

}

return   true; 

}

}


struts-config里面的配置: 

<controller 
    
    locale="true" 
    nocache="true" 
    processorClass="com.smcc.uer.web.actions.SysRequestProcessor"/> 
郑重声明:资讯 【java WEB过滤器的用法_liuhexing_新浪博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——