当前位置: 首页 > 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!

相关文章:

  • 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 去除下拉菜单周黑边
  • 福州高端品牌网站建设/网站开发费用
  • 加强网站及微信平台建设/银川网站seo
  • 我在某赌博网站做代理/最新新闻今天最新新闻
  • 抚顺市城市建设档案馆网站/站长统计app最新版本2023
  • dw成品网站成品视频教学/google搜索中文入口
  • 深圳做网站公司哪家比较好/友情链接交易网站