SpringBoot2.0---------------10、SpringBoot普通参数与基本注解

1. 注解


@PathVariable:映射 URL 绑定的占位符,通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的传入参数中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx”) 绑定到操作方法的传入参数中;

在这里插入图片描述
在这里插入图片描述


@RequestHeader:@RequestHeader 是获取请求头中的数据如图所示,通过指定参数 value 的值来获取请求头中指定的参数值。其他参数用法和 @RequestParam 完全一样;

在这里插入图片描述
在这里插入图片描述


@ModelAttribute:


@RequestParam:获取请求参数

在这里插入图片描述
请求映射对应的代码:

    <a href="/car/3/owner/lisi?age=18&inters=basketball&inters=game">/car/{id}/owner/{username}</a>


@MatrixVariable:矩阵变量,矩阵变量应该绑定在路径变量中
/car/{path}?xxx=xxx&aaa=ccc : queryString 查询字符串 使用@RequestParam查询path所携带的参数
/car/{path;low=34;brand=byd,audi,yd}: 矩阵变量,使用@MatrixVariable查询path所携带参数,path中携带两个属性,路径与属性之间以及属性与属性之间用分号隔开,一个属性中对应多个属性值之间用逗号隔开,写法如下:

<a href="/car/sell;low=34;brand=byd,audi,yd">@MatrixVariable(矩阵变量)</a><br>
<a href="/car/sell;low=34;brand=byd;brand=audi;brand=yd">@MatrixVariable(矩阵变量)</a>
<a href="/boss/1;age=20/2;age=10">@MatrixVariable(矩阵变量)/boss/{bossId}/{empId}</a>
  //1、语法: 请求路径:/cars/sell;low=34;brand=byd,audi,yd
    //2、SpringBoot默认是禁用了矩阵变量的功能
    //      手动开启:原理。对于路径的处理。UrlPathHelper进行解析。
    //              removeSemicolonContent(移除分号内容)支持矩阵变量的
    //3、矩阵变量必须有url路径变量才能被解析
    @GetMapping("/cars/{path}")
    public Map carsSell(@MatrixVariable("low") Integer low,
                        @MatrixVariable("brand") List<String> brand,
                        @PathVariable("path") String path){
        Map<String,Object> map = new HashMap<>();

        map.put("low",low);
        map.put("brand",brand);
        map.put("path",path);
        return map;
    }

    // /boss/1;age=20/2;age=10

    @GetMapping("/boss/{bossId}/{empId}")
    public Map boss(@MatrixVariable(value = "age",pathVar = "bossId") Integer bossAge,
                    @MatrixVariable(value = "age",pathVar = "empId") Integer empAge){
        Map<String,Object> map = new HashMap<>();

        map.put("bossAge",bossAge);
        map.put("empAge",empAge);
        return map;

    }

面试题:页面开发:cookie禁用了,session里面的内容怎么使用:
给session保存了某个数据,如session.set(a,b);每个session有一个jsessionid被保存在cookie里面;cookie每次发请求都会携带,若cookie没有被禁用,通过cookie中的jsessionid就可以找到session对象,而后通过session对象的get方法就能找打session里面的内容。
若cookie被禁,则就无法通过jsessionid获取session对象。因此通过矩阵变量的方式获取session中的内容:
例如:通过URL重写:/abc;jsessionid=xxx,把cookie是的值使用矩阵变量的方式进行传递


@CookieValue:获取Cookie值


@RequestBody:获取请求体的值,只有Post请求才有请求体

在这里插入图片描述
/save表单提交代码

<form action="/save" method="post">
    测试@RequestBody获取数据</br>
    用户名:<input name="userName"/><br>
    邮箱:<input name="email"/>
    <input type="submit" value="提交">
</form>


@RequestAttribute注解:获取request域中所保存的属性值

@Controller
public class RequestController {

    @GetMapping("/goto")
    public String goToPage(HttpServletRequest request){
        request.setAttribute("msg","成功了。。。");
        request.setAttribute("code",200);
        return "forward:success"; //转发到/success请求
    }

    @ResponseBody
    @GetMapping("/success")
    public Map success(@RequestAttribute("msg") String msg,
                       @RequestAttribute("code")Integer code,
                       HttpServletRequest request){
        Object msg1 = request.getAttribute("msg");

        Map<String,Object> map = new HashMap<>();
        map.put("reqMethod",msg1);
        map.put("annotation",msg);

        return map;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值