- 浏览: 1115583 次
文章分类
- 全部博客 (379)
- S2SH (16)
- stuts2 (0)
- java语言 (81)
- JSP (17)
- <html>元素 (11)
- javaweb (4)
- web容器 (3)
- ext (23)
- javaScript (48)
- ant (1)
- liferay (1)
- sql (9)
- css (42)
- 浏览器设置 (3)
- office_world (1)
- eclipse (4)
- 其它 (28)
- 操作系统 (5)
- android (6)
- Struts2 (11)
- RegEx (3)
- mysql (5)
- BigDATA (1)
- Node.js (1)
- Algorithm (10)
- Apache Spark (1)
- 数据库 (5)
- linux (2)
- git (1)
- Adobe (3)
- java语言,WebSocket (1)
- Maven (3)
- SHELL (1)
- XML (2)
- 数学 (2)
- Python (2)
- Java_mysql (1)
- ReactJS (6)
- 养生 (4)
- Docker (1)
- Protocols (3)
- java8 (2)
- 书籍 (1)
- Gradle (2)
- AngularJS (5)
- SpringMVC (2)
- SOAP (1)
- BootstrapCSS (1)
- HTTP协议 (1)
- OAuth2 (1)
最新评论
-
Lixh1986:
Java并发编程:自己动手写一把可重入锁https://blo ...
Java之多线程之Lock与Condition -
Lixh1986:
http://win.51apps.com.cn/https: ...
temp -
ztwsl:
不错,支持很好
HttpServletRequest和ServletRequest的区别 -
guodongkai:
谢谢您能将知识精华汇编总结,让初学者们从原理中学会和提高。
javaScript之function定义 -
kangwen23:
谢谢了,顶顶
struts2中的ValueStack学习
SpringMVC之@RequestMapping @ResponseBody 和 @RequestBody 注解的用法
1、@RequestMapping
@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。
用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;
用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法。
此处需注意@RequestMapping用在类上可以没用,但是用在方法上必须有。
其原理也非常好了解,其对应的 action 就是“ (父路径) controller/(父路径下方法路经)method ”。因此,在本地服务器上访问方法 http://localhost:8080/controllers/method 就会返回(跳转)到“ helloWorld.jsp ”页面。
说到这了,顺便说一下 @PathVariable 注解,其用来获取请求路径(url )中的动态参数。
页面发出请求:
例如:
2、@RequestBody
@RequestBody 注解则是将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
作用:
1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
2) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
使用时机:
A) GET、POST方式提时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);
B) PUT方式提交时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded, 必须;multipart/form-data, 不能处理;其他格式, 必须;
说明:request的body部分的数据编码格式由header部分的Content-Type指定;
例如:
3、@ResponseBody
@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。
作用:
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
当页面发出异步请求:
例如:
异步获取 json 数据,加上 @Responsebody 注解后,就会直接返回 json 数据。
- https://blog.csdn.net/ff906317011/article/details/78552426
-
@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。
用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;
用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法。
此处需注意@RequestMapping用在类上可以没用,但是用在方法上必须有。
@Controller //设置想要跳转的父路径 @RequestMapping(value = "/controllers") public class StatisticUserCtrl { //如需注入,则写入需要注入的类 //@Autowired // 设置方法下的子路经 @RequestMapping(value = "/method") public String helloworld() { return "helloWorld"; } }
其原理也非常好了解,其对应的 action 就是“ (父路径) controller/(父路径下方法路经)method ”。因此,在本地服务器上访问方法 http://localhost:8080/controllers/method 就会返回(跳转)到“ helloWorld.jsp ”页面。
说到这了,顺便说一下 @PathVariable 注解,其用来获取请求路径(url )中的动态参数。
页面发出请求:
function login() { var url = "${pageContext.request.contextPath}/person/login/"; var query = $('#id').val() + '/' + $('#name').val() + '/' + $('#status').val(); url += query; $.get(url, function(data) { alert("id: " + data.id + "name: " + data.name + "status: " + data.status); }); }
例如:
/** * @RequestMapping(value = "user/login/{id}/{name}/{status}") 中的 {id}/{name}/{status} * 与 @PathVariable int id、@PathVariable String name、@PathVariable boolean status * 一一对应,按名匹配。 */ @RequestMapping(value = "user/login/{id}/{name}/{status}") @ResponseBody //@PathVariable注解下的数据类型均可用 public User login(@PathVariable int id, @PathVariable String name, @PathVariable boolean status) { //返回一个User对象响应ajax的请求 return new User(id, name, status); }
2、@RequestBody
@RequestBody 注解则是将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
作用:
1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
2) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
使用时机:
A) GET、POST方式提时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);
B) PUT方式提交时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded, 必须;multipart/form-data, 不能处理;其他格式, 必须;
说明:request的body部分的数据编码格式由header部分的Content-Type指定;
例如:
@RequestMapping(value = "user/login") @ResponseBody // 将ajax(datas)发出的请求写入 User 对象中 public User login(@RequestBody User user) { // 这样就不会再被解析为跳转路径,而是直接将user对象写入 HTTP 响应正文中 return user; }
3、@ResponseBody
@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。
作用:
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
当页面发出异步请求:
function login() { var datas = '{"username":"' + $('#username').val() + '","userid":"' + $('#userid').val() + '","status":"' + $('#status').val() + '"}'; $.ajax({ type : 'POST', contentType : 'application/json', url : "${pageContext.request.contextPath}/user/login", processData : false, dataType : 'json', data : datas, success : function(data) { alert("userid: " + data.userid + "username: " + data.username + "status: "+ data.status); }, error : function(XMLHttpRequest, textStatus, errorThrown) { alert("出现异常,异常信息:"+textStatus,"error"); } }); };
例如:
@RequestMapping(value = "user/login") @ResponseBody // 将ajax(datas)发出的请求写入 User 对象中,返回json对象响应回去 public User login(User user) { User user = new User(); user .setUserid(1); user .setUsername("MrF"); user .setStatus("1"); return user ; }
异步获取 json 数据,加上 @Responsebody 注解后,就会直接返回 json 数据。
- https://blog.csdn.net/ff906317011/article/details/78552426
-
发表评论
-
Spring之Interceptor之path patterns路径匹配规则
2018-12-26 11:20 8788Spring之Interceptor之path pattern ... -
Spring4.X之Constructor Injection 构造方法注入
2018-12-24 17:37 1579Spring4.X之Constructor Injection ... -
SpringMVC之@RequestMapping用法
2018-08-31 16:21 2396一、基本介绍 @RequestMapping 注解可以用在 ... -
Spring4.X之Bean的Scope
2017-11-06 16:29 1205https://docs.spring.io/spring/d ... -
Spring4.X之基于Java注解的配置(与SpringBoot的诞生)
2017-11-02 16:57 4156最近项目用到了SpringBoot,对其没有xml配置就可以运 ... -
03 - SpringBoot: Building a RESTful Web Service
2017-09-25 17:47 1029Building a RESTful Web Service ... -
02 - Difference between spring @Controller and @RestController annotation
2017-09-25 17:04 891Difference between spring @Con ... -
01 -Spring Framework: @RestController vs. @Controller
2017-09-25 16:45 751Spring MVC Framework and REST ... -
Spring - MVC 思维导图,让Spring不再难懂
2017-08-09 03:21 1082引用: http://www.iteye.com/news/3 ... -
hibernate merge与update区别
2017-04-18 15:38 2199今天做了个测试,写了 ... -
Struts2拦截器原理以及实例
2017-02-15 12:49 480Struts2拦截器原理以及实例 http://www.cnb ... -
SSH之Struts2 VS. SpringMVC
2017-02-07 10:26 999Struts 2 vs SpringMVC - Battl ... -
Maven之POM之SSH之libs之configuration
2017-02-05 08:56 788Maven repo libs: Servlet API, ... -
Hibernate自定义查询
2014-02-24 16:29 1589public void addCarmera(Carmera ... -
Hibernate对象的生命周期
2013-07-10 16:32 1839一、情景描述 鉴于:hibernate是面向对象(实体、en ... -
通过配置struts.xml解决 struts2和 dwr兼容的问题
2012-11-20 10:20 2085众所周知,strust2 通过在 web.xml中配置 fil ...
相关推荐
在Spring MVC框架中,`@RequestBody` 和 `@ResponseBody` 是两个非常重要的注解,它们在处理HTTP请求和响应时起到了关键作用。本篇文章将详细解释这两个注解的工作原理、使用场景以及如何实现Java对象与XML/JSON数据...
在实际开发中,通常会结合使用`@RequestMapping`和其他注解,如`@ControllerAdvice`(全局异常处理)、`@ResponseBody`(将方法返回值直接转换为HTTP响应体)等,构建出功能丰富的Spring MVC应用程序。 通过理解并...
Spring MVC注解之@ResponseBody和@RequestBody详解 在Spring MVC框架中,@ResponseBody和@RequestBody是两个非常重要的注解,它们分别用于处理HTTP请求响应体和请求体的序列化和反序列化。下面,我们将详细介绍这两...
在 Spring MVC 中,请求参数的处理非常灵活,可以使用 `@RequestParam`、`@RequestBody` 和 `@ResponseBody` 等注解进行数据绑定和响应体的控制。 #### 二、`@RequestBody` `@RequestBody` 注解通常用于控制器中的...
@ResponseBody注解的功能与@RequestMapping中的consumes属性和@RequestBody注解刚好相反。@RequestBody注解用于方法的参数,表示HTTP请求体中的内容需要被转换成相应的Java对象。而@ResponseBody则用于方法的返回值...
快速解决SpringMVC @...使用 @RequestBody 注解可以快速解决 SpringMVC 中的请求参数接收问题,但是需要注意一些细节,如使用 @RequestParam 注解,使用 getParameterMap() 方法,使用 JSON.stringify() 方法等。
此外,@RequestMapping还可以与其他注解如@RequestParam、@RequestBody、@PathVariable、@RequestHeader等结合使用,以实现更精细的请求处理。例如,@RequestParam用于从请求参数中获取值,@RequestBody用于从请求体...
`@RequestBody`和`@ResponseBody`用于将HTTP请求体或响应体直接映射为Java对象。`@ModelAttribute`还可以配合`@InitBinder`进行数据绑定的自定义。 **总结** 基于注解的SpringMVC大大简化了Web应用的开发,通过...
除了基本的`@Controller`和`@RequestMapping`,SpringMVC还提供了许多其他注解来增强控制器的功能,如`@RequestParam`用于获取请求参数,`@PathVariable`用于获取URL路径变量,`@RequestBody`用于将请求体转换为Java...
7. **@RequestBody 和 @ResponseBody** `@RequestBody`用于将HTTP请求体中的数据转换为方法参数,而`@ResponseBody`将方法返回值直接写入HTTP响应体,通常用于返回JSON或XML格式的数据。 8. **@ModelAttribute** ...
`@RequestBody` 注解用于将请求体的内容映射到方法参数上,通常用于接收 JSON 或 XML 数据。Spring MVC 自动将请求体的内容转换为指定的对象类型。 ### 7. `@ResponseBody` `@ResponseBody` 注解用于将方法返回的...
@RequestBody 和 @ResponseBody `@RequestBody` 注解用于将请求体中的JSON或XML数据转换为Java对象,而`@ResponseBody`则将方法的返回值转换为HTTP响应体的输出内容。 ```java @PostMapping("/save") public @...
9. `@Service` 和 `@Repository`: 这两个注解通常与`@Controller`一起使用,`@Service`标记业务逻辑层的类,`@Repository`标记数据访问层的类。Spring会自动管理这些类的生命周期。 以上就是SpringMVC中一些主要...
在SpringMVC中,我们可以使用@RestController注解来标注控制器,使用@RequestMapping注解来标注请求映射,使用@RequestBody注解来标注请求体,使用@ResponseBody注解来标注响应体。 例如,我们可以编写一个简单的...
@JsonSerialize , @JsonSetter , @Lazy , @Order , @PathVariable , @Pointcut , @PostConstruct , @PostMapping , @PreDestroy , @Primary , @PropertySource , @Qualifier , @Repository , @RequestBody ,...
springMVC相关技术配置使用注解的HandlerMapping和HandlerAdapter使用<mvc:annotation-driver> 不过springBoot已经省略了这些配置 配置使用注解的Handler和Service等等使用<context:component-scan> 不过springBoot...
- **@RequestBody**: 用于将请求体的内容转换为方法参数。 - **@ResponseBody**: 将方法的返回值直接写入 HTTP 响应体,通常用于 JSON 或 XML 数据的传输。 - **@ExceptionHandler**: 处理特定异常,提供统一的...
本文将深入解析SpringMVC如何处理GET和POST请求中的参数,以及如何使用@RequestParam和@RequestBody注解。 1. GET请求 GET请求通常用于获取资源,其参数直接附加在URL路径后面,以键值对的形式存在。例如,`/api/...
Spring MVC 是一个强大的Java ...通过合理使用这些注解,可以有效地组织和管理控制器逻辑,提高开发效率,并使代码更易于理解和维护。在实际开发中,结合具体场景选择合适的注解,可以使Spring MVC应用更加灵活高效。
在Spring MVC框架中,注解是实现控制器、数据绑定、模型映射等核心功能的关键元素。这些注解简化了代码,使得开发更加...视频教程结合课程文档将提供更加直观和详尽的指导,帮助学习者更好地掌握Spring MVC的注解使用。