RequestMapping映射请求(5种)

@RequestMapping的用途:

  • 在SpringMVC中的众多Controller以及每个Controller的众多方法,请求是通过RequestMapping映射到具体的处理方法上

@RequestMapping既可以定义在类上也可以定义在方法上
请求映射的规则是:

类上面的@RequestMapping.value + 方法上面的@RequestMapping.value。

五种映射

  1. 标准URL映射
  2. Ant风格的URL映射* **
  3. 占位符映射 @requestMapping (show/{userid}/{name} ) 方法中(@pathVariable(“ userid”) String id)
  4. 限制请求方法映射 @requestMapping ( value=“ show2” , method=requestMehtod.POST)
  5. 限制参数映射 @requestMapping( value=”show3” , params=”abc”) 方法中(@requestParam(“abc”) String abcid)

第一种:标准映射

在这里插入图片描述
注意:这里请求url后边.do是在web.xml配置servlet里面进行配置过滤的

@Controller
@RequestMapping(value="he11o2")
public class Hello2 {
	@RequestMapping(value=" / show1" )
	public ModelAndView test1(){
		ModelAndView mv = new ModelAndView( "hello") ;
		mv. addobject("msg", "这是第一 个注解程序");
		return mv ;
	}
}

访问路径:类上面的访问路径+方法上的访问路径

测试路径:I localhost:8080/hello2/show1.do

第二种:Ant风格的URL映射

通配符说明
匹配任何单字符
*匹配任意数量的字符
**匹配更多的目录

在这里插入图片描述

测试:
在地址栏中分别输入

@RequestMapping("/test/*/show") 
/test/a/show.do  
/test/abc/show.do
/test/show.do 匹配不到

@RequestMapping("/test/**/show") 
hello/test/a/b/c/show.do
hello/test/show.do 匹配到

第三种:占位符映射

Url中可以通过一个或多个{xxxx}占位符映射。大括号里面的值随便写
通过@PathVariable(“xxx”)绑定到方法的入参中。可以获取到值

例如:
@RequestMapping(“/user/{userId}/query")
请求URL:
http://localhost/user/8/query

具体的例子:
在这里插入图片描述
注意一点:这个url里面{}里面的变量名字要和下面方法里面的@PathVariable()里面的参数名字保持一致,才能获取到url里面的值

第四种:限制请求方法映射

在Http请求中最常用的请求方法是GET、POST,还有其他的一-些方法,DELET、PUT、HEAD等。

例如:

@RequestMapping(value = "/{userlg}/query"method=RequestMethod GET)
@RequestMapping(value
"/{userld/query",method={RequestMethod. GET,RequestMethod.POST})

示例:

在这里插入图片描述

第五种:限定请求参数

可以防止用户把信息注入进来

设定请求的参数来映射URL,例如:

@RequestMapping(value="quern".params="userld

要求请求中必须带有usexId参数。
参数的限制规则如下:

paramg="userId"请求参数中必须包含userId
params=”userId" 请求参数中不能包含userId
paramg="usexid!=1"请求参数包含userId,但其值不能为1也可以不包含userid
baxeme={"userid","name"} 必须包含userId和name参数

示例:

@RequestMapping(value=" / show7" , params="userId")
public ModelAndView test7 (@RequestParam("userId")String userId){
	ModelAndView mv = new ModelAndView( "hello");
	mv . addobject("msg","限定请求参数userId: "+userId);
	return mv;
}

@Reques tMapping( value= "/ show8" , params="!userId")
public ModelAndView test8(){
	ModelAndView mv = new ModelAndView( "hello");
	mv . add0bject("msg","限定请求参数userId: ");
	return mv ;
}
@RequestMapping(value=" /show9" ,params="userId!=1")
public ModelAndView test8(@RequestParam( "userId" )String userId){
	ModelAndView mv = new ModelAndView( "hello");
	mv . add0bject("msg","限定请求参数userId: "+userId);
	return mv;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值