Spring学习笔记(七)SpringMVC入门

一.什么是Spring MVC

1.什么是MVC(一种思想模式)

M:模型

V:视图

C:控制器

2、Java EE三层架构

在Java EE开发中,系统经典的三层架构包括表现层、业务层和持久层

表现层(Web层)负责接收客户端请求,并向客户端响应结果;

业务层(Service层)负责业务逻辑处理,和项目需求息息相关;

持久层(Dao层)负责和数据库交互,对数据库表进行增删改查。

MyBatis:作为持久层

Spring作为粘合剂处理接口

Spring MVC 作为表现层

3、对Spring MVC在表现层作用的分析

Spring MVC作用于三层架构中的表现层,用于接收客户端的请求并进行响应。Spring MVC中包含了控制器和视图,控制器接收到客户端的请求后对请求数据进行解析和封装,接着将请求交给业务层处理。业务层会对请求进行处理,最后将处理结果返回给表现层。表现层接收到业务层的处理结果后,再由视图对处理结果进行渲染,渲染完成后响应给客户端。

4、特点

a.支持多语言

b.支持多视图

c.易扩展

二、第一个SpringMVC程序

1、新建一个普通的maven工程

2.在文件 中找到项目结构,点击加号添加web

(或者直接在pom.xml声明当前是一个maven的web工程,语法:<packaging>war</packaging>)

3、引入Maven依赖:项目创建完成后,为保障项目的正常运行,需要导入项目所需的依赖到项目的pom.xml文件中

XML 复制代码
<?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>org.example</groupId>
    <artifactId>SpringMVCdemo01</artifactId>
    <version>1.0-SNAPSHOT</version>
<!--   声明当前是一个maven的web工程-->
    <packaging>war</packaging>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
        </dependency>
        <!--        Spring的核心基本包 ioc相关-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.26</version>
        </dependency>
<!--        服务器相关配置-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        <!--依赖范围-->
            <scope>provided</scope>
        </dependency>
        <!--        jdbc相关-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.26</version>
        </dependency>
        <!--        spring事务相关-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>5.3.26</version>
        </dependency>
        <!--        springAOP相关-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>6.0.9</version>
        </dependency>
        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-aop</artifactId>

            <version>5.2.8.RELEASE</version>

        </dependency>
        <!-- Spring MVC相关 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.8.RELEASE</version> <!-- 版本号根据您的实际情况进行调整 -->
        </dependency>

    </dependencies>
    <build>
    <!--          加入tomcat插件-->
    <plugins>

    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <uriEncoding>utf-8</uriEncoding>
            <port>8080</port> <!-- 访问端口-->
         <!--虚拟项目名-->
            <path>/SpringMVCdemo01</path>    <!-- 访问路径,一般就是你的项目名注意前面有个'/'-->
        </configuration>
    </plugin>
    </plugins>
    </build>
</project>

需要注意的是,要在IDEA中使用插件运行Maven项目,除了需要在pom.xml文件中配置对应的插件外,还需要在IDEA中进行项目运行的相关配置,具体操作如下:

单击IDEA工具栏中的"Run"(运行)→"Edit Configurations..."(编辑配置)选项,弹出Run/Debug Configurations对话框。

在Run/Debug Configurations对话框中,单击左上角的"+"按钮,弹出Add New Configurations菜单列表

在Add New Configurations菜单列表中,单击左侧菜单中的"Maven"选项,进入Maven指令的配置界面。

4、配置前端控制器:在项目的web.xml文件中进行Spring MVC前端控制器的配置

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<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_4_0.xsd"

         version="4.0">
    <servlet> <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <!-- 配置初始化参数,读取Spring MVC的配置文件 --><init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.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>

</web-app>

5、配置处理器映射信息和视图解析器:创建Spring MVC的配置文件spring-mvc.xml,用于配置处理器映射信息和视图解析器。

XML 复制代码
<?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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--      注解扫描-->
    <context:component-scan base-package="com.yx.controller"/>

<!--    视图解析器-->
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--       后缀-->
       <property name="suffix" value=".jsp"/>
<!--       前缀-->
       <property name="prefix" value="/WEB-INF/pages/"/>
   </bean>

</beans>

注意前缀<property name="prefix" value="/WEB-INF/pages/"/>的"/"的用法

6、创建处理器:创建处理器FirstController类,用于处理客户端的请求并指定响应时转跳的页面。

java 复制代码
package com.yx.controller;

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

@Controller
public class FirstController {
    @RequestMapping("/firstController")
    public String sayHello(){
        System.out.println("你好!这是访问的第一个controller");
//     string返回值,默认返回的是视图的名字(视图解析器的前缀+此处的字符串+视图解析器的后缀)
      return "success";
    }
}

7、创建视图(View)页面:创建名称为page的文件夹,并在page文件夹下创建名称为success的jsp文件,用于对客户端请求进行处理后的视图展示、

XML 复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<body>
<h1>Hello Spring MVC!!!</h1>
<h2>这是你的第一个Spring MVC</h2>

</body>
</html>

8、启动项目,测试应用:项目启动成功后,在浏览器中对处理器进行请求访问,访问地址为localhost:8080/SpringMVCdemo01/firstController,访问后,IDEA控制台打印信息"访问到FirstController!",并且浏览器跳转到success.jsp页面中,页面内容如下所示。

9、整体项目位置

注意好WEB-INF文件的位置

10.部署maven的快捷键

在idea的最右边找到maven点击开后在插件中找到tomcat7:run,然后右键编辑配置

效果

相关推荐
xianrenli382 分钟前
MSAI:第四周练习:思维链 (Chain-of-Thought) 提示与参数调优
学习·msai
2601_961875242 分钟前
法考备考计划表|学习计划|资料已整理
java·开发语言·学习·eclipse·tomcat·c#·hibernate
qq_5710993518 分钟前
学习周报四十九
学习
一锅炖出任易仙18 分钟前
创梦汤锅学习日记day34
学习·游戏引擎
半导体守望者29 分钟前
AE AZX射频调谐器射频负载匹配(调谐)原理PPT
学习·机器人·自动化·制造·模块测试
无聊的老谢29 分钟前
基于 Spring Batch 的电信 MR 数据亿级记录清洗实战
spring·batch·mr
Full Stack Developme34 分钟前
Spring Integration 教程
java·后端·spring
me83240 分钟前
【AI面试】大模型面试60问(面试速记+详解)
人工智能·学习·ai
星辰_mya43 分钟前
autowired和resource区别
java·后端·spring·架构·原理
CHHH_HHH1 小时前
【C++】哈希表原理与实战:从冲突解决到性能优化
开发语言·数据结构·c++·学习·算法·哈希算法·散列表