架構小白到磚家-05-【用戶請求問題】-springmvc接收請求

springboot工程已經創建好了,咱們的前期準備工作算是告一段落,下面將開始真正的進行單應用技術研究工作。咱們再回顧一下,web應用解決的第一個大問題,“處理用戶業務請求接收問題”。springmvc是一個專門解決這個問題的框架,並且使用的URL的自動解析規則,不用維護像struts那樣龐大的配置表,並且這樣做還有一個好處,可以利用URL和http的技術實現RESFul風格的請求處理方式,讓請求本身附帶更多的信息。那麼springmvc怎麼使用呢?
在這裏插入圖片描述
由於咱們不用再創建最原始的servlet處理用戶請求了,springmvc一般把接收請求的java類叫做controller,所以咱們先創建一個TestController的class。前面我們已經說過了整個web應用的對象都是通過spring進行了管理,spring的管理方式已經發展到使用註解的方式,那麼咱們使用springmvc的方式,肯定也是通過註解的形式。下面就來看看常用的springmvc的註解有哪些?

首先要告訴spring咱們的controller需要被管理,需要使用@Controller。
然後還記得咱們說的URL規則就像寫信的通信地址(xx省xx市xx區xx街道x-x-x門牌號)嗎?那麼咱們先要告訴springmvc這個controller的根地址(xx省xx市xx區xx街道),然後就是具體的門牌號(類的方法)來接收這個請求,使用@RequestMapping。我們接到了請求和處理以後,還需要回信,爲了簡單我們直接返回文字內容,使用@ResponseBody 。後面咱們學習了怎麼回覆帶有豐富內容的信件,再進行補充。
在這裏插入圖片描述

已經創建好了處理請求的controller,咱們就可以按照編程界的慣例,說一句“hello world!”了。首先啓動咱們的web程序,就是那個Application.java,直接使用java的運行方式,直接run就可以了。然後就可以打開瀏覽器給應用發請求了,使用URL爲http://localhost:1000/test/hello,我們一會在來解釋URL的規則。最後就可以看到訪問這個地址,我們會得到應用返回的信息。
在這裏插入圖片描述

咱們還是簡單解釋下URL的規則,http表示通信協議,localhost表示咱們電腦的IP地址,1000是應用的端口號,test/hello就是咱們接收請求的一個具體地址。後面咱們在運維部署和安全的時候,再詳細的研究網絡相關技術。

web應用已經能夠接收用戶請求了,咱們就建立好了瀏覽器和應用的通信機制,但是又有新的問題,現在的請求非常簡單,只能固定的請求信息和反饋信息,怎麼才能傳遞動態的信息進行交流呢?比如咱們想告訴應用我的名字,該怎麼傳遞信息呢?這個時候咱們需要在URL的基礎上,添加信息參數,來傳遞一些動態數據。http協議已經提供了方法,就是在URL後面用【?】分割,然後通過key-value的方式添加參數,例如:http://localhost:1000/test/hello?name=Tom。那麼應用端該怎麼接受這個信息呢?springmvc可以自動將咱們controller的方法參數名稱跟URL中參數名稱相同的信息傳遞過來,所以controller中方法也需要添加一個name的參數。我們就把返回信息,改造成給name問好。
在這裏插入圖片描述
在這裏插入圖片描述

咱們能夠在交流的時候傳遞信息了,下面我們來看一個springmvc非常酷的功能,前面已經提到了RESTFul風格,讓http協議的URL傳遞更多的信息,那麼我們能不能把傳遞的信息直接包含在URL裏面呢?可以的,只需要稍微改下咱們上面的方法就可以了。告訴springmvc怎麼獲取URL中的信息,我們需要方法的URL上指明哪個信息需要處理,然後方法參數需要添加註解,表示這個參數需要獲取URL參數。
在這裏插入圖片描述
在這裏插入圖片描述

回顧總結,springmvc是來解決瀏覽器和應用之間請求處理問題,配置URL路徑,獲取請求參數,RESTFul風格的獲取參數,需要學習的註解有

@Controller,控制器註解,默認調用模板引擎,渲染頁面。
@RestController,默認返回json信息。
@RequestMapping,URL路徑映射。
@ResponseBody,制定URL返回json信息。
@PathVariable,RESTFul風格獲取URL參數。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章