首页 > 其他分享 >SpringMVC

SpringMVC

时间:2024-10-17 14:17:55浏览次数:9  
标签:SpringMVC Spring 视图 Controller MVC 注解

目录

SpringMVC概述

SpringMVC主要组件

SpringMVC和MVC的关系

Spring MVC常用注解


SpringMVC概述

SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分。简化开发,减少出错,方便组内开发人员之间的配合

Model(模型):应⽤程序中⽤于处理应⽤程序数据逻辑的部分。通常模型对象负责在数据库中存取数据 View(视图)是应⽤程序中处理数据显示的部分。通常视图是依据模型数据创建的。 Controller(控制器)是应⽤程序中处理⽤户交互的部分。通常控制器负责从视图读取数据, 控制⽤户输⼊,并向模型发送数据。

SpringMVC主要组件

前端控制器(DispatcherServlet):接收请求、响应结果,相当于转发器,有了DispatcherServlet就减少了其他组件之间的耦合度。 处理器映射器(HandlerMapping):根据请求的URL来查找Handler 处理器适配器(HandlerAdapter):负责执行Handler 处理器(Handler):处理业务逻辑的Java类 视图解析器(ViewResolver):进行视图的解析,根据视图逻辑名将ModelAndView解析成真正的视图。 视图(View):View是一个接口,他的实现类支持不同的视图类型,如jsp,freemarker等等。

SpringMVC和MVC的关系

MVC 是⼀种思想,⽽ Spring MVC 是对 MVC 思想的具体实现。 总结来说,Spring MVC 是⼀个实现了 MVC 模式,并继承了 Servlet API 的 Web 框架。既然是 Web框架,那么当⽤户在浏览器中输⼊了 url 之后,我们的 Spring MVC 项⽬就可以感知到⽤户的请求。

两者之间的联系:

Spring MVC 是基于 MVC 架构模式的 Web 应用程序开发框架,用于构建 Java Web 应用程序。 Spring MVC 扩展了经典的 MVC 架构,提供了一些额外的功能和特性,使得开发 Web 应用程序更加简单和灵活。 在 Spring MVC 中,模型(Model)表示为 POJO(Plain Old Java Object),视图(View)通常是 JSP、Thymeleaf 或其他模板技术,而控制器(Controller)通常是一个带有 @Controller 注解的 Spring Bean。 Spring MVC 提供了一套基于注解的请求映射机制,简化了 URL 到处理器的映射配置。 ​

导入jar

<!--JSON依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.3</version>
</dependency>

Spring MVC常用注解

@Controller    负责注册一个bean 到spring 上下文中 @RequestMapping    注解为控制器指定可以处理哪些 URL 请求 @RequestBody    该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上 ,再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上 @ResponseBody    该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区 @ModelAttribute       在方法定义上使用 @ModelAttribute 注解:Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了@ModelAttribute 的方法   在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数 –绑定到对象中,再传入入参将方法入参对象添加到模型中 @RequestParam    在处理方法入参处使用 @RequestParam 可以把请求参 数传递给请求方法 @PathVariable   绑定 URL 占位符到入参 @ExceptionHandler   注解到方法上,出现异常时会执行该方法 @ControllerAdvice   使一个Contoller成为全局的异常处理类,类中用@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常

使用注解前应扫包并开启注解

<!--自动扫描的包名,只扫描@Controller -->
<context:component-scan base-package="com.hz.controller" >
<!--开启注解-->
<mvc:annotation-driven/>

@Controller

标注一个普通的JavaBean成为可以处理请求的控制器

@RequestMapping

通过请求URL进行映射

@RequestParam

参数传递

通过实体类接收参数

传入参数名必须与实体类对应,一般用于添加,修改类中多个属性时

参数传递

ModelAndView

包含视图信息和模型数据信息

Model

以Map方式进行存储,用于向作用域中存值

Map

以Map方式进行存储,用于向作用域中存值

@ModelAttribute

@SessionAttributes

只能定义在类上,作用是将指定的Model中的键值对添加至session中

servlet方式

引入servlet-api.jar

<!--servlet-api-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>

重定向与转发

public String index1(User user)
{
.....
return "redirect:/user.jsp";//重定向
return "forward:页面";//转发
}

@ResponseBody

