@RequestMapping、@RequestBody、@ResponseBody、@RequestParam注解用法

一、@RequestMapping的使用
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示访问类中所有方法的请求都以此注解中地址值为父路径。 用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法。

//RequestMapping处在类的上面,访问类中所有方法的请求有都已此路径(/springmvc)为父路径,
//此案例的访问路径为:/springmvc/testRequestMapping
@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest { 
	@RequestMapping("/testRequestMapping")
	public String testRequestMapping() {
		System.out.println("testRequestMapping");
		return SUCCESS;
	}
}

测试页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<!-- 请求路径为:对应修饰类的@RequestMapping中属性值springmvc和修饰方法的@RequestMapping中属性值testRequestMapping-->
	<a href="springmvc/testRequestMapping">Test RequestMapping</a>
</body>
</html>

运行jsp,点击超链接【Test RequestMapping】,能访问testRequestMapping()方法

二、@RequestBody和@ResponseBody使用
平时前后端进行交互时,数据格式通常采用json格式。
1.@RequestBody修饰类中方法某个形参,表示此参数接收请求中请求体,且请求体只能以json格式传输,并能将json数据转化为对应的java对象上
2.@ResponseBody注解通常修饰一个方法,将方法中返回的对象转化为json格式写入HTTP响应正文中,传递到前端。通常使用在 @RequestMapping 后,返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。

后端保存数据的bean类

package com.atguigu.springmvc.entities;

public class User {
	private String username;
	private String password;
	private String email;
	private int age;
	 //===================get、set方法省略=====================
}

后端的Controller层

1.方法中形参user被@RequestBody修饰作用:
表示方法只接受请求体为json格式的数据,并把json数据转换为User类型的实例
2.方法先后被@RequestMapping("/testRequestBody")、@ResponseBody修饰作用:
方法中返回的集合map不会被解析为跳转路径,转化成json格式存放于响应体中,传递到前端
 。

@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest { 
	//测试RequestBody
	@RequestMapping("/testRequestBody")
	@ResponseBody
	public Map testRequestBody(@RequestBody User  user){
	    Map<String, Object> map =new HashMap<String, Object>();
        map.put("string", "string");
        map.put("user", user);
	    return map;
	}
}

前端进行请求,访问具体的方法
请求体的数据格式为json
这里写图片描述

后端响应的结果:将map集合转为json格式传递到前端
这里写图片描述

三、@RequestParam注解的使用
@RequestParam注解修饰方法中形参,获取请求中特定的请求参数值并赋值给形参,同时可以对特定的请求参数进行验证、设置默认值等等
本案例中请求url为 springmvc/testRequestParam?username=fangfei&age
@RequestParam(value=“username”) String un:表示形参un获取请求参数username值 fangfei
@RequestParam(value=“age”, required=false,defaultValue=“3000”) int age
请求体中请求参数age没有值,@RequestParam设置age的默认值为3000,并赋给形参age

@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest { 
	@RequestMapping(value="/testRequestParam")
		public String testRequestParam(@RequestParam(value="username") String un,@RequestParam(value="age", required=false,defaultValue="3000") int age){
			System.out.println("testRequestparam,username:"+un+",age:"+age);
			return SUCCESS;
		}
	}

编制测试jsp文件:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<p>注释@RequestParam映射的使用</p>
	<!-- 请求参数username有值,age无值-->
	<a href="springmvc/testRequestParam?username=fangfei&age">Test RequestParam</a>
</body>
</html>

运行此jsp文件,点击超链接,控制台运行结果为:
testRequestparam,username:fangfei,age:3000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值