`
seawavecau
  • 浏览: 755526 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

过滤器设置

阅读更多

1。SetCharacterEncodingFilter 代码

java 代码
  1.   
  2.   
  3. /*  
  4. * Copyright 2004 The Apache Software Foundation  
  5. *  
  6. * Licensed under the Apache License, Version 2.0 (the "License");  
  7. * you may not use this file except in compliance with the License.  
  8. * You may obtain a copy of the License at  
  9. *  
  10. *     http://www.apache.org/licenses/LICENSE-2.0  
  11. *  
  12. * Unless required by applicable law or agreed to in writing, software  
  13. * distributed under the License is distributed on an "AS IS" BASIS,  
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
  15. * See the License for the specific language governing permissions and  
  16. * limitations under the License.  
  17. */  
  18.   
  19. package org.eimhe.filter;   
  20.   
  21. import java.io.IOException;   
  22. import javax.servlet.Filter;   
  23. import javax.servlet.FilterChain;   
  24. import javax.servlet.FilterConfig;   
  25. import javax.servlet.ServletException;   
  26. import javax.servlet.ServletRequest;   
  27. import javax.servlet.ServletResponse;   
  28. import javax.servlet.UnavailableException;   
  29.   
  30.   
  31. /**  
  32.  * <p>Example filter that sets the character encoding to be used in parsing the  
  33.  * incoming request, either unconditionally or only if the client did not  
  34.  * specify a character encoding.  Configuration of this filter is based on  
  35.  * the following initialization parameters:</p>  
  36.  * <ul>  
  37.  * <li><strong>encoding</strong> - The character encoding to be configured  
  38.  *     for this request, either conditionally or unconditionally based on  
  39.  *     the <code>ignore</code> initialization parameter.  This parameter  
  40.  *     is required, so there is no default.</li>  
  41.  * <li><strong>ignore</strong> - If set to "true", any character encoding  
  42.  *     specified by the client is ignored, and the value returned by the  
  43.  *     <code>selectEncoding()</code> method is set.  If set to "false,  
  44.  *     <code>selectEncoding()</code> is called <strong>only</strong> if the  
  45.  *     client has not already specified an encoding.  By default, this  
  46.  *     parameter is set to "true".</li>  
  47.  * </ul>  
  48.  *  
  49.  * <p>Although this filter can be used unchanged, it is also easy to  
  50.  * subclass it and make the <code>selectEncoding()</code> method more  
  51.  * intelligent about what encoding to choose, based on characteristics of  
  52.  * the incoming request (such as the values of the <code>Accept-Language</code>  
  53.  * and <code>User-Agent</code> headers, or a value stashed in the current  
  54.  * user's session.</p>  
  55.  *  
  56.  * @author Craig McClanahan  
  57.  * @version $Revision: 267129 $ $Date: 2004-03-18 10:40:35 -0600 (Thu, 18 Mar 2004) $  
  58.  */  
  59.   
  60. public class SetCharacterEncodingFilter implements Filter {   
  61.   
  62.   
  63.     // ----------------------------------------------------- Instance Variables   
  64.   
  65.   
  66.     /**  
  67.      * The default character encoding to set for requests that pass through  
  68.      * this filter.  
  69.      */  
  70.     protected String encoding = null;   
  71.   
  72.   
  73.     /**  
  74.      * The filter configuration object we are associated with.  If this value  
  75.      * is null, this filter instance is not currently configured.  
  76.      */  
  77.     protected FilterConfig filterConfig = null;   
  78.   
  79.   
  80.     /**  
  81.      * Should a character encoding specified by the client be ignored?  
  82.      */  
  83.     protected boolean ignore = true;   
  84.   
  85.   
  86.     // --------------------------------------------------------- Public Methods   
  87.   
  88.   
  89.     /**  
  90.      * Take this filter out of service.  
  91.      */  
  92.     public void destroy() {   
  93.   
  94.         this.encoding = null;   
  95.         this.filterConfig = null;   
  96.   
  97.     }   
  98.   
  99.   
  100.     /**  
  101.      * Select and set (if specified) the character encoding to be used to  
  102.      * interpret request parameters for this request.  
  103.      *  
  104.      * @param request The servlet request we are processing  
  105.      * @param result The servlet response we are creating  
  106.      * @param chain The filter chain we are processing  
  107.      *  
  108.      * @exception IOException if an input/output error occurs  
  109.      * @exception ServletException if a servlet error occurs  
  110.      */  
  111.     public void doFilter(ServletRequest request, ServletResponse response,   
  112.                          FilterChain chain)   
  113.     throws IOException, ServletException {   
  114.   
  115.         // Conditionally select and set the character encoding to be used   
  116.         if (ignore || (request.getCharacterEncoding() == null)) {   
  117.             String encoding = selectEncoding(request);   
  118.             if (encoding != null)   
  119.                 request.setCharacterEncoding(encoding);   
  120.         }   
  121.   
  122.     // Pass control on to the next filter   
  123.         chain.doFilter(request, response);   
  124.   
  125.     }   
  126.   
  127.   
  128.     /**  
  129.      * Place this filter into service.  
  130.      *  
  131.      * @param filterConfig The filter configuration object  
  132.      */  
  133.     public void init(FilterConfig filterConfig) throws ServletException {   
  134.   
  135.     this.filterConfig = filterConfig;   
  136.         this.encoding = filterConfig.getInitParameter("encoding");  
  137.         String value = filterConfig.getInitParameter("ignore");  
  138.         if (value == null)  
  139.             this.ignore = true;  
  140.         else if (value.equalsIgnoreCase("true"))  
  141.             this.ignore = true;  
  142.         else if (value.equalsIgnoreCase("yes"))   
  143.             this.ignore = true;   
  144.         else  
  145.             this.ignore = false;   
  146.   
  147.     }   
  148.   
  149.   
  150.     // ------------------------------------------------------ Protected Methods   
  151.   
  152.   
  153.     /**  
  154.      * Select an appropriate character encoding to be used, based on the  
  155.      * characteristics of the current request and/or filter initialization  
  156.      * parameters.  If no character encoding should be set, return  
  157.      * <code>null</code>.  
  158.      * <p>  
  159.      * The default implementation unconditionally returns the value configured  
  160.      * by the <strong>encoding</strong> initialization parameter for this  
  161.      * filter.  
  162.      *  
  163.      * @param request The servlet request we are processing  
  164.      */  
  165.     protected String selectEncoding(ServletRequest request) {   
  166.   
  167.         return (this.encoding);   
  168.   
  169.     }   
  170.   
  171.   
  172. }   

2。web.xml设置

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  3.   <filter>  
  4.     <filter-name>Set Character Encoding</filter-name>  
  5.     <filter-class>org.eimhe.filter.SetCharacterEncodingFilter</filter-class>  
  6.     <init-param>  
  7.         <param-name>encoding</param-name>  
  8.         <param-value>GBK</param-value>  
  9.     </init-param>  
  10.   </filter>  
  11.   <filter-mapping>  
  12.     <filter-name>Set Character Encoding</filter-name>  
  13.     <url-pattern>/*</url-pattern>  
  14.   </filter-mapping>  
  15. </web-app>  
分享到:
评论
1 楼 mida 2008-12-18  
谢谢了,收藏,免得忘!!

相关推荐

    Omnipeek(wildpackets)抓包:过滤器设置和数据包分析

    Omnipeek(WildPackets)抓包:过滤器设置和数据包分析 Omnipeek 是一种功能强大的抓包工具,能够帮助用户捕获和分析网络数据包。在 C/S 或 B/S 架构的系统级测试中,Omnipeek 可以用于验证客户端是否发送了连接...

    STM32 CAN 通讯 标示符过滤器设置

    STM32 CAN 通讯标示符过滤器设置 在STM32微控制器中,CAN总线通信协议广泛应用于工业自动化、汽车电子、医疗设备等领域。CAN总线通信协议具有强的实时性、可靠性和灵活性,因此在许多领域中得到了广泛应用。 ...

    利用过滤器设置权限利用过滤器设置权限

    ### 利用过滤器设置权限 在Web应用开发过程中,权限控制是非常重要的一个环节,它确保只有具有相应权限的用户才能访问特定资源。本篇文章将详细介绍如何通过Web应用中的过滤器来实现对用户访问权限的控制。 #### ...

    STM32的CAN过滤器详解.pdf

    STM32的CAN(Controller Area Network)过滤器是其通信模块的重要组成部分,主要负责...若不打算使用复杂的过滤功能,可以仅激活一组过滤器组,设置为32位屏蔽位模式,标准值寄存器设为0,这样所有报文都将通过过滤。

    servlet里过滤器设置

    sevlet里设置过滤器,利用索引过滤不符合自己想要的url,达到重定向的目的

    STM32 CAN过滤器滤波器配置详解

    STM32 CAN 过滤器滤波器配置详解 在嵌入式系统中,CAN(Controller Area Network)总线是常见的通信协议之一。STM32 微控制器也支持 CAN 通信协议。为了正确地实现 CAN 通信,需要了解 CAN 总线上的节点接收或发送...

    struts2配置过滤器

    ### Struts2配置过滤器详解 #### 一、概述 Struts2是基于MVC模式的一个开源框架,它能够帮助开发者构建出结构清晰且易于维护的Web应用。在实际开发过程中,为了实现某些功能(例如用户认证、权限控制等),往往...

    TS的demux和表管理和过滤器设置

    完整的TS码流的DEMUX解复用源代码,包含TS协议解析,表管理和过滤器设置。同时包含文档。-TS complete bitstream demultiplexing DeMux source code, including the TS protocol analysis, table management and ...

    CAN标识符_过滤器_屏蔽器之间的关系

    消息对象包括接收缓冲区、发送缓冲区以及与之相关的控制寄存器和过滤器设置,从而支持复杂的CAN通信场景,如不同优先级的数据传输、数据的同步传输以及时间触发通信等。 总之,CAN标识符、过滤器和屏蔽器之间的关系...

    详解angular ui-grid之过滤器设置

    "详解 Angular UI-Grid 之过滤器设置" Angular UI-Grid 是一个功能强大且灵活的网格控件,广泛应用于数据展示和编辑领域。其中,过滤器设置是 UI-Grid 的一个重要功能,能够对数据进行格式化和处理。本文将详细介绍...

    java中文过滤器消除乱码问题

    - 确保服务器和IDE的默认编码与过滤器设置的编码一致,避免在开发阶段就引入乱码。 通过以上步骤,我们可以有效地在Java Web应用中消除乱码问题。在实际开发中,`filters`压缩包提供的过滤器类可能已经包含了这些...

    企业信息管理系统(15)_设置过滤器

    - 可以保存过滤器设置,以便将来快速应用相同的标准。 4. 过滤器的使用场景: - 销售分析:通过过滤器查看某个地区的销售业绩,或某产品的销售趋势。 - 客户管理:筛选出高价值客户,或者查找最近未联系的客户...

    endnote x4 中国知网中国知网过滤器和万方数据库的endnote导入

    虽然流程类似,但可能需要不同的过滤器设置。在EndNote中设置好过滤器后,可以通过数据库的导出功能,选择EndNote兼容的格式,再利用EndNote的“导入”功能将数据导入到你的个人图书馆中。 压缩包中的“endnot 使用...

    Jsp中使用过滤器实现用户权限限制功能

    如果你的过滤器设置正确,未登录用户将会被重定向到登录页面。你可以使用工具如Eclipse(`.classpath`和`.project`文件表明这是一个Eclipse项目)来调试和测试过滤器。 5. **扩展与优化**: 这只是一个基础的权限...

    servlet过滤器解决乱码问题

    - 检查JSP页面的编码是否与过滤器设置的编码一致。 #### 四、注意事项 - **编码一致性**:确保整个应用程序(包括前端页面、后端处理以及数据库交互)使用相同的编码格式。 - **兼容性考虑**:不同浏览器和操作...

    过滤器--控制不同权限用户访问不同文件夹代码.rar

    本案例中的"过滤器--控制不同权限用户访问不同文件夹代码.rar"是一个针对权限管理的具体应用,它允许开发者根据用户的权限级别决定他们可以访问哪些文件夹或资源。 过滤器的概念源自Java Servlet技术,它是Servlet ...

    Struts权限过滤器

    在`web.xml`中,我们需要为Struts权限过滤器设置相应的配置,例如: ```xml &lt;filter-name&gt;strutsPrepareAndExecuteFilter &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter....

    servlet过滤器Filter入门

    防止用户利用缺省 servlet URL 绕过过滤器设置。 9. 避免过滤器的使用限制 过滤器只在与 servlet 规范 2.3 版兼容的服务器上有作用。如果你的 Web 应用需要支持旧版服务器,就不能使用过滤器。 通过本文,我们...

    JAVA_Servlet过滤器.

    如果请求符合过滤器设置的规则,容器会调用doFilter()方法,允许过滤器对请求和响应进行处理。在Web应用停止或重新部署时,容器调用destroy()方法来销毁过滤器实例,并将其标记为垃圾收集。 在过滤器的定义与实现...

Global site tag (gtag.js) - Google Analytics