spring MVC 初学者入门-搭建一个Spring MVC项目

一、什么是MVC

将应用程序分为三个核心组件:模型( Model )、视图( View )和控制器( Controller ),以实现关注点分离。 这种 模式用于应用程序的分层开发
模型( Model :负责数据和业务逻辑,通常包含数据存储、检索 和业务规则 包含业务逻辑和数据状态。
视图( View :负责显示数据(模型)的用户界面,不包含 业务逻辑 包含展示逻辑,将模型的数据渲染为用户界面。
控制器( Controller :接收用户的输入,调用模型 和视图去完成用户的请求 包含逻辑,用于响应用户输入并更新模型和视图

1、服务器启动,应用被加载。读取到 web.xml 中的配置创建 spring 容器并且初始化容器中的对象。
2、浏览器发送请求,被 DispatherServlet 捕获,该 Servlet 并不处理请求,而是把请求转发出去。转发的路径是根据请求 URL,匹配@RequestMapping 中的内容。
3、匹配到了后,执行对应方法。该方法有一个返回值。
4、根据方法的返回值,借助 InternalResourceViewResolver 找到对应的结果视图。
5、渲染结果视图,响应浏览器。

DispatcherServlet:前端控制器
用户请求到达前端控制器,它就相当于 mvc 模式中的 c,dispatcherServlet 是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet 的存在降低了组件之间的耦合性。

HandlerMapping:处理器映射器
HandlerMapping 负责根据用户请求找到 Handler 即处理器,SpringMVC 提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

Handler:处理器
它就是我们开发中要编写的具体业务控制器。由 DispatcherServlet 把用户请求转发到 Handler。由Handler 对具体的用户请求进行处理。

HandlAdapter:处理器适配器
通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理 器进行执行。

View Resolver:视图解析器
View Resolver 负责将处理结果生成 View 视图,View Resolver 首先根据逻辑视图名解析成物理视图名 即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。

View:视图
SpringMVC 框架提供了很多的 View 视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是 jsp。 一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

                        
原文链接:https://blog.csdn.net/agonie201218/article/details/100274261

二、MVC的优缺点

优点:

关注点分离:将数据、业务逻辑和界面显示分离,降低耦合度。

易于维护:每个组件负责特定的任务,便于单独开发和维护。

扩展性:可以独立地替换或更新模型、视图或控制器。

缺点:

可能增加复杂性:对于简单项目,引入MVC可能会增加不必要的复杂性。

性能问题:如果不正确使用,可能会导致性能问题。

三、项目结构

一个典型的Maven项目结构,包括src/main/javasrc/main/resources目录。

pom.xml中添加Spring MVCServlet API的依赖。

配置web.xml来设置Spring MVCDispatcherServlet

mycontroller.java是一个控制器来处理HTTP请求。

index.html是HTML视图页面。

四、SpringMVC 的执行流程如下:

  1. 客户端发送请求:当客户端(如浏览器)发送一个HTTP请求到服务器时,请求会首先被Tomcat服务器接收。
  2. DispatcherServlet 接收请求:在SpringMVC中,DispatcherServlet是核心控制器,它接收所有的请求并将其分发给相应的处理器(Controller)。
  3. HandlerMapping 映射处理器:DispatcherServlet 通过 HandlerMapping 来确定请求对应的处理器(Controller)。
  4. Controller 处理请求:找到对应的处理器(Controller)后,DispatcherServlet 将请求转发给该处理器进行处理。
  5. 处理器处理请求:处理器(Controller)根据请求的内容进行相应的处理,可能会调用相应的业务逻辑处理数据,并返回一个 ModelAndView 对象。
  6. 视图解析器解析视图:DispatcherServlet 将 ModelAndView 对象中的视图逻辑名称交给 ViewResolver(视图解析器)来解析,找到对应的视图页面。
  7. 视图渲染:ViewResolver 找到对应的视图页面后,将数据填充到视图中,生成最终的视图页面。
  8. 响应结果:DispatcherServlet 将最终生成的视图页面返回给客户端,客户端接收到响应后进行展示。
  9. 总的来说,SpringMVC 的执行流程包括接收请求、映射处理器、处理请求、解析视图、渲染视图和响应结果等步骤,通过这一系列的流程,SpringMVC能够有效地处理客户端的请求并返回相应的结果给客户端。

                        
原文链接:https://blog.csdn.net/qq_74329022/article/details/138326488

五、用IDEA搭建Spring MVC项目

1.安装maven, IDEA配置maven

2.新建MVC文件工程

选择 File > New > Project >empty project>projectname>projectlocation填好项目名称和代码位置

依次选择 File > New > Moudle> Maven archetype > org.apache.maven.archetypes:maven-archetype-webapp > create

创建完成后的工程如下:

src>main>new directory>java

3.配置文件

1)pom.xml文件

记得点击右上角的小M符号加载工具包。先配置 springmvc 的依赖,以便获取 springmvc 所需的 jar 包。CableManagementSystem/pom.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.example</groupId>
  <artifactId>CableManagementSystem</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>CableManagementSystem Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>

<!--    添加springMVC依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
<!--    spring核心类-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
<!--    servlet-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>
<!--JSP-->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>

  </dependencies>
  <build>
    <finalName>CableManagementSystem</finalName>
  </build>
</project>

2)配置spring-mvc.xml 文件

点击右上角小M加载。CableManagementSystem/src/main/resources/spring-mvc.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"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       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
       http://www.springframework.org/schema/mvc
       https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--采用注解驱动-->
    <mvc:annotation-driven/>
<!-- 这个配置文件用于配置Spring MVC的基本设置,包括扫描包路径和视图解析器的设置。-->

<!-- 扫描控制器:配置spring MVC 要扫描的包-->
<!-- 使用了context命名空间的component-scan标签来配置Spring MVC要扫描的包路径为"com.cable.controller"。    -->
    <context:component-scan base-package="com.cable.controller"/>

<!--定义内部资源视图解析器:负责解析控制器里从逻辑视图到物理页面的映射-->
<!--接下来使用了bean标签定义了一个InternalResourceViewResolver的bean。这个bean是Spring MVC中用于解析视图的类。-->
<!--在这里设置了两个属性:prefix和suffix,分别指定了视图文件的前缀和后缀。-->

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>-->
        <property name="prefix" value="/WEB-INF/views/"/> <!--路径-->
        <property name="suffix" value=".jsp"/> <!--扩展名-->
    </bean>
</beans>

<!--最后,需要点击右上角的m加载进所需要的框架-->

3)配置web.xml