返回JSON数据 一般用于方法上

@RestController

标注该类中所有的方法都返回JSON 用于类中。无须在写@Controller

@DateTimeFormat

用户对象属性,控制入参时日期类型转换

@RequestHeader

获取请求头中的参数

@JsonFormat

返回JSON数据时日期类型处理

Spring MVC框架特点

清晰地角色划分

灵活的配置功能

提供了大量的控制器接口和实现类

真正做到与View层的实现无关(JSP、Velocity、Xslt等)

国际化支持

面向接口编程

Spring提供了Web应用开发的一整套流程,不仅仅是MVC,他们之间可以很方便的结合一起

标签:SpringMVC,Spring,视图,Controller,MVC,注解
From: https://blog.csdn.net/TuSi_Cat/article/details/143017930

相关文章

  • SpringMVC
    学习SpringMVC,我们只需要掌握以下3个功能:1.连接的功能︰将用户(浏览器)和Java程序连接起来,也就是访问一个地址能够调用到我们的Spring程序。2.获取参数的功能︰用户访问的时候会带一些参数,在程序中要想办法获取到参数。3.输出数据的功能︰执行了业务逻辑之后,要把程序执行的结果返回......
  • SpringMVCUtil工具类
    importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.lvym.exception.NotWebContextException;importcom.lvym.exception.SaSpringBootErrorCode;importorg.springframework.web.context.request.RequestContextH......
  • SpringMVC静态资源处理
    基本使用@ComponentpublicclassWebMvcConfigimplementsWebMvcConfigurer{@OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){registry.addResourceHandler("/asset/**").addResourceLocations(&qu......
  • SpringMVC内容
    SpringMVC简介SpringMVC(Model View Controller)是以ServletAPI为基础的Web框架并可以部署到Servlet容器(比如:Tomcat),是控制层框架,主要负责与前端交互,接收前端的参数,在服务层进行交互,并把结果返回会前端页面。SpringMVC工作原理当发送请求的时候,DispatcherServlet(中调度......
  • SpringMVC中注解@PathVariable的认识
    一、前言@PathVariable是SpringMVC中的一个非常重要的注解,作用在于将URL中的模板变量(即路径变量)绑定到控制器方法的参数上。这一功能特别适用于处理RESTful风格的请求,使得开发者能够直接从URL中提取参数值,并将其传递给方法进行处理。通过使用@PathVariable注解,可以设计出更加灵活......
  • springmvc
    一、快速入门新建项目导入依赖在web.xml中添加前端控制器构建项目结构spring配置文件编写controller类注解解释@Controller注解继承于spring代表将类交给ioc容器,在使用时需要在spring.xml中配置包扫描@RequestMapping用于建立请求URL和处理请求方法之间的对......
  • SpringMVC映射请求;SpringMVC返回值类型;SpringMVC参数绑定;
    一,SpringMVC映射请求SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些URL请求1.1@RequestMapping修饰类注解@RequestMapping修饰类,提供初步的请求映射信息,相对于WEB应用的跟目录。注:                如果在类名前,使用了注解@RequestMapping......
  • SSM中 的SpringMVC
    目录前言一、SpringMVC是什么?二、所遇到的一些问题1.中文乱码2.路径跳转前言虽然说SSM框架这个技术已经很老了,但是我个人觉得学完之后还是有很多启发的,同时也是作为一个基础去学习后面更多的框架知识。一、SpringMVC是什么? (B/S)web开发的轻量级框架。工作......
  • SpringMvc 完整上传文件流程(Ajax请求)头像,图片上传
    1、config包下的操作1.1、创建MyWebApplicationInit类如何创建第一个SpringMvc步骤以配置类的形式代替xml文件(点击链接查看)1.2、设置文件大小(自定义)1.3、创建SpringMvcConfig类并实现WebMvcConfigurer接口@EnableWebMvcpublicclassSpringMvcConfigimplementsWeb......
  • Spring,SpringBoot,SpringMvc
    1.Spring是什么?有什么特性?有哪些模块?常用注解?1.1Spring是什么?   一句话概况的话:Spring是一个轻量级,非入侵式的控制反转(IOC)和面向切面(AOP)的框架1.2有什么特性?    Spring特性:        1.AOP编程的支持    Spring提供了面向切面......