麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JSP > 正文

JSP中使用cache取值出錯解決辦法

2024-09-05 00:23:04
字體:
來源:轉載
供稿:網友

 JSP  中使用cache取值出錯解決辦法

 這段時間發現系統取數據過程中,偶爾出現取數據錯亂的問題,按邏輯應該取出A數據,結果取出了B數據。仔細檢查了代碼,
發現代碼邏輯沒有問題,瞬間就蒙了,是哪里出現問題了呢。仔細想了一下,以前都沒出現問題,自從加了緩存之后就偶爾出現了問題,那肯定問題是緩存有問題。

仔細研究了緩存的源碼,原來問題出現在DefaultKeyGenerator生成key上面。代碼如下:

public class DefaultKeyGenerator implements KeyGenerator {    public static final int NO_PARAM_KEY = 0;   public static final int NULL_PARAM_KEY = 53;    public Object generate(Object target, Method method, Object... params) {     if (params.length == 1) {       return (params[0] == null ? NULL_PARAM_KEY : params[0]);     }     if (params.length == 0) {       return NO_PARAM_KEY;     }     int hashCode = 17;     for (Object object : params) {       hashCode = 31 * hashCode + (object == null ? NULL_PARAM_KEY : object.hashCode());     }     return Integer.valueOf(hashCode);   }  } 

從源碼中我們發現,當參數:params有一個或0的時候,直接返回NULL_PARAM_KEY或者參數params[0],假如params參數大于1的時候返回的是各個參數的hash值相加的值+31*17。這樣就出現問題了,雖然取A數據與取B數據的各個參數的值不一樣,但是有可能它們參數的hashcode值是一樣的,那么就可能出現取A數據把B數據取出來了。(cache中就像map一樣,有key和value,根據key來取value值)。

比如下面代碼,雖然參數值不一樣但是key是相同的。

public static void main(String argv[])   {     DefaultKeyGenerator g = new DefaultKeyGenerator();     Integer param0 = 1000000759;     String param1 = "11";     System.out.println(" param0="+param0+", param1="+param1+" generate key: "+g.generate(null,null,param0,param1));     Integer param01 = 1000000757;     String param11 = "31";     System.out.println("param01="+param01+",param11="+param11+" generate key: "+g.generate(null,null,param01,param11));   } 

運行結果如下:

JSP,cache,取值出錯,正確使用方法

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持! 


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩在线播放一区 | 国产乱淫av | 校花被肉干高h潮不断 | 中文字幕线观看 | 日韩精品无码一区二区三区 | 免费一级毛片在线播放视频 | 日日狠狠久久 | 中文字幕 亚洲一区 | 亚洲精品91 | 姑娘第四集免费看视频 | 亚洲精品欧美在线 | 黑人一区二区三区四区五区 | 欧美一级α| 午夜视频在线观看91 | 亚洲射情 | 国产亚洲精品综合一区91555 | 日本成人高清视频 | 91亚洲精品一区二区福利 | 羞羞视频免费观看网站 | 色视频在线 | 性明星video另类hd | 黄色影院在线观看视频 | 精品久久久久久久久久久久久久 | 黄色久| 毛片大全免费看 | 欧美国产永久免费看片 | 亚洲第一男人天堂 | 毛片免费观看视频 | 欧美粗暴analvideos | 成年人网站视频免费 | 中文字幕极速在线观看 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 日本不卡视频在线观看 | 日韩黄站 | 国产精品成人亚洲一区二区 | 91精品动漫在线观看 | 日本一区二区视频在线观看 | 国产午夜精品理论片a级探花 | 国产精品剧情一区二区在线观看 | 爱操影院 | 久久国产精品免费视频 |