最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于RequestMapping注解的作用說明

 更新時間:2022年01月07日 17:05:58   作者:小丸與小鹿  
這篇文章主要介紹了關(guān)于RequestMapping注解的作用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。

@RequestMapping注解的作用

@RequestMapping 是 Spring Web 應(yīng)用程序中最常被用到的注解之一。這個注解會將 HTTP 請求映射到 MVC 和 REST 控制器的處理方法上。并且一個處理請求地址映射的注解,可用在類或方法上。用于類上,表示類中的所有響應(yīng)請求的方法都是以該地址作為父路徑。

以下為@RequestMapping的源碼

package org.springframework.web.bind.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
    String name() default "";
    @AliasFor("path")
    String[] value() default {};
    @AliasFor("value")
    String[] path() default {};
    RequestMethod[] method() default {};
    String[] params() default {};
    String[] headers() default {};
    String[] consumes() default {};
    String[] produces() default {};
}

方法上:

請求 URL 的第二級訪問目錄。

屬性:

  • value:用于指定請求的 URL。它和 path 屬性的作用是一樣的。
  • method:用于指定請求的方式。
  • params:用于指定限制請求參數(shù)的條件。它支持簡單的表達(dá)式。要求請求參數(shù)的 key 和 value 必須和 配置的一模一樣。

例如:

  • params = {“accountName”},表示請求參數(shù)必須有
  • accountNameparams = {“moeny!100”},表示請求參數(shù)中 money 不能是 100。
  • headers:用于指定限制請求消息頭的條件。

注意:

以上四個屬性只要出現(xiàn) 2 個或以上時,他們的關(guān)系是與的關(guān)系。

作用:

用于建立請求URL和處理請求方法之間的對應(yīng)關(guān)系。

出現(xiàn)位置:

請求 URL 的第一級訪問目錄。此處不寫的話,就相當(dāng)于應(yīng)用的根目錄。寫的話需要以/開頭。 它出現(xiàn)的目的是為了使我們的 URL 可以按照模塊化管理:

例如:

賬戶模塊:

  • /account/add
  • /account/update
  • /account/delete …

訂單模塊:

  • /order/add
  • /order/update
  • /order/delete

案例

普通案例: 將@RequestMapping注解分別注釋在類和方法上,所以在前端寫鏈接的時候要寫完全的路徑(類上標(biāo)簽的路徑+方法標(biāo)簽上的路勁)

控制器的代碼塊:

/**
* RequestMapping 注解出現(xiàn)的位置
* @author 
* @Company http://www.ithiema.com
* @Version 1.0
*/
@Controller("accountController")
@RequestMapping("/account")
public class AccountController {
	@RequestMapping("/findAccount")
	public String findAccount() {
		System.out.println("查詢了賬戶。。。。");
		return "success";
	}
}

JSP中的代碼塊

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>requestmapping 的使用</title>
</head>
<body>
	<!-- 第一種訪問方式 -->
	<a href="${pageContext.request.contextPath}/account/findAccount" rel="external nofollow" >
		查詢賬戶
	</a>


	<!-- 第二種訪問方式 -->
	<a href="account/findAccount" rel="external nofollow" >查詢賬戶</a>
</body>
</html>

案例: 用于指定請求的方式,如果要求是get請求,那么在前端寫請求方式時的method=get,反之如果要求是post請求,前端的,medthod=post

控制器代碼塊:

/**
* 保存賬戶
* @return
*/
@RequestMapping(value="/saveAccount",method=RequestMethod.POST)
public String saveAccount() {
	System.out.println("保存了賬戶");
	return "success";
}

jsp代碼塊

<a href="account/saveAccount" rel="external nofollow" >保存賬戶,get 請求</a>
<form action="account/saveAccount" method="post">
<input type="submit" value="保存賬戶,post 請求">
</form>

注意: 當(dāng)使用 get 請求時,提示錯誤信息是 405,信息是方法不支持 get 方式請求

在這里插入圖片描述

params 屬性的示例: 用于指定限制請求參數(shù)的條件。它支持簡單的表達(dá)式。要求請求參數(shù)的 key 和 value 必須和 配置的一模一樣。 寫了這個屬性之后就一定要在前端發(fā)送請求的時候,前端就要有這個屬性,否則就無法訪問。控制器代碼塊:

/**
* 刪除賬戶
* @return
*/
@RequestMapping(value="/removeAccount",params= {"accountName","money>100"})
public String removeAccount() {
	System.out.println("刪除了賬戶");
	return "success";
}

jsp代碼塊:

<a href="account/removeAccount?accountName=aaa&money>100" rel="external nofollow" >刪除賬戶,金額 100</a>
<a href="account/removeAccount?accountName=aaa&money>150" rel="external nofollow" >刪除賬戶,金額 150</a>

注意:

當(dāng)我們點(diǎn)擊第一個超鏈接時,可以訪問成功。

當(dāng)我們點(diǎn)擊第二個超鏈接時,無法訪問。

如下圖:

在這里插入圖片描述

支持REST風(fēng)格的參數(shù): 代表性狀態(tài)傳輸 (REST) 是一種用于分布式超媒體系統(tǒng)(如萬維網(wǎng))的體系結(jié)構(gòu)樣式。 (以下測試代碼與@PathVariable聯(lián)用)

