• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

            路漫漫,長修遠,我們不能沒有錢
            隨筆 - 173, 文章 - 0, 評論 - 257, 引用 - 0
            數據加載中……

            java servlet 的字符filter (轉載至chinajavaworld.com)

            配置字符過濾器,就不用每個中文都轉換,filter會自動將符合條件的編碼進行自動轉換了.呵呵. 一勞永逸

             package filters;
            /*
            * XP Forum
            *
            * Copyright (c) 2002-2003 RedSoft Group. All rights reserved.
            *
            */

            import javax.servlet.
            *;
            import java.io.IOException;

            /**
            * <p>Filter that sets the character encoding to be used in parsing the
            * incoming request, either unconditionally or only if the client did not
            * specify a character encoding. Configuration of this filter is based on
            * the following initialization parameters:</p>
            * <ul>
            * <li><strong>encoding</strong> - The character encoding to be configured
            * for this request, either conditionally or unconditionally based on
            * the <code>ignore</code> initialization parameter. This parameter
            * is required, so there is no default.</li>
            * <li><strong>ignore</strong> - If set to "true", any character encoding
            * specified by the client is ignored, and the value returned by the
            * <code>selectEncoding()</code> method is set. If set to "false,
            * <code>selectEncoding()</code> is called <strong>only</strong> if the
            * client has not already specified an encoding. By default, this
            * parameter is set to "true".</li>
            * </ul>
            *
            * <p>Although this filter can be used unchanged, it is also easy to
            * subclass it and make the <code>selectEncoding()</code> method more
            * intelligent about what encoding to choose, based on characteristics of
            * the incoming request (such as the values of the <code>Accept-Language</code>
            * and <code>User-Agent</code> headers, or a value stashed in the current
            * user's session.</p>
            *
            * @author <a href="mailto:jwtronics@yahoo.com">John Wong</a>
            *
            * @version $Id: SetCharacterEncodingFilter.java,v 1.1 2002/04/10 13:59:27 johnwong Exp $
            */
            public class SetCharacterEncodingFilter
               implements Filter {

            // ----------------------------------------------------- Instance Variables

             
            /**
              * The default character encoding to set for requests that pass through
              * this filter.
              
            */
             protected String encoding 
            = null;

             
            /**
              * The filter configuration object we are associated with. If this value
              * is null, this filter instance is not currently configured.
              
            */
             protected FilterConfig filterConfig 
            = null;

             
            /**
              * Should a character encoding specified by the client be ignored?
              
            */
             protected 
            boolean ignore = true;

            // --------------------------------------------------------- Public Methods

             
            /**
              * Take this filter out of service.
              
            */
             public 
            void destroy() {

               
            this.encoding = null;
               
            this.filterConfig = null;

             }

             
            /**
              * Select and set (if specified) the character encoding to be used to
              * interpret request parameters for this request.
              *
              * @param request The servlet request we are processing
              * @param result The servlet response we are creating
              * @param chain The filter chain we are processing
              *
              * @exception IOException if an input/output error occurs
              * @exception ServletException if a servlet error occurs
              
            */
             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);

             }

             
            /**
              * Place this filter into service.
              *
              * @param filterConfig The filter configuration object
              
            */
             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 Methods

             
            /**
              * Select an appropriate character encoding to be used, based on the
              * characteristics of the current request and/or filter initialization
              * parameters. If no character encoding should be set, return
              * <code>null</code>.
              * <p>
              * The default implementation unconditionally returns the value configured
              * by the <strong>encoding</strong> initialization parameter for this
              * filter.
              *
              * @param request The servlet request we are processing
              
            */
             protected String selectEncoding(ServletRequest request) {

               
            return (this.encoding);

             }

            //EOC


            web.xml 中的配置:

             <filter>
               
            <filter-name>Set Character Encoding</filter-name>
               
            <filter-class>filters.SetCharacterEncodingFilter</filter-class>
               
            <init-param>
                 
            <param-name>encoding</param-name>
                 
            <param-value>GB2312</param-value>
               
            </init-param>
               
            <init-param>
                 
            <param-name>ignore</param-name>
                 
            <param-value>true</param-value>
               
            </init-param>
             
            </filter> 

             
            <filter-mapping>
               
            <filter-name>Set Character Encoding</filter-name>
               
            <servlet-name>action</servlet-name>
             
            </filter-mapping> 

             
            <servlet>
               
            <servlet-name>action</servlet-name>
               
            <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            .... 

            測試通過.


            他的過濾器我試了有問題,這樣就沒有問題了
            <filter>
               
            <filter-name>EncodingFilter</filter-name>
               
            <display-name>EncodingFilter</display-name>
               
            <description>no description</description>
               
            <filter-class>com.zhaoqi.util.EncodingFilter</filter-class>
               
            <init-param>
                 
            <param-name>encoding</param-name>
                 
            <param-value>GB2312</param-value>
               
            </init-param>
             
            </filter>
             
            <filter-mapping>
               
            <filter-name>EncodingFilter</filter-name>
               
            <url-pattern>/*</url-pattern>
             
            </filter-mapping>


            看 看下面這短代碼,由于struts的每個請求都要由actionservlet處理,所以我自己寫了一個actionservlet的子類,在這個類中我 調用request.setCharacterEncoding("GB2312");方法,然后在所有的jsp頁面中的字符顯示為GB2312,所有的 問題都解決了,哈哈。大家試試啊
             
            import org.apache.struts.action.ActionServlet;
            import javax.servlet.http.
            *;
            public class MainActionServlet extends ActionServlet{
             public MainActionServlet() {
             }
             protected 
            void process(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException {
               
            /**@todo Override this org.apache.struts.action.ActionServlet method*/
               request.setCharacterEncoding(
            "GB2312");
               super.process(request, response);
             }

            posted on 2004-10-22 21:52 Khan 閱讀(562) 評論(0)  編輯 收藏 引用 所屬分類: 跨平臺開發 、Java

            99久久精品国产一区二区三区| 久久精品国产精品亜洲毛片| 噜噜噜色噜噜噜久久| 久久精品亚洲AV久久久无码| 久久99国产乱子伦精品免费| 国产AV影片久久久久久| 亚洲中文字幕无码久久精品1 | 亚洲国产精品久久久久婷婷老年 | 久久播电影网| 一本色道久久综合狠狠躁篇 | 亚洲精品97久久中文字幕无码| 男女久久久国产一区二区三区| 丰满少妇人妻久久久久久4| 日韩精品久久久久久久电影蜜臀 | 国产精品久久久久久久午夜片| 欧美精品福利视频一区二区三区久久久精品| 亚洲AV成人无码久久精品老人| 国产—久久香蕉国产线看观看| 蜜臀久久99精品久久久久久小说 | 国产国产成人久久精品| 一本一道久久综合狠狠老| 久久亚洲AV无码西西人体| 国产精品一区二区久久国产| 韩国三级中文字幕hd久久精品 | 69SEX久久精品国产麻豆| 思思久久99热免费精品6| 久久国产精品一区二区| 久久久久香蕉视频| 精品久久久久久99人妻| 久久精品国产影库免费看| 国产麻豆精品久久一二三| 亚洲精品乱码久久久久久蜜桃图片| 久久久久久青草大香综合精品| 久久香蕉综合色一综合色88| 久久精品国产亚洲网站| 久久国产免费观看精品| 欧美精品一区二区精品久久| 精品久久久久久综合日本| 国产精品一久久香蕉国产线看观看| 欧美噜噜久久久XXX| 国产成人综合久久综合|