SpringMVC入门案例

SpringMVC 概述:

SpringMVC是一种基于Java实现MVC模型的轻量级Web框架

三层架构

  • 表现层:负责数据展示
  • 业务层:负责业务处理
  • 数据层:负责数据操作
    SpringMVC入门案例_第1张图片

MVC(Model View Controller):一种用于设计创建Web应用程序表现层的模式

  • Model(模型):数据模型,用于封装数据
  • View(视图):页面视图,用于展示数据
  • jsp
  • html
    SpringMVC入门案例_第2张图片

Controller(控制器):处理用户交互的调度器,用于根据用户需求处理程序逻辑

  • Servlet
  • SpringMVC

SpringMVC优点

  • 使用简单
  • 性能突出(相比现有的框架)- 灵活性强

入门案例(XML格式)

1、导入SpringMVC相关坐标

<dependencies>
        
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>javax.servlet-apiartifactId>
            <version>3.1.0version>
            <scope>providedscope>
        dependency>
        
        <dependency>
            <groupId>javax.servlet.jspgroupId>
            <artifactId>jsp-apiartifactId>
            <version>2.1version>
            <scope>providedscope>
        dependency>
        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-contextartifactId>
            <version>5.1.9.RELEASEversion>
        dependency>
        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webartifactId>
            <version>5.1.9.RELEASEversion>
        dependency>
        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webmvcartifactId>
            <version>5.1.9.RELEASEversion>
        dependency>
    dependencies>

2、spring-mvc.xml扫描包配置,相当于applicationContext.xml


<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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">
    
    <context:component-scan base-package="com.itzhuzhu"/>

beans>

3、web.xml中配置SpringMVC核心控制器,用于将请求转发到对应的具体业务处理器Controller中(等同于Servlet配置)


<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    
    <servlet>
        <servlet-name>DispatcherServletservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>

        
        <init-param>
            <param-name>contextConfigLocationparam-name>
            <param-value>classpath*:spring-mvc.xmlparam-value>
        init-param>
    servlet>

    <servlet-mapping>
        <servlet-name>DispatcherServletservlet-name>
        <url-pattern>/url-pattern>
    servlet-mapping>
web-app>

4、设定具体Controller的访问路径(等同于Servlet在web.xml中的配置)

//设置当前类为Spring的控制器类
@Controller
public class UserController {
    //设置当前方法返回值类型为String,用于指定请求完成后跳转的页面
    @RequestMapping("/save")
    public String save() {
        System.out.println("user mvc controller is running ...");
        //设定具体跳转的页面
        return "success.jsp"; //success.jsp里随便搞个标签就行
    }
}

项目启动访问:http://localhost:8080/save就可以跳转到页面了

入门案例执行流程分析

服务器启动:

  1. 加载web.xmlDispatcherServlet
  2. 读取spring-mvc.xml中的配置,加载所有com.itzhuzhu包中所有标记为bean的类
  3. 读取bean中方法上方标注@RequestMapping的内容

处理请求:

  1. DispatcherServlet配置拦截所有请求/
  2. 使用请求路径与所有加载的@RequestMapping的内容进行比对
  3. 执行对应的方法
  4. 根据方法的返回值在webapp目录中查找对应的页面并展示

SpringMVC 技术架构图:

用去医院看病的流程举例子,然后通过这个例子,再去看SpringMVC的架构图
SpringMVC入门案例_第3张图片

SpringMVC入门案例_第4张图片

  • DispatcherServlet:前端控制器, 是整体流程控制的中心,由其调用其它组件处理用户的请求, 有
    效的降低了组件间的耦合性
  • HandlerMapping:处理器映射器, 负责根据用户请求找到对应具体的Handler处理器
  • Handler:处理器,业务处理的核心类,通常由开发者编写,描述具体的业务
  • HandlAdapter:处理器适配器,通过它对处理器进行执行
  • View Resolver:视图解析器, 将处理结果生成View视图
  • View:视图,最终产出结果, 常用视图如jsp、 html

你可能感兴趣的:(SpringMVC,spring,java,SpringMVC)