重新學javaweb 過濾器 應用 全站亂碼

2021-07-11 16:32:11 字數 1798 閱讀 5105

之前沒用過濾器的時候我們解決亂碼 的辦法是在每個servlet最前面加

響應亂碼:

response.setcharacterencoding("utf-8");//通知伺服器

response.setcontenttype("text/html;charset=utf-8"); //通知瀏覽器(其實底層也通知了伺服器 所以上一行**其實可用不用寫)

post請求亂碼:

request.setcharacterencoding(「utf-8」);//jsp的pageencoding為 utf-8的前提下

//通知伺服器 以瀏覽器一樣的編碼方法開啟

get請求亂碼:

對於get提交的亂碼,只能手動的進行編譯碼從而解決亂碼問題:(因為伺服器預設的就是iso8859-1

在http請求到達servlet解析之前,get過來的url已經被tomcat先做了一次urldecode。

tomcat對get方式預設的url解碼結果是iso-8859-1

所以先用它編碼為二進位制,再用utf-8解碼回去)

boolean isnotencode = true;//第一次進來時,會組織map,對於get請求,用

}isnotencode = false;// 設定為false,第二次就不會再進這個**塊了

}return map;

} else

} catch (exception e)

}@override

public string getparametervalues(string name)

@override

public string getparameter(string name)

}}上面get請求時要注意,在第一次獲取引數的時候解決完亂碼後的map會被快取,再次呼叫getparamet***時還會用這個map,因為經過第一次後map中的資料已經是utf-8的了,這時再用iso8859-1解碼就又亂碼了。所以,我們要用個變數控制,get亂碼解決的那段**只執行一次。

Javaweb的過濾器

過濾器 implements filter 實現filter介面,重寫3個方法,dofilter用來過濾請求的 我們不關心過濾器啟動載入的順序,只關心過濾執行的順序,執行的順序和web.xml的配置有關 過濾器的執行順序和返回順序是相反的 web.xml過濾器的配置方式 beautifygirl c...

JavaWeb之過濾器

對使用者請求進行統一認證 編碼轉換 對使用者傳送的資料進行過濾替換 轉換影象格式 對響應的內容進行壓縮 過濾器是乙個伺服器端的元件,它可以擷取使用者端的請求與響應資訊,並對這些資訊進行過濾。4.1 servlet 2.5request 使用者直接訪問頁面時,web容器將會呼叫過濾器 forward ...

Java Web 第8天 過濾器

一 什麼是過濾器 從技術上講過濾器是乙個中間元件,用於攔截源資料和目的資料間的訊息,並且過濾二者之間傳遞的資料。對於 web 應用程式,過濾器是駐留在 web 伺服器上的 web 元件。對於客戶端和目標資源而言過濾器是透明的,他們是不知道傳送來的資料是否經過過濾器的處理。二 過濾器的作用 過濾器相當...