<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-48  評論-26  文章-0  trackbacks-0

     JSP+Servlet之間亂碼的解決僅僅只需一個Filter過濾器即可,為什么在Struts2.x+Hibernate3.0+Spring2.0(以下簡稱S2SH)中亂碼卻解決不了呢?因為在S2SH的整合中,Struts2.x的監聽監管了JSP頁面與Java代碼的咬合,這個監管也包括編碼的處理,所以當我們編寫了認為萬無一失的過濾器之后卻失效的原因,我的解決方案如下,在此拋磚引玉,如果有更好的辦法和建議,望大家提出來。

     

    import java.io.IOException;

    import javax.servlet.Filter;

    import javax.servlet.FilterChain;

    import javax.servlet.FilterConfig;

    import javax.servlet.ServletException;

    import javax.servlet.ServletRequest;

    import javax.servlet.ServletResponse;

     

    import org.apache.struts2.dispatcher.FilterDispatcher;

     

    public class MyFilter extends FilterDispatcher implements Filter {

     

        private FilterConfig config = null;

     

        private String encoding = null;

     

        @Override

        public void init(FilterConfig config) throws ServletException {

     

           this.config = config;

     

        }

     

        @Override

        public void doFilter(ServletRequest request, ServletResponse response,

               FilterChain chain) throws IOException, ServletException {

           if (encoding == null) {

     

               encoding = config.getInitParameter("encoding");

           }

           request.setCharacterEncoding(encoding);

           chain.doFilter(request, response);

        }

     

        @Override

        public void destroy() {

           config = null;

           encoding = null;

        }

     

    }

     

    這個過濾器和平時所編寫不同的是它集成自Struts2.xFilterDispatcher,另外Web.xml的配置如下:

     

    注意此處的順序,自己編寫的過濾器需要配置在首行

    <!-- 解決中文亂碼問題 -->

        <filter>

           <filter-name>encodeFilter</filter-name>

           <filter-class>com.custservice.util.MyFilter</filter-class>

           <init-param>

               <param-name>encoding</param-name>

               <param-value>gb2312</param-value>

           </init-param>

        </filter>

        <filter-mapping>

           <filter-name>encodeFilter</filter-name>

           <url-pattern>/*</url-pattern>

        </filter-mapping>

        <filter>

           <filter-name>myfilter</filter-name>

           <filter-class>

               org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

           </filter-class>

        </filter>

        <filter-mapping>

           <filter-name>myfilter</filter-name>

           <url-pattern>/*</url-pattern>

        </filter-mapping>

     

        <!-- Struts2的配置 -->

        <filter>

           <filter-name>struts2.x</filter-name>

           <filter-class>

               org.apache.struts2.dispatcher.FilterDispatcher

           </filter-class>

        </filter>

        <filter-mapping>

           <filter-name>struts2.x</filter-name>

           <url-pattern>/*</url-pattern>

        </filter-mapping>

     

    Web.xml配置好后,還需要配置Struts2.x的屬性文件,在Struts2.x的資源文件夾中找到Struts.properties修改如下:

    ### This can be used to set your default locale and encoding scheme

     struts.locale=en_US

    struts.i18n.encoding=iso-8859-1

    改成

     

    ### This can be used to set your default locale and encoding scheme

     struts.locale=zh_US

    struts.i18n.encoding=gb2312
    文章來源:http://www.tkk7.com/NicholasEcho/archive/2009/02/06/253648.html
    posted on 2009-02-06 23:40 Worker 閱讀(79) 評論(0)  編輯  收藏 所屬分類: Web

    主站蜘蛛池模板: 亚洲短视频男人的影院| 中文字幕亚洲色图| 亚洲视频免费观看| 成熟女人特级毛片www免费| 好看的电影网站亚洲一区| 麻豆亚洲AV成人无码久久精品 | jyzzjyzz国产免费观看| 精品无码国产污污污免费| 久久久久亚洲AV无码永不| 日本免费中文视频| 亚洲国产精品成人久久蜜臀 | 亚洲中文字幕无码永久在线| 精品国产日韩亚洲一区91| 九月丁香婷婷亚洲综合色| 国产羞羞的视频在线观看免费| 在线亚洲人成电影网站色www| 2021免费日韩视频网| 亚洲精品**中文毛片| 无码国产精品一区二区免费式直播 | 一区二区三区免费视频网站| 国产男女猛烈无遮档免费视频网站 | 国产男女猛烈无遮档免费视频网站 | av无码国产在线看免费网站| 一区二区三区精品高清视频免费在线播放 | 亚洲第一男人天堂| 99久久99久久精品免费看蜜桃| 一级做a爰片久久毛片免费陪| 77777午夜亚洲| 国产免费看插插插视频| 日韩国产精品亚洲а∨天堂免| 四虎在线播放免费永久视频| 18禁美女黄网站色大片免费观看| 久久水蜜桃亚洲av无码精品麻豆| 亚洲av无码乱码在线观看野外 | 亚洲国产精品热久久| 巨波霸乳在线永久免费视频| 一本一道dvd在线观看免费视频 | 免费无遮挡无码永久视频| 亚洲伊人久久大香线焦| 永久免费AV无码网站在线观看| 伊人久久免费视频|