最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

HttpServletRequest參數(shù)丟失問(wèn)題及解決

 更新時(shí)間:2025年10月31日 09:55:15   作者:呼哇呼哇time  
在使用HttpServletRequest進(jìn)行參數(shù)傳遞時(shí),如果在異步方法中使用,可能會(huì)導(dǎo)致參數(shù)丟失,這是因?yàn)镠ttpServletRequest對(duì)象在異步任務(wù)中可能被回收,為了解決這個(gè)問(wèn)題,可以在異步方法中提前提取參數(shù),然后將其傳遞給異步任務(wù)

HttpServletRequest參數(shù)丟失

遇到一個(gè)奇怪的問(wèn)題

測(cè)試環(huán)境沒(méi)有出現(xiàn),本地連正式數(shù)據(jù)庫(kù)也沒(méi)復(fù)現(xiàn)。

主要業(yè)務(wù)邏輯是通過(guò)篩選條件從數(shù)據(jù)庫(kù)導(dǎo)出一批數(shù)據(jù)。異常情況是,選擇的篩選條件失效了,導(dǎo)致導(dǎo)出了全量數(shù)據(jù),這搞不好會(huì)有數(shù)據(jù)泄露風(fēng)險(xiǎn)。

已知列表分頁(yè)查詢是沒(méi)有問(wèn)題的

篩選條件都能生效,代碼如下:

但是導(dǎo)出時(shí)卻沒(méi)起作用,導(dǎo)出代碼:

觀察可知,他們都調(diào)用的getSqlMap方法,該方法具體作用就是從HttpServletRequest中獲取相關(guān)條件參數(shù),并放到Map中,供后續(xù)查詢代碼使用,如下:

按常理推斷

輸入和代碼一致,得到的結(jié)果應(yīng)該是一致的,但是卻不是這樣

使用jvm神器arthas,watch一下getSqlMap方法,然后分別調(diào)用列表查詢導(dǎo)出接口,得到如下兩條記錄

對(duì)比可知,上面有的很多參數(shù),下面一條都沒(méi)有,那么參數(shù)怎么會(huì)消失呢?數(shù)據(jù)都是從HttpServletRequest對(duì)象中獲取的,那么這個(gè)對(duì)象里面的數(shù)據(jù)怎么消失了呢?

細(xì)心的網(wǎng)友可能注意到了

我們導(dǎo)出方式是異步的,關(guān)鍵在@Async注解

難道莫非,HttpServletRequest被回收了,果然網(wǎng)上搜一下,很多案例

比較官方的說(shuō)明

不推薦在異步中使用request,會(huì)得到不確定的結(jié)果

因此,我們需要在異步方法前提取參數(shù),再傳入

小小的問(wèn)題,大大的疑惑。花了不少時(shí)間定位問(wèn)題,好在爬出了坑。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

南川市| 盐山县| 汾西县| 商洛市| 台前县| 洛阳市| 江阴市| 林口县| 手游| 外汇| 中卫市| 玉环县| 衡水市| 仁布县| 德保县| 水富县| 琼海市| 绍兴市| 淳化县| 洪江市| 鄂州市| 霸州市| 柘城县| 平原县| 漳平市| 榆林市| 鲜城| 台前县| 陇南市| 彩票| 海安县| 从化市| 乐业县| 静宁县| 花垣县| 宜兰县| 南宁市| 长治市| 瑞安市| 岳西县| 上栗县|