首先SpringMvc是一款实现MVC模型的轻量级web框架,主要用在写那个controller也就是控制器,也就是表现层代码的书写,以前使用Servlet来写这个表现层,现在的话使用SpringMvc就更加简洁。
创建SpringMvc主要有三步:先导入一下依赖的jar包(tomcat服务器的包也需要导入)
,然后创建一个SpringMvc控制器类,这个相当于servlet功能,就是在里面设置访问的资源,然后资源的路径,响应的数据。所以需要在类上面使用@Controller注解来标明这是SpringMvc核心控制器类,然后再用@ResponseBody来标记返回值类型,@requestmapping注解来设置访问路径
然后设置一个SpringConfig类来加载这个SpringMvc控制器类,就是初始化胡SpringMVc的bean
然后创建一个类,这个类实现要继承AbstractionDis...这个抽象类,然后重写这个接口中的3个方法,这个类他可以初始化那个SpringMvcconfig那个类,其中的三个方法,一个时候加载SpringMvcConfig
,一个是加载SpringConfig,还有一个是设置访问路径,这里表名只要是带”/“都会被SpringMvc加载,还有一种更加简洁的方法
然后简单介绍一下用到的三个注解:
还有那个初始化servlet容器的抽象类
下面就是SpringMvc的工作流程:
然后还要避免SpringConfig加载到SpringMvc的bean,
有两种方法,第一种是在SpringConfig类中扫描的时候排除调controller中的SpringgMvc类,还有一种是把SpringConfig扫描时精准定位,定位到service包和 dao包
然后就是请求,首先需要设置请求映射路径,这里在@RequestMapping注解中写上路径就好
之后就是请求参数的传递,其中分为简单参数和json参数,后面大部分用的是json来传递参数,我们先说简单参数的传递,简单参数分为普通参数,数组参数,pojo(实体类)参数,集合参数,
这是普通参数传递:这里这个请求参数名与形参明不一样,所以使用了@RequestParam注解
然后因为有时候h传进来的参数是中文会出现乱码,所以需要设置utf-8的字符编码
然后是实体类参数的传递,实体类参数分为普通的实体类参数传递和嵌入式实体类参数传递:
数组请求参数的传递:
集合参数传递:
接下来就是json数据的传递:
首先需要导入json需要的jar包:
然后json请求参数与也有几种类型:数组,pojo,pojo数组
在postman中发送json数据是这样的:这是数组的,如果是pojo的话就用{ “name”:"",... }
然后使用@EnableWebMvc注解,可以开启json的数据转化功能 ,可以把接受的json类型的请求参数转为 类中的需要的形式
最后使用@RequestBody注解可以接受json请求参数
介绍一下几个用到的注解:
还有RequestPram和Requestbody的区别:
还有日期类型的参数传递:
之后就是响应就是springMvc控制器传给网页的数据:其中分为响应页面(也就是跳转到 另一个页面)和响应数据(分为json数据和文本数据),响应数据不需要做什么,只要在方法上面设置@ResponeBody就可以
再次介绍一下@Requestbody注解:
之后是REST风格简介:它是一种更加简洁的风格,简化SpringMvc中的开发:虽然有的资源的地址也就是资源的描述形式是一样的,但是可以通过动作(也就是请求方式)的不一样设定来确定访问的资源
REST的动作:
具体在方法中的使用,是在@RequestMapping中定义value来设置路径,method来设置请求方式
具体步骤如下;
然后说一下两个注解:
说一下@RequestBody和@RequestParam和@PathVariable的区别:
因为每个RequestMapping中都要写value=。。。,都要写Reponsbody,为了简化可以把它们写到前面,而且responsebody可以和Controller合体,写成RestController
具体如下:
还有一个需要设置的是,给不是Spring中的资源放行,比如说一些html,css ,jsp文件的,因为我们在哪个初始化servlet类中的一个方法中设定了所有资源都给SpringMvc处理,
所以需要设置给一些资源放行。怎么设置放行呢,需要再从创建一个类,具体如下
然后下面是一个案例:静态资源放行就写上面了,不重复写了
标签:SpringMvc,基础,然后,json,参数,设置,注解 From: https://www.cnblogs.com/y-258/p/16986239.html