ssm合集(springmvc)---001

1 SpringMVC 概述
1.1 SpringMVC 简介
SpringMVC 也叫 Spring web mvc 。是 Spring 框架的一部分,是在 Spring3.0 后发布的。
1.2 SpringMVC 优点
1. 基于 MVC 架构
基于 MVC 架构,功能分工明确。解耦合,
2. 容易理解,上手快;使用简单。
就可以开发一个注解的 SpringMVC 项目, SpringMVC 也是轻量级的, jar 很小。不依赖的
特定的接口和类。
3. 作 为 Spring 框 架 一 部 分 , 能 够 使 用 Spring IoC Aop 。 方 便 整 合
Strtus,MyBatis,Hiberate,JPA 等其他框架。
4.SpringMVC 强化注解的使用,在控制器, Service Dao 都可以使用注解。方便灵活。
使用 @Controller 创建处理器对象 ,@Service 创建业务对象, @Autowired 或者 @Resource
在控制器类中注入 Service, Service 类中注入 Dao
1.3 第一个注解的 SpringMVC 程序
所谓 SpringMVC 的注解式开发是指,在代码中通过对类与方法的注解,便可完成处理器
springmvc 容器的注册。注解式开发是重点。
项目: primary-annotation
完成功能:用户提交一个请求,服务端处理器在接收到这个请求后,给出一条欢迎信息,
在响应页面中显示该信息
1.3.1
新建 maven web 项目

ssm合集(springmvc)---001_第1张图片

1.3.2
pom.xml
在创建好 web 项目后,加入 Servlet 依赖, SpringMVC 依赖
依赖:
 
   javax.servlet 
   javax.servlet-api
   3.1.0 
   provided
 
 
   org.springframework 
   spring-webmvc 
   5.2.5.RELEASE
1.3.3
注册中央调度器
 
    
        myweb
        org.springframework.web.servlet.DispatcherServlet

        
        
            
            contextConfigLocation
            
            classpath:springmvc.xml
        

        
        1
    

    
        myweb
        
        *.do
    
1
全限定性类名
       该中央调度器为一个 Servlet ,名称为 DispatcherServlet 。中央调度器的全限定性类名在
导入的 Jar 文件 spring-webmvc-5.2.5.RELEASE.jar 的第一个包 org.springframework.web.servlet
下可找到。
2
       在 中添加 的作用是,标记是否在 Web 服务器(这里是 Tomcat
启动时会创建这个 Servlet 实例,即是否在 Web 服务器启动时调用执行该 Servlet init()
法,而不是在真正访问时才创建。
它的值必须是一个整数。
       当值大于等于 0 时,表示容器在启动时就加载并初始化这个 servlet ,数值越小,该 Servlet
的优先级就越高,其被创建的也就越早;
      当值小于 0 或者没有指定时,则表示该 Servlet 在真正被使用时才会去创建。
      当值相同时,容器会自己选择创建顺序。
3
对于 ,可以写为 / ,建议写为 *.do 的形式。
4 ) 配置文件位置与名称
注册完毕后,可直接在服务器上发布运行。此时,访问浏览器页面,控制台均会抛出
FileNotFoundException 异常。即默认要从项目根下的 WEB-INF 目录下找名称为 Servlet 名称
-servlet.xml 的配置文件。这里的“ Servlet 名称”指的是注册中央调度器 标签
中指定的 Servlet name 值。本例配置文件名为 springmvc-servlet.xml

而一般情况下,配置文件是放在类路径下,即 resources 目录下。所以,在注册中央调
度器时,还需要为中央调度器设置查找 SpringMVC 配置文件路径,及文件名。

ssm合集(springmvc)---001_第2张图片

1.3.4 创建 SpringMVC 配置文件
在工程的类路径即 src 目录下创建 SpringMVC 的配置文件 springmvc.xml 。该文件名可以
任意命名。

ssm合集(springmvc)---001_第3张图片

