日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

@requestMapping注解的常用參數

作者:仰望星空的快樂 更新時間: 2022-05-10 編程語言

目錄

1.@RequestMapping("")

2.RequestMapping用在類上? ? ? ?

3.如果有兩個控制器攔截了同一個請求,

4.RequestMapping? ?method屬性,?不匹配報405

5.RequestMapping? ?? restful風格占位符傳遞參數

6.RequestMapping? ? ?value 的通配符? 不匹配報400

7.RequestMapping? ?params? ?參數中必須有某個或沒有參數

8.requestmapping? ? headers? 請求頭中必須有某個或沒有參數

9.@requestheader

10.@cookievalue??

? 11.@requestparam注解


1.@RequestMapping("")

1.RequestMapping用在方法上

表示攔截什么值的請求,有點像servlet的@webservlet注解,都是攔截特定的請求

package org.hxut.zyk.com.hxut.zyk.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//設置為ioc容器類
@Controller
@RequestMapping("/target")
public class Hellocontroller {
    //攔截只寫了一個/的請求      http://localhost:8080/Springmvc_demo1_war_exploded/
    @RequestMapping("/")
    public String firstpage()
    {
        return "index";
    }
//攔截/target請求            http://localhost:8080/Springmvc_demo1_war_exploded/target
    @RequestMapping("/target")
    public String Gettarget()
    {
        return "target";
    }
}

http://localhost:8080/Springmvc_demo1_war_exploded/target? ?即可訪問target.html頁面

2.RequestMapping用在類上? ? ? ?

? ? ? 表示要加上/后的內容才可以訪問 http://localhost:8080/Springmvc_demo1_war_exploded/target/target 可以訪問target頁面

package org.hxut.zyk.com.hxut.zyk.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//設置為ioc容器類
@Controller
//在類上,表示要加上/后的內容才可以訪問 http://localhost:8080/Springmvc_demo1_war_exploded/target
@RequestMapping("/target")
public class Hellocontroller {
    //攔截只寫了一個/的請求      http://localhost:8080/Springmvc_demo1_war_exploded/
    @RequestMapping("/")
    public String firstpage()
    {
        return "index";
    }
    @RequestMapping("/target")
    public String Gettarget()
    {
        return "target";
    }
}

3.如果有兩個控制器攔截了同一個請求,

則會報錯,即添加了controller的類中,有兩個方法,他們@requestmapping注解的value值相同。

4.RequestMapping? ?method屬性,?不匹配報405

設置匹配的請求類型 ,post ,get ,delete 之類的,默認是都可以,

@RequestMapping(value = "/employee/{id}",method = RequestMethod.GET)  只接收get請求

@GetMapping(value = "/targe?3")?要求必須為get請求

5.RequestMapping? ?? restful風格占位符傳遞參數

普通風格? ? ?/delete?id=1

restful風格? /delete/1

HTML頁面

控制器

 @RequestMapping(value ={ "/target5/{username}/{pwd}"})
//    @PathVariable注解的作用是將username從路徑中拿出來,并賦值給變量uname
    //    @PathVariable注解的作用是將pwd從路徑中拿出來,并賦值給變量pwd
    public String disaplayrestful(@PathVariable("username") Integer uname,@PathVariable("pwd") String pwd) {
        System.out.println(uname);
        System.out.println(pwd);
        return "target";
    }

6.RequestMapping? ? ?value 的通配符? 不匹配報400

value={"/a?a/testant"}? ?任意的單個字符

value={"/abba/testant"}錯誤

value={"/aca/testant"}正確

value={"/aaa/testant"}? ?正確??

value={"/a*a/testant"}? ?任意的多個字符

/aaaaaaaaa/testant"正確

"/aba/testant"? 正確

"/aa/testant"? ? ?錯誤

value={"test/**/tesatext"}只要a和b 能匹配上,不管** 中寫了什么,都可以訪問

?test/asfdsfasdf/sfdsfd/testant? 正確

7.RequestMapping注解的params

傳過來的參數一定要帶有,或者不帶有某個參數? ?不匹配報400

??params={"username"} 一定要帶有username 參數

??????????????????{"!username"}??一定不帶有username 參數

?????????????????{"username"=admin} 有username參數,且值必須是admin

????????????????{"username"!=admin}有username參數,且值不能是admin 或者 沒有username參數

?????????????????{"username","psw"}? 必須有username和psw?

@requestMapping(value = "/target3", params = {"username!=1234"})
只有請求中有username這個參數,而且值不等于1234才可以訪問本界面

8.requestmapping的headers

請求頭某個信息的必須為規定值,

@GetMapping(headers = {"Host=localhost:8080"})  必須是localhost且是8080端口

這種鍵值對的是請求頭

9.一個控制方法可以攔截多個請求

    @RequestMapping(value = {"/target", "/target2"},method = {RequestMethod.GET})
    public String disaplaytarget() {
        return "target";
    }

9.@requestheader

要求請求頭中必須有某個參數

10.cookievalue??

要求cookie中必須有某個參數

? 11.@requestparam注解

?@RequestParam(value = "s",required = true,defaultValue = "defaultvalue1")

value 用于獲取請求地址中名為s的參數

required? 該參數是否是必須的

default? 默認值 當沒有傳遞這個參數,而且 required為true時,給這個變量賦值


requestparam注解
用戶名
    @RequestMapping(value = {"requestparam_zhujie"})
    public String get_requestparam_zhujie(
//            value  指定為形參賦值的請求參數的參數名
//           required  設置是否必須傳輸此請求,默認為true,若沒有設置defalut,且沒有傳輸該參數,會報400,只傳參數名,沒有參數值,不報錯
//            defaultValue 當value所指定的請求參數沒有傳輸時,使用默認值
            @RequestParam(value = "uunamed",required = true,defaultValue = "zyk")
            String uname,
            @RequestParam(value = "s",required = true,defaultValue = "default")
            String upwd,
            String[] hobbis2,
            @RequestHeader(value="Host")
                    String address)
    {     System.out.println("requestparam獲取注解");
        System.out.println("獲取uname"+uname);
        System.out.println("沒有傳這個值,應該使用注解設置的default"+upwd);
        System.out.println(Arrays.toString( hobbis2));
        return "test_param";
    }

結果:

例子:params = {"username!=1234"}, headers = {"Host=localhost:8080"}) 請求一定是/targe?3 ?是任意格式字符 且一定要是get請求,要么有params參數,且值不是1234,要么沒有該參數,請求頭的host一定是本機

原文鏈接:https://blog.csdn.net/sharesb/article/details/124334655

欄目分類
最近更新