Spring MVC 入门指南

server/2024/11/14 8:57:00/

概述

Spring MVC 是一个基于 Java 的实现了 Web 应用的 MVC 设计模式的请求驱动类型的轻量级 Web 框架,通过将应用拆分为模型(Model)、视图(View)和控制器(Controller),使得开发人员能够清晰地组织代码,提高开发效率和可维护性。

核心组件

  1. DispatcherServlet:作为前端控制器,它负责接收请求并分发到不同的处理器。
  2. Controller:控制器负责处理用户的请求,并返回模型和视图。
  3. ModelAndView:用于封装模型数据和视图信息。
  4. ViewResolver:用于解析视图信息,根据逻辑视图名解析成物理视图。
  5. HandlerMapping:用于映射Web请求到对应的Controller。
  6. View:用于渲染模型数据,生成用户界面。

快速入门

环境准备

  • JDK 1.8 或更高版本
  • Spring MVC 框架
  • Web 服务器(如 Tomcat)

项目结构

一个典型的 Spring MVC 项目结构如下:

 

spring-mvc-demo
│
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── example
│   │   │           └── demo
│   │   │               ├── controller
│   │   │               └── DemoController.java
│   │   └── webapp
│   │       ├── WEB-INF
│   │       │   ├── web.xml
│   │       │   └── spring
│   │       │       └── dispatcher-servlet.xml
│   │       └── index.jsp
│   └── pom.xml

配置 Web 应用

  1. web.xml
 

xml

<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/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring/dispatcher-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
  1. dispatcher-servlet.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="com.example.demo.controller" /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/" /><property name="suffix" value=".jsp" /></bean>
</beans>

创建 Controller

 

java

package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;@Controller
public class DemoController {@RequestMapping(value = "/home", method = RequestMethod.GET)public String home(Model model) {model.addAttribute("message", "Hello Spring MVC!");return "index";}
}

创建 JSP 页面

 

jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Home Page</title>
</head>
<body><h1>${message}</h1>
</body>
</html>

总结

Spring MVC 提供了一个清晰、灵活的方式来构建 Web 应用。通过将请求处理逻辑与业务逻辑分离,它使得开发人员能够更高效地开发和维护 Web 应用。以上是一个简单的入门指南,希望能帮助你快速上手 Spring MVC。


http://www.ppmy.cn/server/141437.html

相关文章

漏洞与攻击技术详解

漏洞与攻击技术是网络安全领域中的重要议题&#xff0c;它们之间存在着密切的关系。以下是对漏洞与攻击技术的详细分析&#xff1a; 一、漏洞的定义与分类漏洞是指在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷&#xff0c;这些缺陷使得攻击者能够在未授权的情况下访…

GitHub Org如何运营

运营一个GitHub Org&#xff08;组织&#xff09;是一个复杂但充满价值的过程&#xff0c;它涉及多个方面&#xff0c;包括项目管理、团队协作、代码审查、文档维护、社区建设等。以下是一篇关于如何运营GitHub Org的详细指南&#xff0c;旨在帮助组织者更好地管理和维护其GitH…

MySQL电商多级分类表设计方案对比

MySQL电商多级分类表设计方案对比 在电商系统中&#xff0c;多级分类是一个常见的需求&#xff0c;用于组织和管理商品类别&#xff0c;合理的设计可以提高系统的性能和可维护性。本文将详细介绍三种不同的多级分类表设计方案&#xff0c;我们将使用宠物分类作为示例数据&…

Android打包流程图

一.先来看下官网最新构建流程,比较简约.但是隐藏了很多过程. 编译器将您的源代码转换成 DEX&#xff08;Dalvik Executable) 文件&#xff08;其中包括运行在 Android 设备上的字节码&#xff09;&#xff0c;将所有其他内容转换成已编译资源。APK 打包器将 DEX 文件和已编译资…

编写第一个 Appium 测试脚本:从安装到运行!

前言 最近接到一个测试项目&#xff0c;简单描述一下&#xff0c;需求就是&#xff1a;一端发送指令&#xff0c;另一端接受指令并处理指令。大概看了看有上百条指令&#xff0c;点点点岂不是废了&#xff0c;而且后期迭代&#xff0c;每次都需要点点点&#xff0c;想想就头大…

解析Eureka的架构

1. 引言 1.1 Eureka的定义与背景 Eureka是由Netflix开发的一个RESTful服务&#xff0c;用于服务发现。它是微服务架构中的一个核心组件&#xff0c;主要用于管理服务的注册和发现。Eureka允许服务提供者注册自己的服务信息&#xff0c;同时也允许服务消费者查询可用的服务&am…

macOS 设置固定IP

文章目录 以太网Wifi![请添加图片描述](https://i-blog.csdnimg.cn/direct/65546e966cae4b2fa93ec9f0f87009d8.png) 基于 macOS 15.1 以太网 Wifi

【Android、IOS、Flutter、鸿蒙、ReactNative 】文本点击事件

Android Studio 版本 Android Java TextView 实现 点击事件 参考 import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import android.widget.Toast;public c…