1.3.5 创建处理器
在类上与方法上添加相应注解即可。
/**
 *  @Controller:创建处理器对象,对象放在springmvc容器中。
 *  位置:在类的上面
 *  和Spring中讲的@Service ,@Component
 *
 *  能处理请求的都是控制器(处理器): MyController能处理请求,
 *                         叫做后端控制器(back controller)
 *
 *  没有注解之前,需要实现各种不同的接口才能做控制器使用
 */
@Controller :表示当前类为处理器
 /**
     * 准备使用doSome方法处理some.do请求。
     * @RequestMapping: 请求映射,作用是把一个请求地址和一个方法绑定在一起。
     *                  一个请求指定一个方法处理。
     *       属性: 1. value 是一个String,表示请求的uri地址的(some.do)。
     *                value的值必须是唯一的, 不能重复。 在使用时,推荐地址以“/”
     *       位置:1.在方法的上面,常用的。
     *            2.在类的上面
     *  说明: 使用RequestMapping修饰的方法叫做处理器方法或者控制器方法。
     *  使用@RequestMapping修饰的方法可以处理请求的,类似Servlet中的doGet, doPost
     *
     *  返回值:ModelAndView 表示本次请求的处理结果
     *   Model: 数据,请求处理完成后,要显示给用户的数据
     *   View: 视图, 比如jsp等等。
     */
@RequestMapping :表示当前方法为处理器方法。该方法要对 value 属性所指定的 URI
进行处理与响应。被注解的方法的方法名可以随意。

ssm合集(springmvc)---001_第4张图片

若有多个请求路径均可匹配该处理器方法的执行,则 @RequestMapping value 属性中
可以写上一个数组。
ModelAndView 类中的 addObject() 方法用于向其 Model 中添加数据。 Model 的底层为一
HashMap
Model 中的数据存储在 request 作用域中, SringMVC 默认采用转发的方式跳转到视图
本次请求结束,模型中的数据被销毁。

1.3.6 声明组件扫描器
springmvc.xml 中注册组件扫描器
 
    
1.3.7 定义目标页面
webapp 目录下新建一个子目录 jsp ,在其中新建一个 jsp 页面 show.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    

/WEB-INF/view/show.jsp从request作用域获取数据


msg数据:${msg}


fun数据:${fun}

1.3.8 修改视图解析器的注册
SpringMVC 框架为了避免对于请求资源路径与扩展名上的冗余,在视图解析器
InternalResouceViewResolver 中引入了请求的前辍与后辍。而 ModelAndView 中只需给出要跳
转页面的文件名即可,对于具体的文件路径与文件扩展名,视图解析器会自动完成拼接。

ssm合集(springmvc)---001_第5张图片

show.jsp 文件放到 /WEB-INF/jsp/ 路径中
1.3.9 修改处理器

ssm合集(springmvc)---001_第6张图片

使用逻辑视图名称, show 是逻辑视图名称。
1.3.10 使用 SpringMVC 框架 web 请求处理顺序

ssm合集(springmvc)---001_第7张图片

1.4 SpringMVC MVC 组件

ssm合集(springmvc)---001_第8张图片

1.5 SpringMVC 执行流程(理解)
1.5.1
流程图

ssm合集(springmvc)---001_第9张图片

1.5.2
执行流程简单分析
1 )浏览器提交请求到中央调度器
2 )中央调度器直接将请求转给处理器映射器。
3 )处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后
返回给中央调度器。
4 )中央调度器根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器。
5 )处理器适配器调用执行处理器。
6 )处理器将处理结果及要跳转的视图封装到一个对象 ModelAndView 中,并将其返回给
处理器适配器。
7 )处理器适配器直接将结果返回给中央调度器。
8 )中央调度器调用视图解析器,将 ModelAndView 中的视图名称封装为视图对象。
9 )视图解析器将封装了的视图对象返回给中央调度器
10 )中央调度器调用视图对象,让其自己进行渲染,即进行数据填充,形成响应对象。
11 )中央调度器响应浏览器。
有的地方讲义比较详细就用的讲义的图。。。有点困也变懒了。

你可能感兴趣的:(springmvc,springmvc)