SSM-springMVC框架入门

Springmvc框架的介绍
Springmvc的概念:
Springmvc其实就是spring公司采用mvc思想提供的一个web层框架。
Springmvc底层是对原生servlet的封装。
Springmvc的功能说明:
M:model模型。其实就是数据。数据需要经过dao层查询出来,然后由service封装而成。
V:view视图。分请求视图和响应视图。请求视图发送指定,得到结果。
C: controller控制器。接收view发送的请求,封装所需要的model,返回到响应视图。
作为一个mvc思想的框架,

  1. 功能一【接收数据】:应该可以接收到view层【jsp,html,安装,ios】发送的数据【var或json】到java后台自动转换成java的对应数据类型【八种级别类型,String,集合,对象等】。
  2. 功能二【响应数据】:可以把java端各种类型的数据直接返回给响应视图,并转成页面的var或json格式的数据。
  3. 功能三:拦截异常。Springmvc还有自己特有的拦截器功能。
    Springmvc和struts2对比
    共同点
    Springmvc和struts2都是基于mvc思想设计的web层框架。
    Springmvc和struts2都有一个核心控制器。
    区别
    Springmvc的核心控制器是一个servlet。
    Struts2的核心控制器是一个过滤器。
    Springmvc的处理器【其实就是控制器controller】是以方法为单位,一个方法是一个处理器,方法内部需要的数据是通过当前处理器方法的参数来封装的。
    Struts2的处理器是以类为单位,一个类是一个处理器,当前处理器内所有方法所需要的参数都是有当前类的私有属性来封装的。
    Springmvc的处理器方法所在类是单例的。
    Struts2的处理器类必须是多例的。
    Springmvc的页面部分的动态效果有jstl来完成。
    Struts2的页面部分的动态效果除了可以使用jstl来完成之外,还可以使用OGNL表达式,OGNL表达式可以使得页面开发速度提高,而且比较简洁,但是效率比如jstl。
    Springmvc的工作流程图【重点】

Springmvc入门案例
创建web工程并导入jar包


org.springframework
spring-context
5.0.2.RELEASE


org.springframework
spring-webmvc
5.0.2.RELEASE


javax.servlet
jsp-api
2.0


javax.servlet
servlet-api
2.5


编写请求视图

在web.xml中提供核心控制器
配置springmvc的核心servlet

指定springmvc的主配置文件路径

配置springmvc配置文件

编写处理器

编写响应视图

@RequestMapping的使用
使用说明
该注解可以用在类或者方法上,表示当前的地址的访问路径。
Value属性用来指定路径

Method属性用来指定当前处理器的访问方式
如果指定post或get表示只能使用post或get来请求,别的不行
如果不指定,什么都可以。
Restful开发风格的时候必须使用,其余不用。
Params属性表示指定一个处理器参数名,表示当前处理器必须接收此参数,否则不让访问,一般不用。
页面

后台

接收java简单类型参数
说明
只要页面请求的数据的名称和要封装的处理器中的参数名一致,springmvc可以自动封装。
页面

后台

注意
如果是springmvc自动封装参数get请求中文不会乱码。
如果是springmvc自动封装参数post请求中文会乱码。
在web.xml中配置中文编码过滤器

接收java对象类型参数
封装一个User对象

说明
只要保证页面传输的参数的名称和javaBean中的属性名一致,就会自动封装。
页面

后台

接收一个对象中包含另外一个对象属性的参数
提供一个Address对象

在User对象中添加Address属性

页面

后台

接收一个对象中包含List和Map属性
在User对象中提供List和Map私有属性

页面

后台

接收组数类型参数
使用场景
主要用于封装id,做批量操作,比如批量删除。
页面

后台

接收日期类型
在User对象中添加一个日期

页面

后台

说明
Springmvc默认只能接收2019/01/01格式的日期。yyyy/MM/dd。
如果是其他格式的日期都必须提供对应的自定义转换器。
自定义日期格式转换器

在springmvc的配置文件中配置日期转换

@ RequestParam注解使用
说明
该注解是放在处理器的参数上,默认表示当前参数必须传值,否则报错。当然可以通过配置的方式设置当前参数不传值也行。也可以给参数一个默认值。
默认值是没有传值的时候才起作用。
当前注解只有在参数需要默认值的时候才有用,一般不加。
页面

后台

@requestBody的使用
说明
有两个功能
功能一:用来得到当前的请求体,只能post请求使用,get请求不能用。【了解就行】
功能二:要在功能一的基础之上才能使用,明天讲。很重要。
后台

页面

猜你喜欢

转载自blog.csdn.net/qq_41655729/article/details/86654194
今日推荐