3.springmvc之@RequestMapping
@RequestMapping
@RequestMapping用来匹配客户端发送的请求,可以在方法上使用,也可以在类上使用。
方法:表示用来匹配要处理的请求
类上:表示为当前类的所有方法的请求地址添加一个前置路径,访问的时候必须要添加此路径
package com.yangchao.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/yangchao")
public class HelloController{
/*
* @RequestMapping就是用来标识此方法用来处理什么请求,其中的/可以取消
* 取消后默认也是从当前项目的根目录开始查找,一般在编写的时候看个人习惯
* 同时,@RequestMapping也可以用来加在类上,
* */
@RequestMapping("/hello")
public String hello(Model model){
model.addAttribute("msg","hello,SpringMVC");
return "hello";
}
}
注意:在整个项目的不同方法上不能包含相同的@RequestMapping值
除此以外,@RequestMapping注解还可以添加很多额外的属性值,用来精确匹配请求
package com.yangchao.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/yangchao")
public class HelloController{
/*
* @RequestMapping就是用来标识此方法用来处理什么请求,其中的/可以取消
* 取消后默认也是从当前项目的根目录开始查找,一般在编写的时候看个人习惯
* 同时,@RequestMapping也可以用来加在类上,
* */
@RequestMapping("/hello")
public String hello(Model model){
model.addAttribute("msg","hello,SpringMVC");
return "hello";
}
/**
* Request的其他属性值
* value:要匹配的请求
* method:限制发送请求的方式: POST GET
* params:表示请求要接受的参数,如果定义了这个属性,那么发送的时候必须要添加参数
* params有几种匹配规则
* 1、直接写参数的名称,param1,param2
* params = {"username"}
* 2、表示请求不能包含的参数,!param1
* params = {"!username"}
* 3、表示请求中需要要包含的参数但是可以限制值 param1=values param1!=value
* params = {"username=123","age"}
* params = {"username!=123","age"}
* headers:填写请求头信息
* chrome:User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36
* firefox:User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0
*
* consumers:只接受内容类型是哪种的请求,相当于指定Content-Type
* produces:返回的内容类型 Content-Type:text/html;charset=utf-8
*
* @return
*/
@RequestMapping(value = "/hello2",method = RequestMethod.POST)
public String hello2(){
return "hello";
}
@RequestMapping(value = "/hello3",params = {
"username!=123","age"})
public String hello3(String username){
System.out.println(username);
return "hello"