SpringMVC中常用注解与使用方法

简介: SpringMVC中常用注解与使用方法

MVC简介

MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应用程序表现层的模式。


Model(模型): 通常指的就是我们的数据模型。作用一般情况下用于封装数据。


View(视图): 通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。 通常视图是依据模型数据创建的。


Controller(控制器): 是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。


SpringMVC简介

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web


应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的 Spring MVC 框架或集成其他 MVC 开发框架。


SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着 Spring3.0 的发布,已成为最优秀的 MVC 框架。

image.png



SpringMVC中的常用注解

@GetMapping

作用:用于建立请求URL和处理请求方法之间的对应关系


可以出现在类上,请求URL的第一级访问目录


可以出现在方法上,请求URL的第二级访问目录


value:用于指定请求的URL。它和path属性的作用是一样的


method:用于指定请求的方式


params:用于指定限制请求参数的条件


@Controller
//@RequestMapping("SpringMVC/")
public class HelloController {
    //请求方法为get  请求参数必须有username
    @RequestMapping(value = "/hello",method = RequestMethod.GET,params = {"username"})
    //@RequestMapping("/hello")
    public String sayHello(){
        System.out.println("SpringMVC hello~~~");
        return "success";
    }
}

@RequestParam

作用:把请求中指定名称的参数给控制器中的形参赋值


value:请求参数的名称


required:请求参数中必须提供此参数。默认值:true,表示必须提供,如果不提供就报错。


@RequestMapping("/testRequestParam")
    //RequestParam --更名  
    // 属性  value=别名 required=必须含有的参数
    public String testRequestParam(@RequestParam(value = "username") String  name){
        System.out.printf(name);
        System.out.println("testRequestParam执行了~~~");
        return "success";
    }

@RequestBody

作用:用于获取请求体内容。直接使用得到key=value&key=vaule...结构的数据。get请求方式不适用


required:是否必须有请求体。当取值为true时,get请求会报错。如果取值为false,get请求得到是null。  

@RequestMapping("/testRequestBody")
    //RequestBody 获取请求体中的内容  如:username=benshan&password=98989&money=200
    public String testRequestBody(@RequestBody String body){
        System.out.println("testRequestBody执行了~~~");
        System.out.println(body);
        return "success";
    }

@PathVariable

作用:用于绑定URL中的占位符。url中有/delete/{id},{id}就是占位符。


@RequestMapping("/testPathVariable/{id}")
    //PathVariable使用Restful风格,结构清晰,拓展方便
    public String testPathVariable(@PathVariable(value = "id") String id){
        System.out.println("testPathVariable~~~");
        System.out.println(id);
        return "success";
    }

@RequestHeader

作用:用于获取请求消息头


   value 提供消息头名称


   required:是否必须有此消息头


 

@RequestMapping("/testRequestHeader")
    //testRequestHeader获取请求头的值
    public String testRequestHeader(@RequestHeader(value = "Accept") String header){
        System.out.println("testRequestHeader~~~");
        System.out.println(header);
        return "success";
    }

@CookieValue

作用:用于把指定cookie名称的值传入控制器方法参数


    value:指定cookie的名称


    required:是否必须有此cookie


@RequestMapping("/testCookieValue")
    //testRequestHeader获取请求头的值
    public String testCookieValue(@CookieValue(value = "JSESSIONID") String cookie){
        System.out.println("testCookieValue~~~");
        System.out.println(cookie);
        return "success";
    }

@ModelAttribute

作用:可以修饰方法和参数。出现在方法上,表示当前方法会在控制器的方法执行之前执行,先执行。出现在参数上,获取指定的数据给参数赋值


value 用于获取数据的key


@RequestMapping("/testModelAttribute")
    public String testModelAttribute(){
        System.out.println("testModelAttribute~~~");
        return "success";
    }
    @ModelAttribute
    //在控制器执行之前  执行
    public void showUser(){
        System.out.println("showUser执行了~~~");
    }

@SessionAttributes

作用:用于多次执行控制器方法间的参数共享


  value 用于指定存入的属性名称


  type:用于指定存入的数据类型


新注解

@RequestMapping 和  @GetMapping @PostMapping 区别

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。


@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。


相关文章
|
存储 关系型数据库 MySQL
深入理解MySQL索引:从原理到最佳实践
深入理解MySQL索引:从原理到最佳实践
1315 0
|
敏捷开发 Java 测试技术
阿里云云效产品使用合集之如何下载流水线构建过程中生成的jar
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
移动开发 JavaScript API
HTML5 拖放详解
HTML5 的拖放功能增强了网页的互动性和用户友好性,允许用户通过拖动操作移动网页元素。其核心包括拖动源和放置目标,并提供了 `draggable` 属性及多个事件(如 `dragstart`、`dragover` 和 `drop`)来实现这一功能。示例代码展示了如何使用这些 API 创建一个简单的拖放组件,通过设置样式和监听事件来提升用户体验。在实际应用中,需注意样式提示和浏览器兼容性测试。
|
自然语言处理 JavaScript 程序员
UTF-8 GBK UTF8 GB2312 之间的区别和关系
【8月更文挑战第24天】UTF-8(Unicode Transformation Format-8bit)是一种多字节编码方案,用于解决国际化字符编码问题,英文使用一个字节编码,中文使用三个字节。它涵盖了全球所有国家的字符,具备良好的通用性,可在支持UTF-8的浏览器上显示。尽管可包含字节顺序标记(BOM),但通常不使用。GBK是在GB2312基础上扩展的标准,使用双字节编码,包括所有中文字符,但通用性较弱。UTF-8和GBK之间需通过Unicode转换。对于含有大量英文字符的网站或论坛,使用UTF-8编码可节省存储空间。
724 5
|
机器学习/深度学习 人工智能 算法
【CIKM 2023】扩散模型加速采样算法OLSS,大幅提升模型推理速度
近日,阿里云人工智能平台 PAI与华东师范大学陈岑副教授团队合作在深度学习顶级会议 CIKM 2023 上发表 OLSS (Optimal Linear Subspace Search) 算法,这是一种针对扩散模型的采样加速算法。在这篇论文中,扩散模型加速算法的本质被建模成线性子空间的扩张过程,给出了目前方法的统一分析,并基于此设计了新的加速算法,大幅度提升了扩散模型的生成速度。
用 Python 绘制美丽的散点图
散点图是一种用于展示两个变量之间关系的图表,它将数据以点的形式绘制在平面上,每个点代表一个数据点。通过观察散点的分布和趋势,可以推断出两个变量之间的相关性。在 Python 中,我们可以使用`matplotlib`库来绘制散点图。
用 Python 绘制美丽的散点图
|
网络安全 开发工具 数据安全/隐私保护
如何把 ipa 文件 (iOS 安装包) 安装到 iPhone 手机上? 附方法汇总
如何把 ipa 文件 (iOS 安装包) 安装到 iPhone 手机上? 附方法汇总
|
大数据 计算机视觉
Halcon 学习笔记三:形态学
Halcon 学习笔记三:形态学
838 0
|
移动开发 资源调度 JavaScript
【Three.js】入门教程
【Three.js】入门教程
963 0
|
Linux Windows
提高终端生产力神器 - tmux
提高终端生产力神器 - tmux
509 0

热门文章

最新文章