@RequestMapping注解

@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

1 @RequestMapping常用属性

1.1 value属性

指定控制器的方法URI

/**
 * 控制器
 * 一点教程网 - www.yiidian.com
 */
@Controller
@RequestMapping("/yiidian")
public class HelloController{
    @RequestMapping("/hello.do")
    public void hello(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.getWriter().write("Hello-www.yiidian.com");
    }
}

如果类和方法上都指定value值,那么方法的最终方法路径为:http://localhost:8080/yiidian/hello.do 

1.2 method属性

 指定请求的method类型,可以接受GET,POST,PUT,DELETE等

@RequestMapping(value = "/hello.do",method = RequestMethod.GET)
public void hello(HttpServletRequest request,HttpServletResponse response) throws IOException {
     response.getWriter().write("Hello-www.yiidian.com");
}

1.3 consumes、produces属性

consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。

@RequestMapping(value = "/hello.do",consumes = "application/json",produces = "application/json")
public void hello(HttpServletRequest request,HttpServletResponse response) throws IOException {
    response.getWriter().write("Hello-www.yiidian.com");
}

1.4 params、headers属性

params:指定request中必须包含某些参数值,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

params示例:

@RequestMapping(value = "/hello.do",params = "id=10")
public void hello(HttpServletRequest request,HttpServletResponse response) throws IOException {
   response.getWriter().write("Hello-www.yiidian.com");
}

headers示例:

@RequestMapping(value = "/hello.do",headers = "Referer=http://www.yiidian.com/")
public void hello(HttpServletRequest request,HttpServletResponse response) throws IOException {
   response.getWriter().write("Hello-www.yiidian.com");
}

 

推荐好课