当前位置: 首页 > news >正文

【SpringMVC 入门介绍】

文章目录

  • 前言
  • 一、SpringMVC 是什么?
  • 二、SpringMVC 的核心组件
  • 三、SpringMVC 的运行流程
  • 四、SpringMVC 快速入门示例
    • 1. 项目结构示例(Maven 工程)
    • 2. 配置 `web.xml`
    • 3. 配置 `springmvc.xml`
    • 4. 编写 Controller 类
    • 5. 编写视图 `hello.jsp`
  • 五、测试效果


前言

SpringMVC 是 Spring Framework 的一个模块,它基于 MVC(Model-View-Controller)架构模式,提供了 Web 应用开发的结构性解决方案。通过注解驱动方式,开发者可以快速构建高效、可维护的 Web 应用。


一、SpringMVC 是什么?

SpringMVC 是 Spring Framework 提供的一套 Web 层解决方案,用于处理 HTTP 请求、响应并进行数据展示。它实现了 MVC 设计模式,将 Web 开发分为以下几个层次:

  • Model(模型层):封装业务数据
  • View(视图层):展示数据,如 JSP、Thymeleaf
  • Controller(控制层):接收请求、调用业务逻辑并返回视图

二、SpringMVC 的核心组件

组件描述
DispatcherServlet前端控制器,统一请求入口
HandlerMapping根据请求 URL 匹配对应的处理器
HandlerAdapter调用具体的 Controller 处理方法
Controller编写业务逻辑的类
ViewResolver将逻辑视图名解析为具体视图
View最终呈现结果(JSP、HTML)

三、SpringMVC 的运行流程

  1. 用户发起请求,DispatcherServlet 拦截
  2. DispatcherServlet 调用 HandlerMapping 找到对应的 Handler(控制器)
  3. 通过 HandlerAdapter 执行对应 Controller 方法
  4. Controller 返回 ModelAndView 对象
  5. DispatcherServlet 调用 ViewResolver 解析视图
  6. 返回最终视图给浏览器

示意图如下:

浏览器 -> DispatcherServlet -> HandlerMapping -> Controller -> ViewResolver -> View -> 浏览器

四、SpringMVC 快速入门示例

1. 项目结构示例(Maven 工程)

springmvc-demo
├── src
│   └── main
│       ├── java
│       │   └── com.example.controller.HelloController
│       └── webapp
│           ├── WEB-INF
│           │   ├── web.xml
│           │   └── views/hello.jsp
│           └── index.jsp

2. 配置 web.xml

<web-app><servlet><servlet-name>springDispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springDispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

3. 配置 springmvc.xml

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="..."><!-- 开启注解驱动 --><mvc:annotation-driven /><!-- 扫描 Controller 包 --><context:component-scan base-package="com.example.controller" /><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/" /><property name="suffix" value=".jsp" /></bean>
</beans>

4. 编写 Controller 类

package com.example.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;@Controller
public class HelloController {@RequestMapping("/hello")public ModelAndView sayHello() {ModelAndView mv = new ModelAndView("hello");mv.addObject("msg", "Hello SpringMVC!");return mv;}
}

5. 编写视图 hello.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head><title>Hello</title></head>
<body><h2>${msg}</h2>
</body>
</html>

五、测试效果

启动服务器(如 Tomcat),访问:

http://localhost:8080/hello

页面应显示:

Hello SpringMVC!
http://www.dtcms.com/a/249959.html

相关文章:

  • BKA-CNN-LSTM、CNN-LSTM、LSTM三模型光伏功率预测对比!(Matlab完整源码和数据)
  • 推理智能体RAG
  • 使用docker中的ollama
  • 【Docker基础】Docker核心概念:命名空间(Namespace)与资源隔离联系
  • 【零散技术】5分钟完成Odoo18 登陆页面全自定义
  • Spring Bean 生命周期:注册、初始化、注入及后置操作执行顺序
  • Go同步原语与数据竞争:原子操作(atomic)
  • 架构下的最终瓶颈:数据库如何破局?
  • java设计模式[1]之设计模式概览
  • java33
  • 23 - HaLoAttention模块
  • 从事算法工作对算法刷题量的需求
  • 从代码学习深度学习 - 子词嵌入 PyTorch版
  • JUC核心解析系列(三)——并发容器深度解析
  • acm模式stringstream
  • Windows平台进程加速方案研究:以网盘下载优化为例
  • Relin梦中门——第二章——感官
  • 带中断计数器的UART接收中断程序 (8259@400H/402H)
  • FreeRTOS定时器
  • Element Plus 去除下拉菜单周黑边
  • Ant Design 版本演进详解:从 1.x 到 5.x 的发展历程
  • docker安装mysql数据库及简单使用
  • 自恢复式保险丝如何实现自恢复?
  • 走线宽度对高频插入损耗的影响
  • Blender——建构、粒子、灯光、动画
  • TensorFlow Serving学习笔记2: 模型服务
  • Linux下成功编译CPU版Caffe的保姆级教程(基于Anaconda Python3.8 包含完整可用Makefile.config文件)
  • 使用预训练卷积神经模型进行分类(MATLAB例)
  • 【读点论文】A Survey on Open-Set Image Recognition
  • JavaScript基础-事件委托(代理、委派)