核心控制器

CableManagementSystem/src/main/webapp/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
<!-- 配置 Spring MVC 的前端控制器 -->
  <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>

4)配置controller  

CableManagementSystem/src/main/java/com/cable/controller/IndexController.java

package com.cable.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
    @RequestMapping("/index")
    public String index(){
        return "index";
    }
}

5)配置视图index.jsp

CableManagementSystem/src/main/webapp/WEB-INF/views/index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>hello world!!!</h2>
</body>
</html>

6)配置tomcat

在MVC(Model-View-Controller)架构中,Tomcat是一个常用的Web服务器,用于部署和运行Web应用程序。MVC配置Tomcat的作用包括:

  1. 提供一个运行环境:Tomcat作为一个Web服务器,提供了一个运行Java Web应用程序的环境。通过配置MVC应用程序在Tomcat上运行,可以让应用程序在一个稳定、可靠的环境中工作。
  2. 处理HTTP请求:Tomcat可以接收并处理来自客户端的HTTP请求,然后将请求转发给相应的MVC控制器进行处理。通过配置Tomcat,可以确保请求能够正确地被路由到相应的控制器,并返回相应的视图给用户。
  3. 管理应用程序的部署:Tomcat提供了管理Web应用程序部署的功能,可以通过Tomcat的管理界面来部署、启动、停止和卸载应用程序。通过配置MVC应用程序在Tomcat上部署,可以方便地管理应用程序的生命周期。
  4. 提供静态资源服务:Tomcat可以处理静态资源(如HTML、CSS、JavaScript文件等)的请求,并将这些资源返回给客户端。通过配置Tomcat,可以确保静态资源能够被正确地访问和加载。
  5. 总的来说,MVC配置Tomcat的作用是为MVC应用程序提供一个稳定的运行环境,并处理HTTP请求、管理应用程序的部署,以及提供静态资源服务等功能,从而确保应用程序能够正常运行并向用户提供服务。


原文链接:https://blog.csdn.net/qq_74329022/article/details/138326488

 下载 Tomcat
  • Tomcat 官网:https://tomcat.apache.org/

解压 Tomcat 核心程序
  • 核心程序压缩包:apache-tomcat-11.0.0-M22-windows-x64.zip,解压到非中文、没有空格的目录。
选择合适版本tomcat

Run->edit configurations->选 + 从弹出的菜单中选择tomcat server下的Local,如图:

项目运行不起来,有可能是:

1.java JDK project和module版本不一致

报错:   java 5 过时

2.tomcat不兼容,换个版本试试

报错:   Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:1099

4.最后项目目录是这样的

参考来源:使用Idea快速搭建SpringMVC项目的详细步骤记录_java_脚本之家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值