kelefa  
          大千世界中,唯一缺乏的就是人類(lèi)的注意力。
          日歷
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789
          統(tǒng)計(jì)
          • 隨筆 - 11
          • 文章 - 0
          • 評(píng)論 - 28
          • 引用 - 0

          導(dǎo)航

          常用鏈接

          留言簿(2)

          隨筆分類(lèi)

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

           

          OSCache是OpenSymphony組織提供的一個(gè)J2EE架構(gòu)中Web應(yīng)用層的緩存技術(shù)實(shí)現(xiàn)方案,可以使用內(nèi)存、硬盤(pán)空間、同時(shí)使用內(nèi)存和硬盤(pán)作為緩存區(qū)靈活的緩存系統(tǒng):OSCache支持多種緩存級(jí)別,使用相當(dāng)靈活簡(jiǎn)單,在jsp中刷新緩存只要兩行代碼:


          <% @?taglib?uri = " oscache " ?prefix = " cache " %>

          < cache:flush?group = " device_types " ?scope = " application " ? />

          但是有時(shí)需要在java代碼中刷新緩存,以下這個(gè)OSCacheUtil類(lèi)可以工作,但是只能在webwork環(huán)境內(nèi)調(diào)用:
          import?javax.servlet.jsp.PageContext;

          import?org.apache.log4j.Logger;
          import?com.opensymphony.oscache.base.Cache;
          import?com.opensymphony.oscache.web.ServletCacheAdministrator;
          import?com.opensymphony.webwork.ServletActionContext;

          /**
          ?*?osCache緩存工具類(lèi).
          ?*?只能在webwork環(huán)境內(nèi)調(diào)用
          ?*
          ?*?<p>Copyright:?Copyright?(c)?2005</p>
          ?*?<p>Company:?</p>
          ?*?
          @author?楊杰榮
          ?*?
          @version?1.0
          ?
          */

          public?class?OSCacheUtil
          {
          ??
          private?static?final?Logger?log?=?Logger.getLogger(?OSCacheUtil.class?);

          ??
          public?static?final?int?ALL_SCOPE?=?0;
          ??
          public?static?final?int?SESSION_SCOPE?=?PageContext.SESSION_SCOPE;
          ??
          public?static?final?int?APPLICATION_SCOPE?=?PageContext.APPLICATION_SCOPE;

          ??
          private?static?ServletCacheAdministrator?admin?=?null;

          ??
          private?OSCacheUtil()
          ??
          {
          ??}


          ??
          /**
          ???*?刷新osCache組
          ???*?
          @param?group?Cache組名
          ???*?
          @param?cacheScope?Cache范圍,只能是SESSION_SCOPE或APPLICATION_SCOPE
          ???
          */

          ??
          public?static?void?flushGroup(?String?group,?int?cacheScope?)
          ??
          {
          ????initCacheAdmin();

          ????
          if?(?cacheScope?==?SESSION_SCOPE?||?cacheScope?==?APPLICATION_SCOPE?)
          ????
          {
          ??????Cache?cache?
          =?admin.getCache(?ServletActionContext.getRequest(),
          ????????????????????????????????????cacheScope?);
          ??????cache.flushGroup(?group?);
          ????}

          ????
          else
          ????
          {
          ??????log.warn(?
          "A?cache?group?was?specified?for?flushing,?but?the?scope?wasn't?supplied?or?was?invalid"?);
          ????}

          ??}


          ??
          /**
          ???*?刷新osCache中的某個(gè)key'
          ???*?
          @param?key?String
          ???*?
          @param?cacheScope?Cache范圍,只能是SESSION_SCOPE或APPLICATION_SCOPE
          ???
          */

          ??
          public?static?void?flushKey(?String?key,?int?cacheScope?)
          ??
          {
          ????initCacheAdmin();

          ????
          if?(?cacheScope?==?SESSION_SCOPE?||?cacheScope?==?APPLICATION_SCOPE?)
          ????
          {
          ??????String?actualKey?
          =?admin.generateEntryKey(
          ??????????key,?ServletActionContext.getRequest(),?cacheScope,?
          null?);

          ??????Cache?cache?
          =?admin.getCache(?ServletActionContext.getRequest(),?cacheScope?);
          ??????cache.flushEntry(?actualKey?);
          ????}

          ????
          else
          ????
          {
          ??????log.warn(?
          "A?cache?key?was?specified?for?flushing,?but?the?scope?wasn't?supplied?or?was?invalid"?);
          ????}

          ??}


          ??
          /**
          ???*?刷新所有的osCache
          ???*?
          @param?cacheScope?Cache范圍,可以是SESSION_SCOPE,APPLICATION_SCOPE,ALL_SCOPE
          ???
          */

          ??
          public?static?void?flushAll(?int?cacheScope?)
          ??
          {
          ????initCacheAdmin();

          ????
          if?(?cacheScope?==?SESSION_SCOPE?||?cacheScope?==?APPLICATION_SCOPE?)
          ????
          {
          ??????admin.setFlushTime(?cacheScope?);
          ????}

          ????
          else
          ????
          {
          ??????admin.flushAll();
          ????}

          ??}



          ??
          private?static?void?initCacheAdmin()
          ??
          {
          ????
          if?(?admin?==?null?)
          ????
          {
          ??????admin?
          =?ServletCacheAdministrator.getInstance(?ServletActionContext.
          ??????????getServletContext()?);
          ????}

          ??}

          }
          posted on 2006-06-29 09:32 楊杰榮 閱讀(1499) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): 開(kāi)源應(yīng)用
          評(píng)論:
          • # re: OSCache工具類(lèi)  pandaxiaoxi Posted @ 2006-07-02 21:36
            問(wèn)個(gè)跟本主題無(wú)關(guān)的問(wèn)題,你是怎么在blog上發(fā)代碼的,代碼怎么跟在ide里一樣那?看起來(lái)很工整,能交交我嗎?呵呵  回復(fù)  更多評(píng)論   

          • # re: OSCache工具類(lèi)  楊杰榮 Posted @ 2006-07-03 13:15
            @pandaxiaoxi

            點(diǎn)擊“代碼”圖標(biāo),然后粘貼代碼就ok了  回復(fù)  更多評(píng)論   

           
          Copyright © 楊杰榮 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 英山县| 新巴尔虎右旗| 临夏县| 江达县| 广丰县| 八宿县| 吉林省| 平江县| 定边县| 永丰县| 都昌县| 商水县| 盐亭县| 大新县| 元阳县| 万宁市| 年辖:市辖区| 信宜市| 宣恩县| 大渡口区| 泰安市| 瑞昌市| 岢岚县| 前郭尔| 神木县| 弋阳县| 恭城| 鄂州市| 吉安县| 江川县| 河南省| 宁城县| 竹溪县| 介休市| 临清市| 荔浦县| 达州市| 泸定县| 麻阳| 读书| 鸡西市|