記錄工作中的一點(diǎn)小坑20170913

4月份開始996加班直到8月中旬結(jié)束冕香,然后就是忙碌的辭職、開始找工作镣奋,現(xiàn)在終于算是進(jìn)入一種理性的狀態(tài)了币呵。記錄一下工作中的一點(diǎn)坑。

初來公司侨颈,需要寫一個(gè)自己部門的查詢余赢,然后就開始籌備掸驱,所有東西都是從0開始搭建,還好第一步只實(shí)現(xiàn)能展現(xiàn)即可没佑。果斷選擇了spring boot毕贼。 ?因?yàn)橹肮疽灿蓄愃频男枨螅且粋€(gè)架構(gòu)搭建了一套蛤奢,我才第一次認(rèn)識(shí)到了spring boot鬼癣。然后自己私下學(xué)了簡單應(yīng)用,后來忙于工作和看書啤贩,這塊就扔掉了〈海現(xiàn)在算是一個(gè)全新的機(jī)會(huì)學(xué)習(xí)吧。

第一個(gè)問題:用httpClient請(qǐng)求遠(yuǎn)程數(shù)據(jù)接口遇到登錄問題痹屹,第一次用httpClient章郁,這下直接蒙圈了,這怎么解決志衍?之前開發(fā)的遠(yuǎn)程數(shù)據(jù)請(qǐng)求都是無權(quán)限驗(yàn)證暖庄,然后就開始百度,大概了解了機(jī)制后楼肪,開始解決這個(gè)問題培廓。

第一步:去到登錄頁,拿到登錄請(qǐng)求的鏈接的參數(shù)春叫,這一步具體怎么操作肩钠,稍微說一下,用chrom瀏覽器(就是為了頁面請(qǐng)求查看和調(diào)試方便)的調(diào)試臺(tái)暂殖,然后查看了請(qǐng)求鏈接价匠,和請(qǐng)求參數(shù).

第二步:根據(jù)請(qǐng)求信息自己構(gòu)造了PostMethod方法請(qǐng)求,這樣就實(shí)現(xiàn)了遠(yuǎn)程登錄呛每。然后我們內(nèi)部的系統(tǒng)是這樣的踩窖,登錄會(huì)攜帶一個(gè)returnUrl在成功后直接重定向到該請(qǐng)求,我的所有數(shù)據(jù)都是在這個(gè)請(qǐng)求里莉给,然后再在同一個(gè)httpClient對(duì)象實(shí)例下去直接請(qǐng)求數(shù)據(jù)源毙石,這樣就拿到了數(shù)據(jù)廉沮。

這里只是在請(qǐng)求數(shù)據(jù)源前多了一步登錄操作颓遏。問題還是非常容易解決。

其實(shí)這里還有個(gè)問題滞时,因?yàn)槲业恼?qǐng)求是并發(fā)的叁幢,創(chuàng)建多個(gè)線程去請(qǐng)求數(shù)據(jù),這樣就造成了每一次查詢都要并發(fā)的登錄N次坪稽,這樣的程序設(shè)計(jì)出來曼玩,呵呵鳞骤!那怎么解決呢?

如果對(duì)session和cookie原理理解的同學(xué)很容易就會(huì)想到黍判,我們可以把第一個(gè)請(qǐng)求的數(shù)據(jù)請(qǐng)求返回的結(jié)果中拿到這些值豫尽,然后保存起來,之后的每次創(chuàng)建httpClient對(duì)象就直接去容器中拿到這些信息攜帶過去就實(shí)現(xiàn)了顷帖,這里還有個(gè)問題是美旧,我們的session機(jī)制的問題,服務(wù)端會(huì)設(shè)置一定時(shí)間過期贬墩,那么過期后怎么辦呢榴嗅,這里呢我想了幾種解決方案。

