当前位置:   article > 正文

RequestMapping映射请求(5种)_requestmapping是什么请求

requestmapping是什么请求

@RequestMapping的用途:

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

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

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

五种映射

  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 ;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

测试路径: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 匹配到
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

第三种:占位符映射

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})
  • 1
  • 2
  • 3

示例:

在这里插入图片描述

第五种:限定请求参数

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

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

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

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

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

示例:

@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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号