zoukankan      html  css  js  c++  java
  • Spring MVC中注解的简介

    参考网址:  https://blog.csdn.net/a67474506/article/details/46361195

    @RequestMapping映射请求

    SpringMVC 使用 @RequestMapping 注解为控制器指定可以处理那些URL 请求

    @RequestMapping

    – 类定义处:提供初步的请求映射信息。相对于 WEB 应用的根目录.

    – 方法处:提供进一步的细分映射信息。相对于类定义处的 URL。若类定义处未标注 @RequestMapping,则方法处标记的 URL 相对于WEB 应用的根目录.

    DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理方法.

    @RequestMapping 除了可以使用请求 URL 映射请求外,还可以使用请求方法、请求参数及请求头映射请求.

    @RequestMapping限定请求方法、请求参数、请求头
    /** 
         * 接收GET请求 
         * @return 
         */  
        @RequestMapping(value="/get",method = RequestMethod.GET)  
        public String get(){  
            System.out.println("get");  
            return "get";  
        }  
      
        /** 
         * 接收POST请求 
         * @return 
         */  
        @RequestMapping(value="/post",method = RequestMethod.POST)  
        public String post(){  
            System.out.println("post");  
            return "post";  
        }  
          
        /** 
         * 只接收 name 参数 
         * @return 
         */  
        @RequestMapping(value="/params",params="name")  
        public String params(String name){  
            System.out.println("hello "+name);  
            return "helloworld";  
        }  
          
        /** 
         * 只接收请求头中 Content-Type 为 text/html;charset=UTF-8的请求 
         * @return 
         */  
        @RequestMapping(value="/headers",headers="Content-Type:text/html;charset=UTF-8")  
        public String headers(){  
            System.out.println("headers");  
            return "helloworld";  
        }  

     @RequestMapping匹配符

    – ?:匹配文件名中的一个字符

    – *:匹配文件名中的任意字符

    – **:** 匹配多层路径

    实例:

    URL : /user/*/create

    -- /user/bigsea/create 、 /user/sea/create 等URL

    URL : /user/**/create

    -- /user/big/sea/create 、 /user/sea/big/create 等URL

    URL : /user/create??

    -- /user/createaa 、/user/createbb

    @PathVariable 注解

    带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义

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

    /** 
         * http://localhost:8080/springmvc/hello/pathVariable/bigsea 
         * http://localhost:8080/springmvc/hello/pathVariable/sea 
         * 这些URL都会执行此方法并且将<b>bigsea</b>,<b>sea</b>作为参数,传递到name字段 
         * @param name 
         * @return 
         */  
        @RequestMapping("/pathVariable/{name}")  
        public String pathVariable(@PathVariable("name")String name){  
            System.out.println("hello "+name);  
            return "helloworld";  
        } 

    @RequestParam 绑定请求参数

    在处理方法入参处使用 @RequestParam 可以把请求参数传递给请求方法

    – value:参数名

    – required:是否必须。默认为 true, 表示请求参数中必须包含对应的参数,若不存在,将抛出异常

    /** 
         * 如果 required = true 则表示请求参数对应的 字段 必须存在.如果不存在则会抛出异常<br/> 
         * @param firstName 可以为null 
         * @param lastName 不能为null .为null报异常 
         * @param age age字段表示如果没有 age 参数 则默认值为 0  
         * @return 
         */  
        @RequestMapping("/requestParam")  
        public String requestParam(@RequestParam(value="firstName",required=false)String firstName,  
                @RequestParam( value="lastName" ,required = true) String lastName,  
                @RequestParam(value="age",required = false ,defaultValue="0")int age) {  
            System.out.println("hello my name is " + (firstName == null ? "" : firstName)  
                                            + lastName + "," + age +" years old this year");  
            return "helloworld";  
        }  

    @RequestHeader 获取请求头

    请求头包含了若干个属性,服务器可据此获知客户端的信息,通过 @RequestHeader 即可将求头中的属性值绑定到处理方法的入参中

    /** 
     * 获取请求头中的信息 
     * @RequestHeader 也有value, required, defaultValue三个参数 
     * @param userAgent 
     * @param cookie 
     * @return 
     */  
    @RequestMapping("/requestHeader")  
    public String requestHeader(@RequestHeader("User-Agent")String userAgent,@RequestHeader("Cookie")String cookie){  
        System.out.println("userAgent:["+userAgent+"]");  
        System.out.println("cookie:["+cookie+"]");  
        return "helloworld";  
    }  

    @CookieValue 获取 cookie值

    /** 
         * 使用@CookieValue 绑定cookie值<br/> 
         * 注解@CookieValue 也有value, required, defaultValue三个参数 
         * @param session 
         * @return 
         */  
        public String cookieValue(@CookieValue(value = "JSESSIONID", required= false)String session){  
            System.out.println("JESSIONID:["+session+"]");  
            return "helloworld";  
        }  

     spring mvc中还有很多的注解, 后面会接着写,

  • 相关阅读:
    Python3爬虫系列:理论+实验+爬取妹子图实战
    虚机安装后无网卡、网卡驱动
    Linux运维工程师面试题整理
    睡眠或者重启windows,无法ssh连接或者pingVMware的虚机
    W10: Warning: Changing a readonly file使用vi/vim报错问题解决
    keyboard-interactive authentication with the ssh2 server failed 的SecureCRT报错解决
    公网访问内网实现(内网穿透)
    Linux内网时钟同步问题(ntp和chrony)
    xshell的快捷复制粘贴设置
    Linux中shell去除空行的几种方法
  • 原文地址:https://www.cnblogs.com/xumBlog/p/8715140.html
Copyright © 2011-2022 走看看