SpringMVC 是基于 Spring 框架的一个强大而灵活的 Web 层 MVC 框架。它以 Model-View-Controller(MVC)设计模式为核心,为开发基于 Java 的 Web 应用程序提供了一种简洁而有效的方式。SpringMVC 的优点在于它能够帮助开发者将控制逻辑与视图呈现逻辑解耦,同时支持多种视图技术以及灵活的请求处理方式。
一、SpringMVC 的基本结构
- Controller(控制器):负责处理用户请求,调用服务及业务逻辑,最后返回视图名称。
- Model(模型):代表应用程序的数据,通常由 Java 对象构成。
- View(视图):负责渲染用户界面的内容,常用的视图技术有 JSP、Thymeleaf 等。
二、SpringMVC 配置
要使用 SpringMVC,首先需要一些基本配置。下面是一个简单的 SpringMVC 配置示例。在 web.xml
中配置 Spring MVC 的 DispatcherServlet:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
然后在 WEB-INF
目录下创建一个 dispatcher-servlet.xml
配置文件:
<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
http://www.springframework.org/schema/context/spring-context.xsd">
<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>
三、创建 Controller
接下来,我们需要创建一个 Controller,具体的代码如下:
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.ui.Model;
@Controller
public class HelloController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String sayHello(Model model) {
model.addAttribute("message", "欢迎使用 SpringMVC!");
return "hello"; // 对应的视图文件为 /WEB-INF/views/hello.jsp
}
}
四、创建视图(JSP)
在 WEB-INF/views/
目录下创建一个 hello.jsp
文件,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>SpringMVC 示例</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
五、总结
通过上述步骤,我们构建了一个简单的 SpringMVC 应用。当用户访问 /hello
URL 时,HelloController
的 sayHello()
方法将被调用,这个方法会将一条消息添加到模型中,并返回视图名称 hello
。SpringMVC 会渲染相应的 JSP 页面,并将模型中的数据展示出来。
SpringMVC 的灵活性和简洁性使得它成为 Java Web 开发的流行选择。随着应用程序的复杂性增加,我们可以进一步利用 Spring 的其他模块(如 Spring Security、Spring Data JPA 等)来增强我们的应用,使得开发工作更加高效。