之前沒用過濾器的時候我們解決亂碼 的辦法是在每個servlet最前面加
響應亂碼:
post請求亂碼:response.setcharacterencoding("utf-8");//通知伺服器
response.setcontenttype("text/html;charset=utf-8"); //通知瀏覽器(其實底層也通知了伺服器 所以上一行**其實可用不用寫)
get請求亂碼:request.setcharacterencoding(「utf-8」);//jsp的pageencoding為 utf-8的前提下
//通知伺服器 以瀏覽器一樣的編碼方法開啟
對於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 元件。對於客戶端和目標資源而言過濾器是透明的,他們是不知道傳送來的資料是否經過過濾器的處理。二 過濾器的作用 過濾器相當...