Java,J2EE,Weblogic,Oracle

          java項目隨筆
          隨筆 - 90, 文章 - 6, 評論 - 61, 引用 - 0
          數據加載中……

          java過濾器的小技巧

          <%@ page language="java" pageEncoding="GB2312"%>  與
          <%@ page contentType="text/html; charset=GB2312" pageEncoding="GB2312" language="java" errorPage=""%>區別:


          1.過濾器servlet
          public class CharsetFilter
              implements Filter
          {

              protected String encoding;
              protected FilterConfig filterConfig;
              protected boolean ignore;

              public CharsetFilter()
              {
                  encoding = null;
                  filterConfig = null;
                  ignore = true;
              }

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

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

              public void init(FilterConfig filterConfig)
                  throws ServletException
              {
                  this.filterConfig = filterConfig;
                  encoding = filterConfig.getInitParameter("encoding");
                  System.out.println("11111111111:"+encoding);
                  String value = filterConfig.getInitParameter("ignore");
                  if(value == null)
                      ignore = true;
                  else
                  if(value.equalsIgnoreCase("true"))
                      ignore = true;
                  else
                  if(value.equalsIgnoreCase("yes"))
                      ignore = true;
                  else
                      ignore = false;
              }

              protected String selectEncoding(ServletRequest request)
              {
                  return encoding;
              }
          }

          2.在 web.xml 配置
           <filter>
            <filter-name>CharsetFilter</filter-name>
            <filter-class>com.easyjf.web.CharsetFilter</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>CharsetFilter</filter-name>
            <servlet-name>action</servlet-name>
           </filter-mapping>

          小結:
          在使用<%@ page language="java" pageEncoding="GB2312"%> 顯示的是亂碼。
          在使用<%@ page contentType="text/html; charset=GB2312" language="java" pageEncoding="GB2312"%>卻是正常的。


          1.jsp :
                  <%@ page contentType="text/html; charset=gb2312" language="java">
                 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

          2.web.xml中配置 gb2312

          posted on 2006-11-29 10:08 龔椿深 閱讀(1144) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 丰县| 铁岭市| 锦州市| 周口市| 开封市| 介休市| 封丘县| 甘谷县| 双辽市| 惠州市| 丹棱县| 仲巴县| 泾阳县| 宜章县| 蓬安县| 桃江县| 长岛县| 界首市| 潼南县| 大冶市| 烟台市| 湾仔区| 永善县| 临沂市| 崇信县| 云梦县| 肇东市| 江口县| 五原县| 龙州县| 壶关县| 高要市| 饶阳县| 宿州市| 新邵县| 鄯善县| 福鼎市| 宜州市| 金川县| 洛阳市| 安吉县|