SpringMVC_@RequestMapping

1、@RequestMapping基本属性;
就是告诉SpringMVC;这个方法用来处理什么请求;
这个/是可以省略,即使省略了,也是默认从当前项目下开始;
习惯加上比较好 /hello /hello

2、@RequestMapping的其他属性

  • method:限定请求方式、
    HTTP协议中的所有请求方式:
    【GET】, HEAD, 【POST】, PUT, PATCH, DELETE, OPTIONS, TRACE
    GET、POST
    method=RequestMethod.POST:只接受这种类型的请求,默认是什么都可以;
    不是规定的方式报错:4xx:都是客户端错误
    405 - Request method ‘GET’ not supported
  • params:规定请求参数
    params 和 headers支持简单的表达式:
    param1: 表示请求必须包含名为 param1 的请求参数
    eg:params={“username”}:
    发送请求的时候必须带上一个名为username的参数;没带都会404
!param1: 表示请求不能包含名为 param1 的请求参数
	eg:params={"!username"}
		发送请求的时候必须不携带上一个名为username的参数;带了都会404
param1 != value1: 表示请求包含名为 param1 的请求参数,但其值不能为 value1
	eg:params={"username!=123"}
		发送请求的时候;携带的username值必须不是123(不带username或者username不是123)

{“param1=value1”, “param2”}: 请求必须包含名为 param1 和param2 的两个请求参数,且 param1 参数的值必须为 value1
	eg:params={"username!=123","pwd","!age"}
		请求参数必须满足以上规则;
		请求的username不能是123,必须有pwd的值,不能有age
  • headers:规定请求头;也和params一样能写简单的表达式

  • consumes:只接受内容类型是哪种的请求,规定请求头中的Content-Type

  • produces:告诉浏览器返回的内容类型是什么,给响应头中加上Content-Type:text/html;charset=utf-8

/**
 * 为当前类所有的方法的请求地址指定一个基准路径
 */
@RequestMapping("/haha")
@Controller
public class RequestMappingTestController {
	
	@RequestMapping("/handle01")
	public String handle01(){
		System.out.println("RequestMappingTestController...handle01");
		return "success";
	}	

	@RequestMapping(value="/handle02",method=RequestMethod.POST)
	public String handle02(){
		System.out.println("handle02...");
		return "success";
	}
	
	@RequestMapping(value="/handle03",params={"username!=123","pwd","!age"})
	public String handle03(){
		System.out.println("handle03....");
		return "success";
	}
	
	/**
	 * User-Agent:浏览器信息;
	 * 让火狐能访问,让谷歌不能访问
	 * 
	 * 谷歌:
	 * User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
	 * 火狐;
	 * User-Agent	Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
	 * @return
	 * 
	 */
	@RequestMapping(value="/handle04",headers={"User-Agent=Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"})
	public String handle04(){
		System.out.println("handle04....");
		return "success";
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`@RequestMapping`是Spring MVC框架中的一个重要注解,用于将HTTP请求映射到控制器的方法上。这个注解用于简化RESTful风格的Web服务开发,使得路由和处理逻辑更加清晰和模块化。下面是一些关于`@RequestMapping`实验小结的关键点: 1. **路径映射**:`@RequestMapping`用于指定一个或多个HTTP请求方法(GET, POST, PUT, DELETE等),以及对应的URL路径。例如,`@RequestMapping(value = "/users", method = RequestMethod.GET)`表示该方法处理所有发送到"/users"路径的GET请求。 2. **请求参数**:可以通过`@RequestParam`或`@PathVariable`注解处理请求参数,如查询参数、路径变量等。如`@RequestParam(name="id") Long userId`会从请求中获取名为"id"的查询参数。 3. **返回类型**:`@ResponseBody`可以用来标记返回值为JSON或XML响应体,而`@ModelAttribute`用于处理表单提交的模型属性。 4. **异常处理**:可以使用`@ExceptionHandler`注解来捕获特定的异常,并提供定制的错误处理。 5. **分组和扫描器**:为了方便管理,可以通过`@RequestMapping`的`@ControllerAdvice`或`@Controller`的`@RequestMapping(basePath = "/api/v1")`来对多个控制器进行分组或定义统一的路径前缀。 相关问题-- 1. `@RequestMapping`如何处理不同类型的HTTP请求? 2. 如何在Spring MVC中使用`@RequestParam`和`@PathVariable`? 3. `@ResponseBody`和`@ModelAttribute`的区别是什么? 4. 如何在Spring MVC中实现全局异常处理? 5. 分组和扫描器在Spring MVC中的应用场景是什么?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值