請求路徑上帶有或出現jsessionid的處理辦法

2021-10-06 12:04:21 字數 1166 閱讀 9797

問題誘因

請求路徑中帶有;jsessionid=***等字串:

示例如下:

還有的情況是;jsessionid=***出現在了請求的末尾.

先將請求中的字串;jsessionid=***替換為空字串,然後請求**.核心**:

//過濾路徑中帶 ;jsessionid=003ec21dcdfa5169409db58ee39c0896 的問題

string requesturi = request.

getrequesturi()

;if(requesturi.

indexof

(";jsessionid=")!=

-1)

下面具體實現該方式:

我這裡用的是***.

新建***,並重寫prehandle

@component

public

class

authinterceptor

implements

handlerinterceptor

強調!!!一定要return false,不然這個請求實際上是被放行了,也就導致了404報錯.而return false後,請求會在在這段**處理後,變成了正確的路徑,重新走一遍服務端,這樣操作後,你會發現前端頁面控制台雖然還是那種錯誤路徑,但是已經能正確得到響應,獲取到資料了.

通過查資料及整理,我的理解是,瀏覽器與服務端互動預設帶有session,而某些操作或設計導致瀏覽器第一次與服務端互動時沒有相應的session留存在服務端,這時候,服務端會補乙個session留存,而這個動作會導致瀏覽器的http請求拼接一串含有jsessionid的字串到路徑上,導致了該問題.

說到這裡,我的問題發生於我通過iframe標籤整合乙個內部的簡單的單點登入功能時,場景給大家描述一下:

java請求路徑

在寫程式時,想要獲取某個資源檔案,或想訪問某個 servlet 如果路徑寫不對,就找不到該檔案,或訪問失敗。由此可見,路徑很重要。下面我們就來分析一下如何正確找到資源檔案及訪問 servlet。1.servlet訪問路徑 servlet 的訪問路徑是在 web.xml 檔案中配置的,如下所示 ser...

請求路徑問題

訪問路徑與資源名稱 通常的url資源請求路徑由兩部分構成 訪問路徑與資源名稱。資源名稱指的是要訪問資源的直接名稱,如 show.jsp,或與要訪問資源存在對映關係的間接路徑,如show.do 而訪問路徑,則是通過該路徑則可以定位到指定的資源,即在url資源訪問路徑中除了資源名稱以外的其他部分。hel...

帶有ANY SOME 或ALL謂詞的子查詢

子查詢返回單值時可以用比較運算子,但返回多值時要用any 有的系統用some 或all謂詞修飾符。而使用any或all謂詞時則必須同時使用比較運算子。其語義為 any 大於子查詢結果中的某個值 all 大於子查詢結果中的所有值 any 小於子查詢結果中的某個值 all 小於子查詢結果中的所有值 an...