方案1:請(qǐng)求進(jìn)來先去判斷容器里有沒有陶舞,沒有的話嗽测,去請(qǐng)求登錄并返回結(jié)果中拿到的值去放到容器中,然后再進(jìn)行數(shù)據(jù)請(qǐng)求肿孵,拿到的結(jié)果進(jìn)行驗(yàn)證唠粥,如果返回登錄頁,則清空容器再進(jìn)行登錄操作保存最新值停做。

方案2:單獨(dú)起一個(gè)線程去執(zhí)行登錄操作厅贪,并定時(shí)的拿這個(gè)值去驗(yàn)證是否過期,請(qǐng)求線程只負(fù)責(zé)拿值去請(qǐng)求即可雅宾。

方案3:借用生產(chǎn)者消費(fèi)者的模型养涮,如果請(qǐng)求數(shù)據(jù)發(fā)現(xiàn)請(qǐng)求過期、阻塞眉抬,喚醒一個(gè)永久存活的線程去執(zhí)行登錄操作贯吓,寫到容器中,然后執(zhí)行喚醒操作蜀变,自己請(qǐng)求返回正常則再次阻塞悄谐。

從復(fù)雜度來講,每個(gè)請(qǐng)求都去執(zhí)行登錄操作是最簡單的實(shí)現(xiàn)方式库北,其他幾種

第二個(gè)坑是springboot的靜態(tài)資源引用問題爬舰。

默認(rèn)情況下html是在templates下,js,img等是在static下寒瓦。在頁面引入的時(shí)候?qū)懼苯勇窂郊纯伞?/p>

我以為是我配置哪里有問題了情屹,搞到最后才明白,頁面引入資源的時(shí)候杂腰,寫的路徑一定是從static下一層開始的垃你,千萬別帶static。 這個(gè)問題搞了我2小時(shí),還是今天早上我百度時(shí)候看了另外一個(gè)路徑惜颇,然后自己嘗試了下發(fā)現(xiàn)能找到皆刺,請(qǐng)求時(shí)候沒寫static,然后切換回原來的路徑下發(fā)現(xiàn)也OK了凌摄。


對(duì)于js


引入的例子

這里的.. ?代表著 ?請(qǐng)求路徑前綴羡蛾,比如 ?http://localhost:8080/

如果這里配置了server.context-path=項(xiàng)目名? ? 則..代表著http://localhost:8080/項(xiàng)目名

如果不加..? 則 直接在填寫的js路徑前加上http://localhost:8080/

比如你引入路徑為 src="/a/b/c",? 則發(fā)現(xiàn)請(qǐng)求路徑是http://localhost:8080/a/b/c

問題3:通常jsp頁面我們一般用request對(duì)象獲取項(xiàng)目的path,這樣通過path+相對(duì)請(qǐng)求就可以構(gòu)建完整的請(qǐng)求锨亏,但是html沒有request對(duì)象林说,需要寫相對(duì)或者絕對(duì)路徑。在windows下昨晚用

http://127.0.0.1:8080/請(qǐng)求路徑 ? ?ajax調(diào)用 ? 不管怎么調(diào)試 ?都是進(jìn)入了error屯伞。百度了半天也沒有人說啥問題腿箩,今天早上又折騰了4小時(shí)就在最后快要絕望的時(shí)候,看到有個(gè)帖子說可能是跨域問題劣摇,于是我改了localhost ?發(fā)現(xiàn) ?請(qǐng)求就正常了珠移。又做了其他測(cè)試,發(fā)現(xiàn)和上面的類似末融。

如果配置為url:'http://127.0.0.1:8090/項(xiàng)目自定義名稱/請(qǐng)求路徑'钧惧,則ajax會(huì)因?yàn)榭缬蜻M(jìn)入error

如果配置為url:'http://localhost:8090/項(xiàng)目自定義名稱/請(qǐng)求路徑',則ajax請(qǐng)求正常

如果配置為:url:'/請(qǐng)求路徑'勾习,且未配置server.content-path浓瞪,請(qǐng)求正常

