最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

SpringMVC由淺入深實(shí)用教程-SpringMVC注解式開發(fā)

2021-03-18 14:42 作者:動(dòng)力節(jié)點(diǎn)小王本王  | 我要投稿



@RequestMapping?定義請(qǐng)求規(guī)則

指定模塊名稱

通過@RequestMapping?注解可以定義處理器對(duì)于請(qǐng)求的映射規(guī)則。該注解可以注解在方法上,也可以注解在類上,但意義是不同的。value?屬性值常以“/”開始。

@RequestMapping 的value 屬性用于定義所匹配請(qǐng)求的URI。但對(duì)于注解在方法上與類上,其value 屬性所指定的URI,意義是不同的。

一個(gè)@Controller 所注解的類中,可以定義多個(gè)處理器方法。當(dāng)然,不同的處理器方法所匹配的URI 是不同的。這些不同的URI 被指定在注解于方法之上的@RequestMapping 的value 屬性中。但若這些請(qǐng)求具有相同的URI 部分,則這些相同的URI,可以被抽取到注解在類之上的@RequestMapping 的value 屬性中。此時(shí)的這個(gè) URI 表示模塊的名稱。URI 的請(qǐng)求是相對(duì)于Web 的根目錄。

換個(gè)角度說,要訪問處理器的指定方法,必須要在方法指定 URI 之前加上處理器類前定義的模塊名稱

項(xiàng)目:requestMapping-modelName。在 primary-annotation 基礎(chǔ)上進(jìn)行修改。

Step1:修改處理器類 MyController。

Step2:添加視圖頁面

在/WEB-INF/jsp 目錄下添加some.jsp 與other.jsp 頁面,刪除原welcome.jsp 頁面。

對(duì)請(qǐng)求提交方式的定義

對(duì)于@RequestMapping,其有一個(gè)屬性 method,用于對(duì)被注解方法所處理請(qǐng)求的提交方式進(jìn)行限制,即只有滿足該method 屬性指定的提交方式的請(qǐng)求,才會(huì)執(zhí)行該被注解方法。

Method 屬性的取值為RequestMethod 枚舉常量。常用的為RequestMethod.GET 與RequestMethod.POST,分別表示提交方式的匹配規(guī)則為GET 與POST 提交。

以上處理器方法只能處理POST 方式提交的請(qǐng)求??蛻舳藶g覽器常用的請(qǐng)求方式,及其提交方式有以下幾種:

也就是說,只要指定了處理器方法匹配的請(qǐng)求提交方式為 POST,則相當(dāng)于指定了請(qǐng)求發(fā)送的方式:要么使用表單請(qǐng)求,要么使用 AJAX 請(qǐng)求。其它請(qǐng)求方式被禁用。

當(dāng)然,若不指定method 屬性,則無論是GET 還是POST 提交方式,均可匹配。即對(duì)于請(qǐng)求的提交方式無要求。

項(xiàng)目:requestMapping-method。在 requestMapping-modelName 基礎(chǔ)上進(jìn)行修改。

Step1:修改處理器類 MyController

Step2:修改index 頁面

處理器方法的參數(shù)

處理器方法可以包含以下四類參數(shù),這些參數(shù)會(huì)在系統(tǒng)調(diào)用時(shí)由系統(tǒng)自動(dòng)賦值,即程序員可在方法內(nèi)直接使用。

  • HttpServletRequest

  • HttpServletResponse

  • HttpSession

  • 請(qǐng)求中所攜帶的請(qǐng)求參數(shù)

逐個(gè)參數(shù)接收

只要保證請(qǐng)求參數(shù)名與該請(qǐng)求處理方法的參數(shù)名相同即可。

項(xiàng)目:receiveParameters-property。在 requestMapping-method 基礎(chǔ)上修改。

Step1:修改index 頁面

Step2:修改處理器類 MyController

Step3:添加show 頁面

在/WEB-INF/jsp?下添加show.jsp?頁面。

請(qǐng)求參數(shù)中文亂碼問題

對(duì)于前面所接收的請(qǐng)求參數(shù),若含有中文,則會(huì)出現(xiàn)中文亂碼問題。Spring 對(duì)于請(qǐng)求參數(shù)中的中文亂碼問題,給出了專門的字符集過濾器: spring-web-5.2.5.RELEASE.jar 的org.springframework.web.filter 包下的CharacterEncodingFilter 類。


(1)?解決方案

web.xml 中注冊(cè)字符集過濾器,即可解決Spring?的請(qǐng)求參數(shù)的中文亂碼問題。不過,最好將該過濾器注冊(cè)在其它過濾器之前。因?yàn)檫^濾器的執(zhí)行是按照其注冊(cè)順序進(jìn)行的。

直接在項(xiàng)目receiveParameters-property 上進(jìn)行修改。

(2)?源碼分析

字符集設(shè)置核心方法:

校正請(qǐng)求參數(shù)名@RequestParam

