① 在JSP頁面提交表單,以post方式提交,寫了過濾器處理中文亂碼問題
可能造成的原因:
頁面 後台業務 數據 中間有一個環節編碼不一致。
是否對該欄位做了編碼轉換。
針對1:
檢查頁面編碼 是什麼編碼。如:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
過濾器設置的是什麼編碼。資料庫採用什麼編碼。然後最好統一編碼。
針對2:
看看是否做了強制轉換,或者設置了request response的編碼。
② 姘磋姱紼庢敹鍒嗙被緙栫爜鏄澶氬皯
姘磋姱紼庢敹鍒嗙被緙栫爜濡備笅錛
1銆佸噣姘村櫒鐢ㄨ繃婊よ姱銆佽繃婊ょ綉銆佺¢亾絳夛紝褰掍負榪囨護鍣ㄦ垨鍑鍖栧櫒闆朵歡錛岀◣鏀剁紪鐮佷負84212100銆
2銆佹按璐ㄦ祴璇曚華鍣ㄥ拰璁懼囩殑闆墮厤浠訛紝緙栫爜涓90279000銆
3銆佸噣姘村櫒鐢ㄦ車鍙婂叾闆朵歡錛岀紪鐮佷負84138100銆
4銆佸噣姘村櫒鐢ㄥ戞枡綆¢亾銆佺″瓙銆佽蔣綆$瓑錛岀紪鐮佷負39172300銆
5銆佸噣姘村櫒鐢ㄩ榾闂錛岀紪鐮佷負84818092銆
6銆佸噣姘村櫒鐢ㄩ噾灞炴《銆佸瑰櫒錛岀紪鐮佷負73100000銆
7銆佸噣姘村櫒鐢ㄨ仛鑻涔欑儻鐩掋佺憋紝緙栫爜涓39233000銆
8銆佸噣姘村櫒鐢ㄦ椿鎬х偔絳夊惛闄勫墏錛岀紪鐮佷負38021000銆
③ spring過濾器和攔截器的區別
(1)過濾器:
依賴於servlet容器,是JavaEE標准,是在請求進入容器之後,還未進入Servlet之前進行預處理,並且在請求結束返回給前端這之間進行後期處理。在實現上基於函數回調,可以對幾乎所有請求進行過濾,但是缺點是一個過濾器實例只能在容器初始化時調用一次。使用過濾器的目的是用來做一些過濾操作,獲取我們想要獲取的數據,比如:在過濾器中修改字元編碼;在過濾器中修改HttpServletRequest的一些參數,包括:過濾低俗文字、危險字元等
關於過濾器的一些用法可以參考我寫過的這些文章:
繼承HttpServletRequestWrapper以實現在Filter中修改HttpServletRequest的參數:
在SpringMVC中使用過濾器(Filter)過濾容易引發XSS的危險字元:
(2)攔截器:
攔截器不依賴與servlet容器,依賴於web框架,在SpringMVC中就是依賴於SpringMVC框架。在實現上基於Java的反射機制,屬於面向切面編程(AOP)的一種運用。由於攔截器是基於web框架的調用,因此可以使用spring的依賴注入(DI)獲取IOC容器中的各個bean,進行一些業務操作,同時一個攔截器實例在一個controller生命周期之內可以多次調用。但是缺點是只能對controller請求進行攔截,對其他的一些比如直接訪問靜態資源的請求則沒辦法進行攔截處理,攔截器功在對請求許可權鑒定方面確實很有用處