栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC常见问题汇总

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC常见问题汇总

文章目录
  • SpringMVC执行原理图
  • SpringMVC常用注解
    • @Controller
    • @RequestMapping
    • @ResponseBody
    • @RequestBody
    • @PathVariable
    • @RestController

SpringMVC执行原理图

各组件的详细说明可参考这篇文章:SpringMVC组件概述

SpringMVC常用注解 @Controller

注解在类上,表明这个类是Spring MVC里的Controller,将其声明为Spring的一个Bean,Dispatcher Servlet会自动扫描注解了此注解的类,并将Web请求映射到注解了@RequestMapping的方法上,需要注意的是,在Spring MVC声明控制器Bean的时候,只能使用@Controller。

@RequestMapping

@RequestMapping注解用来映射Web请求(访问路径和参数)、处理类和方法。它可以注解在类和方法上。注解在方法上的@RequestMapping路径会继承注解在类上的路径,@RequestMapping支持Servlet的request和response作为参数,也支持对它们的媒体类型进行配置。

@Controller 			 // 声明此类是一个控制器 
@RequestMapping("/anno") // 映射此类的访问路径是 /anno 
public class DemoAnnoController {}
@ResponseBody

@ResponseBody支持将返回值放在response体内,而不是返回一个页面。Ajax的异步访问程序,可以以此注解返回数据而不是返回页面;此注解可以放在返回值或者方法上。

@RequestMapping("/index")
@ResponseBody
public String index(HttpServletRequest request, HttpServletResponse response) {
    return "url: " + request.getRequestURL() + " can access";
}
@RequestBody

@RequestBody允许request的参数在request体中,而不是在直接链接在地址后面。此注解放在参数前。

@RequestBody的作用其实是将json格式的数据转为java对象。

// 前端
$.ajax({
    data:{ "username":"tom", "address":"北京" }
})

// 后端
@RequestMapping("/insert")
public void insert(@RequestBody User user) {}
@PathVariable

@PathVariable用来接收路径参数,如 /news/001,可接收001作为参数。此注解放置在参数前。

@RequestMapping("/show/{id}/{name}")
public String show(@PathVariable("id") Long ids, @PathVariable("name") String names) {
    return "hello";
}
@RestController

@RestController是一个组合注解,组合了@Controller和@ResponseBody,意味着当开发一个只和页面交互数据的控制的时候,可以使用此注解。
若没有此注解,要想实现上述功能,则需在代码中加上@Controller和@ResponseBody两个注解。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号