@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");
}