首页 > 其他分享 >SpringMVC相关知识集锦----1

SpringMVC相关知识集锦----1

时间:2024-05-26 13:29:00浏览次数:21  
标签:请求 处理 SpringMVC 视图 ---- springMVC 处理器 集锦 注解

一、springMVC框架的了解

springMVC是一个基于java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过把model,view,controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发.

二、springMVC主要组件

1.前端控制器(dispatcherservlet):接收请求,响应结果,相当于转发器,有了dispatcherservlet就减少了其他组件之间的耦合度
2.处理器映射器(handlermapping):根据请求的url来查找handler
3.处理器适配器(handleradapter):负责执行handler
4.处理器(handler):处理业务逻辑的java类
5.视图解析器(viewresolver):进行视图解析,根据视图逻辑名将modelandview解析成真正的视图
6.视图(view):view是一个接口,支持不同的视图类型

三、springMVC支持的转发和重定向写法

1)转发:
    forward:在返回值前面加"forward";
2)重定向:
   redirect:在返回值前面加"redirect"

四、springMVC常用注解

1.@RequestMapping:用于处理请求URL映射的注解,可用于类或方法上.用于类上,则表示类中所有响应请求的方法都是以该地址作为父路径
2.@RequestBody:注解实现接收http请求的json数据,将json转化为java对象
3.@ResponseBody:注解实现将controller方法返回对象转化为json对象响应给客户
4.@PathVariable:用户从url路径上获取指定参数,标注在参数前
5.@RequestParam:标注在方法参数前,用于对传入的参数做一些限制支持三个属性(value;required;defaultvalue)
6.@ControllerAdvice:标注在一个类上,表示该类是一个全局异常处理的类
7.@ExceptionHandler:标注在异常处理类的方法上,表示该方法可以处理的异常类型

五、springMVC统一异常处理的思想和实现方式

使用springMVC之后,代码调用者是springMVC框架,也就是说最终的异常会抛到框架中,然后由框架指定异常处理类进行统一处理
*方式一:创建一个自定义异常处理器,并实现里面的异常处理方法,然后将这个类交给spring容器管理
*方式二:在类上加注解表明这是一个全局异常处理类
             在方法上加注解,在ExceptionHandler中有一个value属性,可以指定可以处理的异常类型

六、后端怎么接收前端请求体的请求?

1.在springMVC中,可以使用各种注解来处理HTTP请求,并从请求体中提取数据。常见的注解包括@RequestBody/@RequestParam/@PathVariable等。
使用@RequestBody处理请求体:@RequestBody注解可以将请求体直接映射到一个java对象上。
使用@RequestParam处理请求参数:如果前端发送的是查询参数,可以使用@RequestParam注解
底层实现原理:
1.接收请求:DispatherServlet:(springMVC的核心,它负责将请求分发给适当的处理器)
接收请求:DispatherServlet接收前端发送的http请求
查找处理器:使用handlermapping找到合适的处理器
调用处理器:使用handleradapter调用处理器,并传递请求和响应对象
处理返回值:处理器返回modeland
2.handlermapping:负责根据请求找到合适的处理器
   handleradapter:负责调用处理器方法

标签:请求,处理,SpringMVC,视图,----,springMVC,处理器,集锦,注解
From: https://blog.csdn.net/chenDR333/article/details/139201279

相关文章

  • 第五次实验
    include<stdio.h>defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);input(a,N);printf("数据是:......
  • Homework from Zhejiang 和结式到底是什么关系
    HomeworkfromZhejiang本题希望解决的问题是:给定两个(首一)多项式\(f,g\),设\(n=\degf,m=\degg\)。求出\(\prod_{i=1}^n\prod_{j=1}^m(x_i+y_j)\),这里\(x_i,y_j\)是\(f,g\)的所有根。首先需要理解一下为什么这个式子能求出来:若\(f,g\)的系数都属于数域\(K\)内,为何......
  • [LeetCode] 2903. Find Indices With Index and Value Difference I
    Youaregivena0-indexedintegerarraynumshavinglengthn,anintegerindexDifference,andanintegervalueDifference.Yourtaskistofindtwoindicesiandj,bothintherange[0,n-1],thatsatisfythefollowingconditions:abs(i-j)>=index......
  • 时间戳与yyyy-mm-dd hh:mm:ss格式之间的互相转换
    将时间戳转化为yyyy-mm-ddhh:mm:ssfunctionbackTime(value){//value必须是一个毫秒级的时间戳哈;//如果出现的不是一个毫秒级的时间戳,将会出现转化为1970开始letdate=newDate(value);//获取年份、月份和日期letyear=date.getFullYear();//......
  • 计算机网络微课堂-课程概述
    ​​‍‍课程介绍本专栏主要是B站课程《计算机网络微课堂》的文字版,作者是湖南科技大学的老师。B站地址:https://www.bilibili.com/video/BV1c4411d7jb该课程好评如潮,包含理论课,实验课,考研真题分析课,在B站上播放量第一:​​‍‍部分......
  • Smart - Luogu —— 智能的洛谷
    目录安装Stylus谷歌Edge安装Smart-Luogu使用尾声安装Styluslink点击推荐下载,获取crx文件谷歌先点击右上角三个点,再点击扩展程序,然后点击管理扩展程序,进入管理扩展界面,把开发者模式选上,把crx文件拖入即可Edge先点击右上角三个点,再点击扩展,然后点击管理扩展程序,进入......
  • 03 安装及管理应用程序
    1、Linux命令与应用程序的关系在Linux操作系统中,一直以来对命令和应用程序没有特别明确的区别,因此对安装软件包与安装应用程序这两种说法,并不做严格的区分。2、Linux应用程序的组成安装完一个软件包之后,可能会向系统中复制大量的数据文件,并进行相关设置。在Linux操作系统中......
  • 02 目录和文件管理
    1、Linux目录结构在Linux操作系统中的目录和文件数据被组织为一个树形目录结构注:Linux操作系统中只有一个根目录,而Windows操作系统中每个分区都有一个根目录Linux系统中使用斜杠/进行分隔,而windows系统中使用反斜杠\分隔。整个树形目录中使用一个/表示根目录,根目录是Linux......
  • .哈希表.
    哈希哈希表:将大而复杂的数据映射到紧凑的区间内。分为:①存储结构 (离散化是特殊的哈希,之前讲的离散化是严格保序的映射到区间上是连续递增的)哈希不保序,这里讲的是一般的哈希弊端:若数据的数值较大可以对其取模后再映射,但是取模后可能造成:之前不相同的数值取模后映射到同......
  • el-table表格合并头,多级表头,合并列,合并列数据处理(2024-05-22)
    1、多级表头合并表头数据结构比较复杂的时候,可使用多级表头来展现数据的层次关系。<el-table-column>标签按照合并的层级放置标签即可实现,数据是正常的二维数据。<template><el-table:data="tableData"style="width:100%"><el-table-columnprop="......