SpringMVC整体架构(执行原理),快速入门

1:SpringMVC简介

 

 

1:Spring体系简介

 

2:回顾MVC设计模式

 

 service + mapper + pojo

 

 

 

3:SpringMVC的整体架构   - 执行原理 - 记住

 

 

1、 用户发起http请求到DispatcherServlet

2、 前端控制器通过HandlerMapping查找Handler(执行这个请求的人)

3、 映射器返回执行链(HandlerExecutorChain),包含2部分内容,一,Hadnler对象,二,拦截器(组)

4、 前端控制器通过适配器执行Handler

5、 执行业务逻辑

6、 返回ModelAndView,view不是真正的视图对象,是视图名称,model:模型数据

7、 将ModelAndView返回前端控制器

8、 前端控制器通过视图解析器查找视图

9、 返回真正的视图对象

10、       渲染视图

11、       返回渲染结果

12、       产生响应

2:快速入门

1:新建项目导入jar包

4个基本jar + 2个日志包+ 1个springmvc + 1个spring对web的支持包+jsp 4

2:创建和引入配置文件

引入log4J的配置文件

创建springmvc的配置文件

3:配置springmvc的配置文件

1)配置前端控制器

在web.xml中配置springmvc的前端控制器,并指定springmvc的配置文件位置,

其实springmvc的配置文件就是配置一个servlet, 同时指定请求的风格 ,

注意 : 因为springmvc是表现层框架,所以在项目启动的时候就需要加载配置文件。

 

 

1)配置springmvc文件

需要引入mvc约束:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

 

 

配置映射器:BeanNameUrlHandlerMapping

配置适配器: SimpleControllerHandlerAdapter

配置Handler:  手动编写, id或者name 作为Handler作为请求的处理器

配置视图解析器:InternalResourceViewResolver

 

 

4:编写controller及配置

 

 

其实controller就是一个简单的类,想变成控制器的话,需要实现一个Controller的接口,并重写里面的方法,其实这个接口仅仅只有一个方法,默认就会去调用这个方法

 

 

 

5:请求流程回顾

 

 

3:springMVC的默认配置

在springmvc的源码配置文件中有很多的默认配置文件。可以到springmvc包下面的properties中查看。

已经关于映射器和适配器都已经有了相关的默认配置,同样试图解析器也有了默认的配置,

如果不配置视图解析器的话,则在controller,需要写页面的全称,默认的路径是web目录。

在springmvc的默认配置文件中,映射器,适配器,视图解析器都已经有了默认的配置,可以不用自己配置

注意:当使用springmvc的视图解析器默认配置的时候,就不能返回视图名称了,而是要返回全路径。

或者在添加视图名称的时候,写全路径即可

如:mv.setViewName(“forward:/WEB-INF/views/hello.jsp”)

4:springMVC的注解驱动

使用springMVC的注解驱动,简化配置

需要开启springmvc的注解驱动和配置扫描包。

注意:涉及到注解的话就要导入AOP的包。同时要将这个类声明为控制器 。

 

5:@RequestMapping详解

1:标准url

 

 

2:限定请求方式

 

 

6:SpringMVC封装请求参数

1:绑定Servlet内置对象

 

 

2:接受数据类型

 

当客户端有数据传递到服务器端的时候,服务器端也确实需要这个参数,那么可以在对应的方法中,通过在方法参数列表中声明来接受。

注意:此时在参数列表中声明的参数名称应该是传递过来的key,名称要保证一致,如果不一致,可以使用@RequestParam(“name”)注解进行声明;

3:@RequestParam绑定参数

当客户端有数据传递到服务器端的时候,可以直接在对应的方法中,通过在方法参数列表中声明来接受,springmvc自动接受,然后封装到对应的变量中

注意:一定要保证传递过来的key和方法声明中的形参保持一致,如果不一致将接受不到,此时可以使用@RequestParam(“name”)注解进行声明

注解中name就是传递过来值的key,也可以写成@RequestParam(value=“name”)

 

 

4:@ CookieValue,获取cookie的值

 

5:POJO对象绑定参数

SpringMVC会将请求过来的参数名和POJO实体中的属性名进行匹配,如果名称一致,将把值填充到对象中。

不需要自己进行接受封装,spring会将参数直接封装在pojo对象中,只需要在对应方法的参数列表中声明需要接受的对象类型即可,同时还会将对象添加到请求域中。

如果在客户端多出了一些对象无法封装的数据,此时则需要自己在方法的参数列表中进行声明,对象只封装那些可以封装的参数。

比如在添加用户和修改用户的时候,就不需要自己在去接受了。

6: 使用HashMap封装数据

6:总结:

Springmvc接受参数总结:

1、参数很少,可以直接在方法的参数列表中直接进行声明即可,注意传递的参数key需要和列表中的形参一致,如果不一致需要使用@RequestParam(“name”)来声明

2、参数比较多的话,可以封装成对象,此时可以在方法的参数列表中声明对象来接受

3、参数较多,使用1个对象无法完成接受的话,可以先试用对象接受,然后在对象后面继续声明

4、参数比较多,使用对象无法简洁封装的话,这个时候可以使用HashMap来实现封装,但是在HashMap前面需要使用@RequestParam来告诉框架需要将参数封装在Map中

7:SpringMVC与Struts2的区别

 

posted @ 2022-02-16 22:18  这题我不会  阅读(126)  评论(0)    收藏  举报