所謂校正請(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 頁面

將表單中的參數(shù)名稱修改的與原來不一樣。

Step2:修改處理器類 MyController

required 屬性:

對(duì)象參數(shù)接收

將處理器方法的參數(shù)定義為一個(gè)對(duì)象,只要保證請(qǐng)求參數(shù)名與這個(gè)對(duì)象的屬性同名即可。項(xiàng)目:receiveParameters-object。在 receiveParameters- property 基礎(chǔ)上修改。

Step1:定義類Student

Step2:修改處理器類 MyController

Step3:修改show 頁面

處理器方法的返回值

使用@Controller 注解的處理器的處理器方法,其返回值常用的有四種類型:

  • 第一種:ModelAndView

  • 第二種:String

  • 第三種:無返回值void

  • 第四種:返回自定義類型對(duì)象

根據(jù)不同的情況,使用不同的返回值。

返回ModelAndView

若處理器方法處理完后,需要跳轉(zhuǎn)到其它資源,且又要在跳轉(zhuǎn)的資源間傳遞數(shù)據(jù),此時(shí)處理器方法返回 ModelAndView 比較好。當(dāng)然,若要返回ModelAndView,則處理器方法中需要定義 ModelAndView 對(duì)象。

在使用時(shí),若該處理器方法只是進(jìn)行跳轉(zhuǎn)而不傳遞數(shù)據(jù),或只是傳遞數(shù)據(jù)而并不向任何資源跳轉(zhuǎn)(如對(duì)頁面的Ajax 異步響應(yīng)),此時(shí)若返回ModelAndView,則將總是有一部分多余:要么 Model 多余,要么View 多余。即此時(shí)返回 ModelAndView 將不合適。

返回String

處理器方法返回的字符串可以指定邏輯視圖名,通過視圖解析器解析可以將其轉(zhuǎn)換為物理視圖地址

返回內(nèi)部資源邏輯視圖名

若要跳轉(zhuǎn)的資源為內(nèi)部資源,則視圖解析器可以使用InternalResourceViewResolver?內(nèi)部資源視圖解析器。此時(shí)處理器方法返回的字符串就是要跳轉(zhuǎn)頁面的文件名去掉文件擴(kuò)展名后的部分。這個(gè)字符串與視圖解析器中的prefix、suffix?相結(jié)合,即可形成要訪問的 URI。

項(xiàng)目:returnString-viewName。在receiveParameters-object 基礎(chǔ)上修改。

直接修改處理器類 MyController

當(dāng)然,也可以直接返回資源的物理視圖名。不過,此時(shí)就不需要再在視圖解析器中再配置前輟與后輟了。

返回 void

對(duì)于處理器方法返回void 的應(yīng)用場(chǎng)景,AJAX 響應(yīng).

若處理器對(duì)請(qǐng)求處理后,無需跳轉(zhuǎn)到其它任何資源,此時(shí)可以讓處理器方法返回void。例如,對(duì)于 AJAX 的異步請(qǐng)求的響應(yīng)。

項(xiàng)目:returnVoid-ajax。在primary-annotation 基礎(chǔ)上進(jìn)行修改。

?

Step1:maven 加入jackson 依賴

由于本項(xiàng)目中服務(wù)端向?yàn)g覽器傳回的是JSON 數(shù)據(jù),需要使用一個(gè)工具類將字符串包裝為JSON 格式,所以需要導(dǎo)入JSON 的依賴。

Step2:引入jQuery 庫

由于本項(xiàng)目要使用jQuery 的ajax()方法提交 AJAX 請(qǐng)求,所以項(xiàng)目中需要引入jQuery 的庫。在WebRoot 下新建一個(gè)Folder(文件夾),命名為 js, 并將jquery-1.11.1.js 文件放入其中。

Step3:定義index 頁面

index 頁面由兩部分內(nèi)容構(gòu)成:一個(gè)是<button/>,用于提交AJAX 請(qǐng)求;一個(gè)是<script/>,用于處理 AJAX 請(qǐng)求。

點(diǎn)擊按鈕發(fā)起請(qǐng)求

Step4: 定義對(duì)象Student

Step5:修改處理器類 MyController

處理器對(duì)于AJAX 請(qǐng)求中所提交的參數(shù),可以使用逐個(gè)接收的方式,也可以以對(duì)象的方式整體接收。只要保證AJAX 請(qǐng)求參數(shù)與接收的對(duì)象類型屬性同名。

以逐個(gè)方式接收參數(shù):

Step6:刪除視圖頁面

由于是服務(wù)端直接向?yàn)g覽器發(fā)回?cái)?shù)據(jù),所以也就無需視圖頁面了,所以需要?jiǎng)h除WEB-INF 中的jsp 目錄及其中的show 頁面。

?

最后奉上視頻教程??,視頻觀看效果更佳?。∽哌^路過別忘素質(zhì)三連哦~~


SpringMVC由淺入深實(shí)用教程-SpringMVC注解式開發(fā)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
潮安县| 景东| 定远县| 西城区| 集贤县| 乾安县| 徐水县| 高雄县| 叶城县| 双桥区| 十堰市| 东宁县| 嘉峪关市| 渝中区| 延津县| 阿拉善右旗| 大荔县| 沁阳市| 兴和县| 陇川县| 潍坊市| 耿马| 普安县| 石台县| 淳化县| 宝应县| 怀安县| 陆河县| 视频| 封丘县| 大荔县| 土默特右旗| 隆子县| 连江县| 涪陵区| 惠来县| 陇南市| 二连浩特市| 东乌| 奈曼旗| 泰州市|