開始學SpringMVC之RequestMapping詳解

来源:https://www.cnblogs.com/hsiang/archive/2019/08/18/11373629.html
-Advertisement-
Play Games

本文以一個簡單的小例子,簡述SpringMVC開發中RequestMapping的相關應用,僅供學習分享使用,如有不足之處,還請指正。 ...


本文以一個簡單的小例子,簡述SpringMVC開發中RequestMapping的相關應用,僅供學習分享使用,如有不足之處,還請指正。

什麼是RequestMapping?

RequestMapping是一個用來處理請求地址映射的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。

RequestMapping的常見用法

1. RequestMapping預設值

如下所示:預設屬性為value,即預設映射路徑

 1 /**
 2      * 預設值,即為value對應的值
 3      * @RequestMapping("Mapping01")
 4      * @return
 5      */
 6     @RequestMapping("/Mapping01")
 7     public ModelAndView Mapping01(){
 8         System.out.println("Mapping01被調用了。。。。");
 9         ModelAndView mav=new ModelAndView();
10         mav.addObject("msg", "HelloWorld,HelloSpringMVC!!!");
11         //mav.setViewName("WEB-INF/jsps/HelloWorld.jsp");
12         mav.setViewName("HelloWorld");
13         return mav;
14     }

2. ReqeustMapping的value和method屬性

value表示映射的路徑,是數組類型,可以映射多個路徑,method表示前端請求的方式,如下所示:表示兩個路徑均可訪問,且支持GET,POST兩種方式訪問。

 1 /**
 2      * value是一個數組,可以指定不同的路徑
 3      * method也是一個數組,可以指定不同的訪問方式
 4      * @return
 5      */
 6     @RequestMapping(value={"/Mapping02","Mapping0B"},method={RequestMethod.GET,RequestMethod.POST})
 7     public ModelAndView Mapping02(){
 8         System.out.println("Mapping02被調用了。。。。");
 9         ModelAndView mav=new ModelAndView();
10         mav.addObject("msg", "HelloWorld,HelloSpringMVC!!!");
11         //mav.setViewName("WEB-INF/jsps/HelloWorld.jsp");
12         mav.setViewName("HelloWorld");
13         return mav;
14     }

3. RequestMapping中的params

params表示訪問能夠獲取的參數,如下所示:表示支持GET方式訪問,且必須有uname參數才可以

 1 /**
 2      * value指定訪問的路徑,method指定訪問的方式必須是GET方式
 3      * 且參數中必須有一個uname
 4      * @return
 5      */
 6     @RequestMapping(value="/Mapping03",method=RequestMethod.GET,params="uname")
 7     public ModelAndView Mapping03(String uname){
 8         System.out.println("Mapping03被調用了。。。。");
 9         ModelAndView mav=new ModelAndView();
10         mav.addObject("msg", uname+">>>>>HelloWorld,HelloSpringMVC!!!");
11         //mav.setViewName("WEB-INF/jsps/HelloWorld.jsp");
12         mav.setViewName("HelloWorld");
13         return mav;
14     }

如下所示:表示訪問路徑中必須有uname和uage兩個參數,且uage的值必須等於13才可以訪問

 1 /**
 2      * value指定訪問的路徑,method指定訪問的方式必須是GET方式
 3      * 且參數中必須有一個uname,和uage,且uage必須等於13
 4      * @return
 5      */
 6     @RequestMapping(value="/Mapping04",method=RequestMethod.GET,params={"uname","uage=13"})
 7     public ModelAndView Mapping04(String uname,int uage){
 8         System.out.println("Mapping04被調用了。。。。");
 9         System.out.println("uname="+uname+" , uage="+uage);
10         ModelAndView mav=new ModelAndView();
11         mav.addObject("msg", uname+">>>>>HelloWorld,HelloSpringMVC!!!");
12         //mav.setViewName("WEB-INF/jsps/HelloWorld.jsp");
13         mav.setViewName("HelloWorld");
14         return mav;
15     }

4. RequestMapping中的headers

headers表示請求訪問的頭部信息,必須要滿足指定的方式才可以訪問。如下所示:

 1 /**
 2      * headers:指定請求訪問的Header信息,必須要滿足指定的方式才可以被訪問
 3      * consumes: 指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;
 4      * @return
 5      */
 6     @RequestMapping(value="/Mapping05",headers="Accept=text/html,application/xhtml+xml,application/xml;")
 7     public ModelAndView Mapping05(){
 8         System.out.println("Mapping05被調用了。。。。");
 9         ModelAndView mav=new ModelAndView();
10         mav.addObject("msg", ">>>>>HelloWorld,HelloSpringMVC!!!");
11         //mav.setViewName("WEB-INF/jsps/HelloWorld.jsp");
12         mav.setViewName("HelloWorld");
13         return mav;
14     }

 5. RequestMapping中的produces

produces表示返回的Content-Type,如下所示:返回的Content-Type表示application/json的格式

 1 /**
 2      * 方法僅處理request請求中Accept頭中包含了"application/json"的請求,
 3      * 同時指定返回的內容類型(Content-Type)為application/json;
 4      * @return
 5      */
 6     @RequestMapping(value="/Mapping06",produces="application/json")
 7     @ResponseBody
 8     public String[] Mapping06(){
 9         System.out.println("json 被調用。。。。。");
10         String[] arr=new String[]{"小明","小花"};
11         return arr;
12     }

