處理器方法可以包含以下四類參數(shù),這些參數(shù)會(huì)在系統(tǒng)調(diào)用時(shí)由系統(tǒng)自動(dòng)賦值,即程序員可在方法內(nèi)直接使用。
● HttpServletRequest
● HttpServletResponse
● HttpSession
● 請(qǐng)求中所攜帶的請(qǐng)求參數(shù)
只要保證請(qǐng)求參數(shù)名與該請(qǐng)求處理方法的參數(shù)名相同即可。
項(xiàng)目:receiveParameters-property。在 requestMapping-method 基礎(chǔ)上修改。
Step1:修改 index 頁(yè)面
Step2:修改處理器類 MyController
Step3:添加 show 頁(yè)面
在/WEB-INF/jsp 下添加 show.jsp 頁(yè)面。
對(duì)于前面所接收的請(qǐng)求參數(shù),若含有中文,則會(huì)出現(xiàn)中文亂碼問題。Spring 對(duì)于請(qǐng)求參數(shù)中的中文亂碼問題,給出了專門的字符集過濾器:spring-web-4.3.9.RELEASE.jar 的org.springframework.web.filter 包下的 CharacterEncodingFilter 類。
在 web.xml 中注冊(cè)字符集過濾器,即可解決 Spring 的請(qǐng)求參數(shù)的中文亂碼問題。不過,最好將該過濾器注冊(cè)在其它過濾器之前。因?yàn)檫^濾器的執(zhí)行是按照其注冊(cè)順序進(jìn)行的。直接在項(xiàng)目 receiveParameters-property 上進(jìn)行修改。
打開 CharacterEncodingFilter 類的源碼,發(fā)現(xiàn)有三個(gè) set 方法。
字符集設(shè)置核心方法:
所謂校正請(qǐng)求參數(shù)名,是指若請(qǐng)求 URL 所攜帶的參數(shù)名稱與處理方法中指定的參數(shù)名不相同時(shí),則需在處理方法參數(shù)前,添加一個(gè)注解@RequestParam(“請(qǐng)求參數(shù)名”),指定請(qǐng)求 URL 所攜帶參數(shù)的名稱。該注解是對(duì)處理器方法參數(shù)進(jìn)行修飾的。value 屬性指定請(qǐng)求參數(shù)的名稱。
項(xiàng)目:receiveParameters-params。在 receiveParameters-property 基礎(chǔ)上修改。
Step1:修改 index 頁(yè)面
將表單中的參數(shù)名稱修改的與原來(lái)不一樣。
Step2:修改處理器類 MyController
將處理器方法的參數(shù)定義為一個(gè)對(duì)象,只要保證請(qǐng)求參數(shù)名與這個(gè)對(duì)象的屬性同名即可。
項(xiàng)目:receiveParameters-object。在 receiveParameters-property 基礎(chǔ)上修改。
Step1:定義類 Student
Step2:修改處理器類 MyController
Step3:修改 show 頁(yè)面