控制器代碼塊:

    @RequestMapping(value = "/testRequestMapping/{Id}")
    public String testRequestMapping(@PathVariable String Id){
        System.out.println("testRequestMapping執(zhí)行了"+Id);
        return "success";
    }

jsp前端代碼塊

<a href="account/testRequestMapping/21" rel="external nofollow" >@RequestMapping測試</a>

@RequestMapping注解的六個屬性詳解

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

RequestMapping注解有六個屬性

下面分成三類進(jìn)行說明

value, method

  • value:指定請求的實(shí)際地址,指定的地址可以是具體地址、可以RestFul動態(tài)獲取、也可以使用正則設(shè)置;
  • method:指定請求的method類型, 分為GET、POST、PUT、DELETE等;

consumesproduces

  • consumes:指定處理請求的提交內(nèi)容類型(Content-Type),例如application/json, text/html;
  • produces:指定返回的內(nèi)容類型,僅當(dāng)request請求頭中的(Accept)類型中包含該指定類型才返回;

params,headers

  • params:指定request中必須包含某些參數(shù)值是,才讓該方法處理。
  • headers:指定request中必須包含某些指定的header值,才能讓該方法處理請求。

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis多對多映射初識教程

    MyBatis多對多映射初識教程

    這篇文章重點(diǎn)給大家介紹mybatis多對多映射,多對多映射的例子也很常見,本文通過代碼實(shí)例相結(jié)合的方式給大家介紹mybatis多對多映射,需要的朋友參考下吧
    2016-08-08
  • Java8 日期和時間類的基本使用

    Java8 日期和時間類的基本使用

    這篇文章主要介紹了Java 日期和時間類的基本使用,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • Java編程中的一些常見問題匯總

    Java編程中的一些常見問題匯總

    這篇文章主要介紹了Java編程中的一些常見問題匯總,本文總結(jié)的都是一些Java代碼中比較典型的錯誤,需要的朋友可以參考下
    2014-09-09
  • java使用webuploader實(shí)現(xiàn)跨域上傳詳解

    java使用webuploader實(shí)現(xiàn)跨域上傳詳解

    目前初步接觸JAVA圖片上傳,用的webuploader。已經(jīng)跟后臺對接上,但是有個問題就是跨域請求,通過查找相關(guān)資料終于實(shí)現(xiàn)了,下面這篇文章主要給大家介紹了關(guān)于java使用webuploader實(shí)現(xiàn)跨域上傳的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • Java實(shí)現(xiàn)月餅的制作、下單和售賣功能

    Java實(shí)現(xiàn)月餅的制作、下單和售賣功能

    這篇文章主要介紹了Java實(shí)現(xiàn)月餅的制作、下單和售賣,借此機(jī)會,我們用Lambda實(shí)現(xiàn)一遍月餅制作,下單,售賣的開發(fā)設(shè)計(jì)模式,主要有制作月餅的工廠模式,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 淺談Java絕對布局

    淺談Java絕對布局

    這篇文章主要介紹了Java當(dāng)中的絕對布局,還舉了一個簡單的實(shí)例,需要的朋友可以參考下。
    2017-08-08
  • 阿里SpringBoot應(yīng)用自動化部署實(shí)現(xiàn)IDEA版Jenkins

    阿里SpringBoot應(yīng)用自動化部署實(shí)現(xiàn)IDEA版Jenkins

    這篇文章主要為大家介紹了阿里SpringBoot應(yīng)用自動化部署實(shí)現(xiàn)IDEA版Jenkins過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Java深入淺出數(shù)組的定義與使用上篇

    Java深入淺出數(shù)組的定義與使用上篇

    數(shù)組是有序的元素序列,若將有限個類型相同的變量的集合命名,那么這個名稱為數(shù)組名。組成數(shù)組的各個變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時也稱為下標(biāo)變量。數(shù)組是在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式
    2022-03-03
  • java實(shí)現(xiàn)oracle插入當(dāng)前時間的方法

    java實(shí)現(xiàn)oracle插入當(dāng)前時間的方法

    這篇文章主要介紹了java實(shí)現(xiàn)oracle插入當(dāng)前時間的方法,以實(shí)例形式對比分析了java使用Oracle操作時間的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • SpringBoot集成yitter-idgenerator(雪花漂移)分布式Id自增的實(shí)現(xiàn)

    SpringBoot集成yitter-idgenerator(雪花漂移)分布式Id自增的實(shí)現(xiàn)

    本文主要介紹了SpringBoot集成yitter-idgenerator(雪花漂移)分布式Id自增的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

沈阳市| 南和县| 沁源县| 宁津县| 建昌县| 理塘县| 韶关市| 津市市| 台前县| 洮南市| 洛宁县| 秦皇岛市| 宁津县| 麻栗坡县| 林甸县| 宾川县| 罗平县| 贡山| 拜泉县| 英德市| 临颍县| 齐河县| 乌兰察布市| 津南区| 沙雅县| 大同县| 汨罗市| 龙岩市| 黎城县| 宿州市| 敖汉旗| 辛集市| 隆化县| 湄潭县| 房山区| 涟源市| 棋牌| 吕梁市| 皮山县| 同江市| 海晏县|