SpringMvc第一天yx

SpringMvc第一天

1.SpringMvc的简介

2.SpringMVC的核心组件

3.SpringMvc的运行原理

4.Spring的入门案例(重点)

5.案例的注解解析

6.入门案例的工作流程原理(理解)

一,SpringMVC的概述

1.SpringMvc的简介

SpringMVC是Spring Framework提供的一个web组件,全程Spring Web Mvc,是目前主流的实现mvc的设计模式的框架,为前端提供了映射,视图解析等功能。

MVC实际上是一种软件架构思想,把软件按照模型,视图,控制器来划分。

View:视图层,指工程中的HTML,jsp等页面,作用是和用户进行交互,展示数据。

Controller:控制层,指工程中的servlet,作用是请求和响应我们的浏览器调用业务逻辑。

Model:模型层,指的是工程中的JavaBean,进行数据交互,处理数据。

2.SpringMvc的核心组件

**DispatcherServlet:**前置控制器,负责调度其他组件的执行,可以降低不同组件之间的耦合性。

**Handler:**处理器,完成具体的业务逻辑,相当于servlet、

**HandlerMapping:**DispatcherServlet通过HandlerMapping把请求映射到不同的Handler。

**HandlerInterceptor:**处理器拦截器,如果需要进行一些拦截,可以通过该接口实现。

**HandlerAdapter:**处理器的适配器,Handler执行业务方法之前学院进行一系列的操作通过HandlerAdapter完成。

**HandlerExecutionChain:**处理器执行链。

**ModelAndView:**封装了模型数据和视图信息,作为Handler的处理结果,返回给DispatcherServlet。

**VIewResolver:**视图解析器,DispatcherServlet通过它吧逻辑视图解析为物理视图,最终渲染结果响应给我们的客户端。

3.SpringMVC的运行原理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二,SpringMVC的入门案例(重点)

1.实现步骤

1.创建一个Maven工程。

2.设置一下tomcat服务器,加载web工程

3.导入依赖坐标

4.编写Spring配置类和SpringMvc配置类

5.加载SpringMVC配置类,并且设置SpringMVC的拦截路径

6.定义处理请求的功能类controller。

2.代码实现

2.1创建Maven工程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.1设置一下tomcat服务器,加载web工程
<!--加载tomcat插件-->
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <!--端口号-->
                <port>8080</port>
                <!--项目路径-->
                <path>/ssm</path>
            </configuration>
        </plugin>

    </plugins>
</build>
2.3导入依赖坐标

springmvc+servlet

<!--打包方式-->
<packaging>war</packaging>
<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
</properties>
<!--集成依赖-->
<dependencies>
    <!--servlet依赖-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <!--SpringMVc依赖-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
</dependencies>
2.4编写Spring配置类和SpringMvc配置类

Spring配置类

package com.itxy.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Controller;

@Controller
@ComponentScan("com.itxy")
public class SpringConfig {
}

SpringMvc配置类

package com.itxy.config;


import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;

@Component
@ComponentScan("com.itxy.controller")
public class SpringMvcConfig {
}
2.5加载SpringMVC配置类,并且设置SpringMVC的拦截路径
package com.itxy.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {

    /*配置SpringMVC的核心容器配置类*/
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{SpringConfig.class};
    }

    /*只参与映射的bean资源  Springmvc的配置类*/
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }

    /*路径映射拦截  所以的路径都在mvc容器中进行匹配*/
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}
2.6定义处理请求的功能类controller
package com.itxy.controller;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

//被Spring容器扫描
@Controller
public class UserController {
    /*映射注解*/
    /*映射到/hello*/
    @RequestMapping("/hello")
    @ResponseBody
    public String hello(){
        System.out.println("今天同学们在认真学习");
        return "hello springMvc!";
    }
    @RequestMapping("/hello2")
    @ResponseBody
    public String hello2(){
        System.out.println("今天同学们在认真听课");
        return "hello springMvc666!";
    }
}

3.运行测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三,案例注解解析

3.1@Controller注解

名称:@Controller

类型:类注解

位置:SpringMVC控制器类定义上方

作用:设定SpringMvc的核心控制器bean

示范:

@Controller
public class UserController {
}

3.2@RequestMapping注解

名称:@RequestMapping

类型:方法注解(类注解)

位置:SpringMVC控制器方法定义上方

作用:设置当前控制器方法请求访问路径

示范:

@RequestMapping("/hello")
public String hello(){
    System.out.println("今天同学们在认真学习");
    }

3.3@RequestBody注解

名称:@RequestBody

类型:方法注解(类注解)

位置:SpringMVC控制器方法定义上方

作用:设置当前控制器方法响应内容为当前返回值,无需解析

示范:

@RequestMapping("/hello")
@ResponseBody
public String hello(){
    System.out.println("今天同学们在认真学习");
    return "hello springMvc!";
}

四,入门案例的工作流程分析(理解)

1.启动服务器,执行配置类,初始化web容器

2.执行方法,创建web对象

3.加载配置类

4.执行对应的bean

5.加载controller,每个名称对应一个方法

无需解析

示范:

@RequestMapping("/hello")
@ResponseBody
public String hello(){
    System.out.println("今天同学们在认真学习");
    return "hello springMvc!";
}

四,入门案例的工作流程分析(理解)

1.启动服务器,执行配置类,初始化web容器

2.执行方法,创建web对象

3.加载配置类

4.执行对应的bean

5.加载controller,每个名称对应一个方法

6.执行方法,定义所有请求都通过SpringMvc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值