SpringMVC_RequestMapping

@RequestMapping修饰

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

- 在控制器的类定义及方法定义处都可标注

- @RequestMapping:

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

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

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

package com.smart.handlers;

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

/**
 * @author chenpeng
 * @date 2018/6/9 18:24
 */
@Controller(value = "/springMVC")
public class SpringMVCTest {
    private final String SUCCESS = "success";

    /**
     * 1、@RequestMapping 除了修饰方法还可以修饰类
     * 2、
     * 1)、类定义处:提供初步的请求映射信息,相当于 WEB 应用的根目录
     * 2)、方法处:挺浓进一步的细分映射信息,
     *      相对于类定义处的URL信息,若类定义处未标注 @RequestMapping ,则方法处标注的URL相对于WEB应用的根目录。
     * @return
     */
    @RequestMapping(value = "/testRequestMapping")
    public String testRequestMapping(){
        System.out.println("testRequestMapping");
        return SUCCESS;
    }


}

@RequestMapping请求方式

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

— @RequestMapping 的value、method、params 及 heads 分别表示请求URL、请求方法、请求参数及请求头的映射条件,他们之间的关系是 的关系,联合使用多个条件,可以让请求映射更加精确化

— params和heads支持简单的表达式

    - param1:表示请求必须包含名为param1的请求参数

    - !param1:表示请求不能包含名为param1的请求参数

    - param1 != value1: 表示请求包含名为param1的请求参数,但是其值不能为value1

   - {“param1 = value1”,“param2”}:请求必须包含名为param1和param2的两个请求参数,且param1的值必须为value1

package com.smart.handlers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

/**
 * @author chenpeng
 * @date 2018/6/9 18:24
 */
@Controller
@RequestMapping("/springmvc")
public class SpringMVCTest {
    private  final String SUCCESS = "success";

    /**
     * 1、@RequestMapping 除了修饰方法还可以修饰类
     * 2、
     * 1)、类定义处:提供初步的请求映射信息,相当于 WEB 应用的根目录
     * 2)、方法处:挺浓进一步的细分映射信息,
     *      相对于类定义处的URL信息,若类定义处未标注 @RequestMapping ,则方法处标注的URL相对于WEB应用的根目录。
     * @return
     */
    @RequestMapping("/testRequestMapping")
    public String testRequestMapping(){
        System.out.println("testRequestMapping");
           return SUCCESS;
    }

    /**
     * 常用:使用method属性来指定请求方式
     * @return
     */
    @RequestMapping(value = "/testMethod",method = RequestMethod.POST)
    public String testMethod(){
        System.out.println("testMethod");
        return SUCCESS;
    }

    /**
     * 了解:可以使用 params 和 headers 来更加精确的映射请求,params 和 headers支持简单的表达式
     * @return
     */
    @RequestMapping(value = "testParmsAndHeaders",
                    params = {"username","age!=10"},
                    headers = {"Accept-Language=zh-CN,zh;q=0.8"})
    public String testParmsAndHeaders(){
        System.out.println("testParmsAndHeaders");
        return SUCCESS;
    }
}


Ant风格资源地址

Ant风格资源地址支持3种匹配符:

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

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

- ** :匹配多层路径

@RequestMapping还支持Ant风格的URL


posted @ 2018-06-12 19:08  惶者  阅读(135)  评论(0编辑  收藏  举报