我们可以使用params
属性来指定请求必须携带哪些请求参数,比如:
@RequestMapping(value = "/index", params = {"username", "password"}) public ModelAndView index(){ return new ModelAndView("index"); }
比如这里我们要求请求中必须携带username
和password
属性,否则无法访问。它还支持表达式,比如我们可以这样编写:
@RequestMapping(value = "/index", params = {"!username", "password"}) public ModelAndView index(){ return new ModelAndView("index"); }
在username之前添加一个感叹号表示请求的不允许携带此参数,否则无法访问,我们甚至可以直接设定一个固定值:
@RequestMapping(value = "/index", params = {"username!=test", "password=123"}) public ModelAndView index(){ return new ModelAndView("index"); }
这样,请求参数username不允许为test,并且password必须为123,否则无法访问。
header
属性用法与params
一致,但是它要求的是请求头中需要携带什么内容,比如:
@RequestMapping(value = "/index", headers = "!Connection") public ModelAndView index(){ return new ModelAndView("index"); }
那么,如果请求头中携带了Connection
属性,将无法访问。其他两个属性:
-
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
-
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;