Restful方式獲取值

根據路徑提取參數,必須在參數中增加@PathVariable("uname")標識

如下所示:

 1 /**
 2      * 採用Restful方式傳遞參數
 3      * @param name
 4      * @return
 5      */
 6     @RequestMapping("/Mapping07/{uname}")
 7     public String Mapping07(@PathVariable("uname") String name,Model model){
 8         System.out.println("uname="+name);
 9         model.addAttribute("msg",  name+ ">>>>>HelloWorld,HelloSpringMVC!!!");
10         return "HelloWorld";
11     }

訪問如下圖所示:

另外,本例中使用了視圖解析器,需要進行配置,如下所示:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4 xmlns:context="http://www.springframework.org/schema/context"
 5 xmlns:mvc="http://www.springframework.org/schema/mvc"
 6 xsi:schemaLocation="http://www.springframework.org/schema/beans
 7  http://www.springframework.org/schema/beans/spring-beans.xsd
 8  http://www.springframework.org/schema/context
 9  http://www.springframework.org/schema/context/spring-context.xsd
10  http://www.springframework.org/schema/mvc
11  http://www.springframework.org/schema/mvc/spring-mvc.xsd">
12       <!-- 配置註解的掃描 -->
13      <context:component-scan base-package="com.hex.second"></context:component-scan>
14      <!-- 支持MVC的註解 -->
15      <mvc:annotation-driven ></mvc:annotation-driven>
16      <!-- 靜態資源的支持 -->
17      <mvc:default-servlet-handler/>
18       <!-- 配置視圖解析器 -->
19     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
20     id="internalResourceViewResolver">
21         <property name="prefix" value="/WEB-INF/jsps/"/>
22         <property name="suffix" value=".jsp"/>
23     </bean>
24 </beans>

備註

千秋無絕色,悅目是佳人。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 小註:此教程可能有很多彎路,但是最終是肯定安裝成功了的,一個問題就是剛開始安裝編譯的指令版本好像不對,但是後面糾正過來了,但是此教程一共遇到了 十多個問題,也一併解決了,具有一定的借鑒意義,還有(django)開頭是因為此刻處在 vir...虛擬環境中,不影響。(提醒:安裝這個的或許也在搭建 Dja ...
  • 電腦硬體發展史 參考鏈接 \ https://www.cnblogs.com/Dominic Ji/articles/10987788.html 電腦硬體 電腦分為五大組成部分,分別為:控制器、運算器、存儲器、輸入設備和輸出設備。其中控制器+運算器是電腦的中央處理器(CPU),相當於人類的大 ...
  • 1. HashMap的內部實現原理是什麼? HashMap內部實現原理是數組+鏈表,通過散列演算法將key值散列到數組中,如果到相同的位置,則通過拉鏈法解決散列衝突。在JDK8中新增了紅黑樹結構,當HashMap中的散列衝突鏈表結構超過8個數據時,會從鏈表結構轉換為紅黑樹結構。 2. HashMap的 ...
  • 系統運行 經過長時間的編碼實現,我們的主體模塊已經大致完成,因為之前我們都是零散的對各個微服務自行測試,接下來,我們需要將所有的服務模塊進行聯調測試,Let's do it. 清除測試數據&測試文件 我們在實現各個服務的過程中,添加了不少的測試文件和測試數據,為了不影響我們最終的展示效果,我們先將之 ...
  • 冒泡排序 原理: 取序列的第一個元素,與序列剩餘的元素比較,如果第一個元素大於剩餘序列的某個元素,那麼就交換他們的位置。 代碼展示: 選擇排序 原理: 首先在未排序的序列中找到最小或最大的元素,存放到序列的起始或末尾位置,然後在從剩餘未排序元素中繼續尋找最小或最大的元素,然後放到剩餘未排序序列的起始 ...
  • 一 什麼是進程 ​ 進程:正在進行的一個過程或者說一個任務。而負責執行任務則是cpu。 ​ 舉例(單核+多道,實現多個進程的併發執行): ​ 太白金星在一個時間段內有很多任務要做:python備課的任務,寫書的任務,交女朋友的任務,王者榮耀上分的任務, ​ 但太白金星同一時刻只能做一個任務(cpu同 ...
  • 今天是第一天學習Python課程,主要從電腦基礎,Python的歷史,環境 ,變數,常量,註釋,用戶交互,基礎數據類型 ,簡單的if條件語句和while迴圈語句這幾個來學習,重點的掌握內容是python的環境,還有python2和python3的區別,常量等。、 1.電腦基礎 cpu:相當於人的 ...
  • Dbutils,db utils,顧名思義,是一個資料庫工具,體積很小,算是一個dao層的小框架。 DbUtils是Apache的開源項目,對JDBC進行了輕量級封裝,極大地簡化了JDBC編程。 DbUtils可以將結果集映射到JavaBean中,這一點和Hibernate很相似,但比Hiberna ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...