如果配置為:url:'/請(qǐng)求路徑',且配置server.content-path巧婶,請(qǐng)求報(bào)錯(cuò)

如果配置為:url:'../請(qǐng)求路徑'乾颁,且配置server.content-path,請(qǐng)求正常

這里留有疑問艺栈,關(guān)于linux和windows下對(duì)127.0.0.1的ajax的識(shí)別問題英岭。抽時(shí)間一定要搞清楚ajax請(qǐng)求判斷是否跨域這個(gè)問題是否與操作系統(tǒng)有關(guān)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市湿右,隨后出現(xiàn)的幾起案子诅妹,更是在濱河造成了極大的恐慌,老刑警劉巖毅人,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吭狡,死亡現(xiàn)場離奇詭異,居然都是意外死亡丈莺,警方通過查閱死者的電腦和手機(jī)划煮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來场刑,“玉大人般此,你說我怎么就攤上這事蚪战∏O郑” “怎么了铐懊?”我有些...
    開封第一講書人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞎疼。 經(jīng)常有香客問我科乎,道長,這世上最難降的妖魔是什么贼急? 我笑而不...
    開封第一講書人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任茅茂,我火速辦了婚禮,結(jié)果婚禮上太抓,老公的妹妹穿的比我還像新娘空闲。我一直安慰自己,他們只是感情好走敌,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開白布碴倾。 她就那樣靜靜地躺著,像睡著了一般掉丽。 火紅的嫁衣襯著肌膚如雪跌榔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評(píng)論 1 312
  • 那天捶障,我揣著相機(jī)與錄音僧须,去河邊找鬼。 笑死项炼,一個(gè)胖子當(dāng)著我的面吹牛担平,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锭部,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼驱闷,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了空免?” 一聲冷哼從身側(cè)響起空另,我...
    開封第一講書人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蹋砚,沒想到半個(gè)月后扼菠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坝咐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年循榆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墨坚。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秧饮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盗尸,我是刑警寧澤柑船,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站泼各,受9級(jí)特大地震影響鞍时,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扣蜻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一逆巍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧莽使,春花似錦锐极、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至庇勃,卻和暖如春檬嘀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背责嚷。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來泰國打工鸳兽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人罕拂。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓揍异,卻偏偏與公主長得像,于是被迫代替她去往敵國和親爆班。 傳聞我的和親對(duì)象是個(gè)殘疾皇子衷掷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)柿菩,斷路器戚嗅,智...
    卡卡羅2017閱讀 134,714評(píng)論 18 139
  • 最近一段時(shí)間,一直在努力尋找有效的閱讀方法枢舶,以期建立一套自己的閱讀模式懦胞,更大的野心是重塑自己的生活方式。所以凉泄,從《...
    邊緣生存閱讀 288評(píng)論 0 0
  • 大一的時(shí)候我開了個(gè)淘寶網(wǎng)店后众,開了大概半年胀糜,就沒開了颅拦。然后我關(guān)閉了店鋪半年之后,我才反應(yīng)過來教藻,當(dāng)時(shí)我進(jìn)入的那個(gè)行業(yè)竟...
    我是劉良閱讀 266評(píng)論 0 0
  • 暴風(fēng)雨如期而至距帅,夜今日也提前遛了出來,沒有星星的夜空怖竭,剩下的唯有一片漆黑锥债。這風(fēng)給這初秋帶來了清涼陡蝇,卻沒有給予我們縱...
    小陳里的風(fēng)景與故事閱讀 190評(píng)論 0 1
  • 一痊臭、多人相冊(cè) 私密群相冊(cè)這個(gè)需求,在移動(dòng)互聯(lián)網(wǎng)早期就有很多產(chǎn)品試圖解決這個(gè)問題登夫。交互邏輯一般是用戶建立一個(gè)共享相冊(cè)...
    周揚(yáng)颿_Leeves閱讀 349評(píng)論 0 0