@RequestMapping
看看注解源码,在那几个位置
就近?
协作?
常用方法:method=RequestMethod.GET/method=RequestMethod.POST
RequestMapping中限定请求参数映射:params
@RequestMapping(value="/testParams",params={"email","tel!=110"},method=RequestMethod.GET)
public String testParams()
{
System.out.println("=====testParams");
return "ok";
}
RequestMapping中限定请求头映射:headers
@RequestMapping(value="/testHeaders",headers={"Host=localhost:8081"},method=RequestMethod.GET)
public String testHeaders()
{
System.out.println("=====testHeaders");
return "ok";
}
URL路径映射
HTTP协议查看
普通URL映射
Ant风格URL映射
@RequestMapping(value="/testAntStyle**/**/q",method=RequestMethod.GET)
@RequestMapping(value="/testAntStyle??",method=RequestMethod.GET)
@RequestMapping(value="/testAntStyle*",method=RequestMethod.GET)
public String testAntStyle()
{
System.out.println("=====testAntStyle");
return "ok";
}
? 匹配一个字符
* 匹配零个或多个字符
** 匹配零个或多个路径
@PathVariable占位符URL映射
@RequestMapping(value="/users/{userId}")
@RequestMapping(value=“/users/{userId}/create”)
@RequestMapping(value="/users/{userId}/topics/{topicId}")
@PathVariable可以提取URI模板模式中的{×××}中的×××变量。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
hello:<a href="${pageContext.request.contextPath}/hello">hello</a>
<hr>
testParams:<a href="${pageContext.request.contextPath}/testParams?age=26&tel=112">testParams</a>
<hr>
testHeaders:<a href="${pageContext.request.contextPath}/testHeaders">testHeaders</a>
<hr>
testAntStyle:<a href="${pageContext.request.contextPath}/testAntStylexxxxx">testAntStyle</a>
<hr>
testPathVariable:<a href="${pageContext.request.contextPath}/testPathVariable/1022">testPathVariable</a>
<hr>
<fieldset>
REST风格:<br>
POST:<br>
<form action="${pageContext.request.contextPath}/order" method="post">
<input type="submit" value="post_commit">
</form>
DELETE:<br>
<form action="${pageContext.request.contextPath}/order/1022" method="post">
<input type="hidden" name="_method" value="DELETE">
<input type="submit" value="delete_commit">
</form>
PUT:<br>
<form action="${pageContext.request.contextPath}/order/1022" method="post">
<input type="hidden" name="_method" value="PUT">
<input type="submit" value="put_commit">
</form><br>
GET:<a href="${pageContext.request.contextPath}/order/1022">testGet</a>
</fieldset>
<hr>
testRequestParam:<a href="${pageContext.request.contextPath}/testRequestParam?age=26&roleId=11&roleId=12">testRequestParam</a>
<hr>
testRequestHeader:<a href="${pageContext.request.contextPath}/testRequestHeader">testRequestHeader</a>
</html>
package com.learn.springmvc.test;
import java.io.IOException;
import java.io.Writer;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.learn.springmvc.entities.User;
@Controller
//@SessionAttributes(value="user")
public class Test001
{
@RequestMapping(value="/testParams",method=RequestMethod.GET,params={"age","tel!=110"})
public String testParams()
{
System.out.println("-----testParams");
return "ok";
}
@RequestMapping(value="/testHeaders",method=RequestMethod.GET,headers={"Host=localhost:8080"})
public String testHeaders()
{
System.out.println("-----testHeaders");
return "ok";
}
@RequestMapping(value="/testAntStyle*",method=RequestMethod.GET)
public String testAntStyle()
{
System.out.println("-----testAntStyle");
return "ok";
}
//
@RequestMapping(value="/testPathVariable/{musicId}",method=RequestMethod.GET)
public String testPathVariable(@PathVariable("musicId") String musicId)
{
System.out.println("-----testPathVariable musicId: "+musicId);
return "ok";
}
@RequestMapping(value="/order",method=RequestMethod.POST)
public String testPost()
{
System.out.println("-----testPost");
return "ok";
}
@RequestMapping(value="/order/{uuid}",method=RequestMethod.DELETE)
public String testDelete(@PathVariable("uuid") String uuid)
{
System.out.println("-----testDelete uuid: "+uuid);
return "ok";
}
@RequestMapping(value="/order/{uuid}",method=RequestMethod.PUT)
public String testPut(@PathVariable("uuid") String uuid)
{
System.out.println("-----testPut uuid: "+uuid);
return "ok";
}
@RequestMapping(value="/order/{uuid}",method=RequestMethod.GET)
public String testGet(@PathVariable("uuid") String uuid)
{
System.out.println("-----testGet uuid: "+uuid);
return "ok";
}
@RequestMapping(value="/testRequestParam",method=RequestMethod.GET)
public String testRequestParam(@RequestParam(value="age",required=false,defaultValue="99") Integer age,
@RequestParam("roleId") String[] roleIds)
{
System.out.println("-----testRequestParam age: "+age);
for (int i = 0; i < roleIds.length; i++)
{
System.out.println(roleIds[i]);
}
return "ok";
}
@RequestMapping(value="/testRequestHeader",method=RequestMethod.GET)
public String testRequestHeader(@RequestHeader("Host") String host)
{
System.out.println("-----testRequestHeader host: "+host);
return "ok";
}
}