前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >_Spring MVC简介附入门案例

_Spring MVC简介附入门案例

原创
作者头像
会洗碗的CV工程师
发布2023-11-18 16:47:04
1600
发布2023-11-18 16:47:04
举报
文章被收录于专栏:LongJava学习资料

一、SpringMVC简介

1.1 MVC模型

MVC全称Model View Controller,是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分:

  • Model(模型):指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用中,JavaBean对象,业务模型等都属于Model。
  • View(视图):用于展示模型中的数据的,一般为jsp或html文件。
  • Controller(控制器):是应用程序中处理用户交互的部分。接受视图提出的请求,将数据交给模型处理,并将处理后的结果交给视图显示。

1.2 SpringMVC

        SpringMVC是一个基于MVC模式的轻量级Web框架,是Spring框架的一个模块,和Spring可以直接整合使用。SpringMVC代替了Servlet技术,它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。

二、SpringMVC入门案例

2.1 创建项目

先建立一个空项目:

一直Next,直到下图,确定好项目名和项目位置。点击finish

接下来我们写一个SpringMVC的入门案例,此时我们新建一个模块即可,首先使用maven创建web项目,补齐包结构 ,

 点击Next,如下图 

   因为我已经建好了,所以上面方框中是红色提示符。配置好对应的id,点击next,爆红是点击不了下一步的,为了给你们看我下面就是随便改了一下。知道大概意思就可以了。

 OK,确定没有问题就点击finish。

添加描述

建好之后如上图 

2.2 引入依赖和tomcat插件

pom.xml文件内容:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>mvc_demo1</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>mvc_demo1 Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>https://www.example.com</url>

  <dependencies>
    <!-- Spring核心模块 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.12.RELEASE</version>
    </dependency>
    <!-- springWeb模块 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.2.12.RELEASE</version>
    </dependency>
    <!-- SpringMVC模块 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.12.RELEASE</version>
    </dependency>
    <!-- Servlet -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <!-- JSP -->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
  </properties>

  <build>
    <plugins>
      <!-- tomcat插件 -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <port>8080</port>
          <path>/</path>
          <uriEncoding>UTF-8</uriEncoding>
          <server>tomcat7</server>
          <systemProperties>
            <java.util.logging.SimpleFormatter.format>%1$tH:%1$tM:%1$tS%2 $s%n%4$s: %5$s%6$s%n
            </java.util.logging.SimpleFormatter.format>
          </systemProperties>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

2.3 修改web.xml文件 

        然后在资源webapp目录下的WEB-INF目录下的web.xml文件,这是webapp核心配置文件,并配置相关内容

代码语言:javascript
复制
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

  <display-name>Archetype Created Web Application</display-name>
  <!-- SpringMVC前端控制器,本质是一个Servlet,接受所有请求,在容器启动时就会加载 -->
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!-- 默认进入obj2Param.jsp页面 -->
  <welcome-file-list>
    <welcome-file>obj2Param.jsp</welcome-file>
  </welcome-file-list>

</web-app>

2.4 新建springmvc.xml文件

        编写SpringMVC核心配置文件springmvc.xml,该文件和Spring配置文件写法一样。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    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/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 扫描包 -->
    <context:component-scan base-package="com.example"/>
    <!-- 开启SpringMVC注解的支持 -->
    <mvc:annotation-driven/>
    
</beans>

2.5 编写控制器 

com.example.controller.MyController1.java控制器文件内容:

代码语言:javascript
复制
package com.example.controller;

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

@Controller
public class MyController1 {
    // 该方法的访问路径是/c1/hello1

    @RequestMapping("/c/hello1")
    public void helloMCV(){
        System.out.println("hello springmvc");
    }
}

@Controller说明这是一个控制类 @RequestMapping说明他的上下文路径为:/c/hello1 待会运行的时候可以观察控制台是否输出hello springmvc即可 

2.6 配置运行方式

右击,如下图 

点击+号,然后选择maven,然后选择要运行的项目目录, 运行命令为:tomcat7:run

OK,点击OK,完成运行配置

2.7 运行测试 

在网址栏输入localhost:8080/c/hello1 回车运行,可以看到如下图,

  其实这里报404是正常的,因为这里要返回的是一个视图,但是我并没有写这个视图,所以就报404not found,但是观察控制台有没有输出hello springmvc,如果成功打印出则说明确实是运行成功了,如下图 

三、SpringMVC执行流程

3.1 SpringMVC的组件

  1. DispatcherServlet:前端控制器,接受所有请求,调用其他组件。
  2. HandlerMapping:处理器映射器,根据配置找到方法的执行链。
  3. HandlerAdapter:处理器适配器,根据方法类型找到对应的处理器。
  4. ViewResolver:视图解析器,找到指定视图。

3.2 组件的工作流程

  1. 客户端将请求发送给前端控制器。
  2. 前端控制器将请求发送给处理器映射器,处理器映射器根据路径找到方法的执行链,返回给前端控制器。
  3. 前端控制器将方法的执行链发送给处理器适配器,处理器适配器根据方法类型找到对应的处理器。
  4. 处理器执行方法,将结果返回给前端控制器。
  5. 前端控制器将结果发送给视图解析器,视图解析器找到视图文件位置。
  6. 视图渲染数据并将结果显示到客户端。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、SpringMVC简介
    • 1.1 MVC模型
      • 1.2 SpringMVC
      • 二、SpringMVC入门案例
        • 2.1 创建项目
          • 2.2 引入依赖和tomcat插件
            • 2.3 修改web.xml文件 
              • 2.4 新建springmvc.xml文件
                • 2.5 编写控制器 
                  • 2.6 配置运行方式
                    • 2.7 运行测试 
                    • 三、SpringMVC执行流程
                      • 3.1 SpringMVC的组件
                        • 3.2 组件的工作流程
                        相关产品与服务
                        容器服务
                        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档