微信登录

环境搭建 - Spring MVC 配置 - 配置 DispatcherServlet

Java - Web - Spring 《环境搭建 - Spring MVC 配置 - 配置 DispatcherServlet》

引言

在 Java Web 开发中,Spring MVC 是一个非常强大且广泛使用的 Web 框架。而 DispatcherServlet 作为 Spring MVC 的核心组件,就像是一个交通枢纽,负责接收客户端的请求并将其分发给合适的处理器进行处理。本文将详细介绍如何进行 Spring MVC 的环境搭建以及如何配置 DispatcherServlet

环境搭建

1. 创建 Maven 项目

首先,我们需要创建一个 Maven 项目。可以使用 IDE(如 IntelliJ IDEA 或 Eclipse)来创建,也可以使用命令行:

  1. mvn archetype:generate -DgroupId=com.example -DartifactId=spring-mvc-demo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

2. 添加依赖

pom.xml 文件中添加 Spring MVC 相关的依赖:

  1. <dependencies>
  2. <!-- Spring MVC -->
  3. <dependency>
  4. <groupId>org.springframework</groupId>
  5. <artifactId>spring-webmvc</artifactId>
  6. <version>5.3.18</version>
  7. </dependency>
  8. <!-- Servlet API -->
  9. <dependency>
  10. <groupId>javax.servlet</groupId>
  11. <artifactId>javax.servlet-api</artifactId>
  12. <version>4.0.1</version>
  13. <scope>provided</scope>
  14. </dependency>
  15. </dependencies>

3. 配置 Web 应用的目录结构

确保项目的目录结构符合 Web 应用的规范,主要包括 src/main/webapp 目录,其中包含 WEB-INF 文件夹,用于存放配置文件。

配置 DispatcherServlet

1. 配置 web.xml

src/main/webapp/WEB-INF 目录下创建或编辑 web.xml 文件,配置 DispatcherServlet

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5. <!-- 配置 DispatcherServlet -->
  6. <servlet>
  7. <servlet-name>dispatcherServlet</servlet-name>
  8. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  9. <!-- 指定 Spring MVC 的配置文件位置 -->
  10. <init-param>
  11. <param-name>contextConfigLocation</param-name>
  12. <param-value>/WEB-INF/spring-mvc-config.xml</param-value>
  13. </init-param>
  14. <load-on-startup>1</load-on-startup>
  15. </servlet>
  16. <!-- 映射 DispatcherServlet -->
  17. <servlet-mapping>
  18. <servlet-name>dispatcherServlet</servlet-name>
  19. <url-pattern>/</url-pattern>
  20. </servlet-mapping>
  21. </web-app>

解释

  • <servlet> 标签用于定义一个 Servlet,这里定义了 DispatcherServlet
  • <init-param> 标签中的 contextConfigLocation 参数指定了 Spring MVC 的配置文件位置。
  • <load-on-startup> 标签设置为 1 表示在 Web 应用启动时就加载该 Servlet。
  • <servlet-mapping> 标签将 DispatcherServlet 映射到根路径 /,表示所有的请求都将由 DispatcherServlet 处理。

2. 创建 Spring MVC 配置文件

src/main/webapp/WEB-INF 目录下创建 spring-mvc-config.xml 文件:

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:mvc="http://www.springframework.org/schema/mvc"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/mvc
  8. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd">
  11. <!-- 启用 Spring MVC 注解支持 -->
  12. <mvc:annotation-driven/>
  13. <!-- 扫描控制器类 -->
  14. <context:component-scan base-package="com.example.controller"/>
  15. <!-- 配置视图解析器 -->
  16. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  17. <property name="prefix" value="/WEB-INF/views/"/>
  18. <property name="suffix" value=".jsp"/>
  19. </bean>
  20. </beans>

解释

  • <mvc:annotation-driven/> 启用 Spring MVC 的注解支持,这样我们就可以使用 @Controller@RequestMapping 等注解。
  • <context:component-scan> 标签用于扫描指定包下的控制器类。
  • InternalResourceViewResolver 是一个视图解析器,用于将逻辑视图名解析为实际的 JSP 页面。

3. 创建控制器类

src/main/java/com/example/controller 目录下创建一个控制器类:

  1. package com.example.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.ResponseBody;
  5. @Controller
  6. public class HelloController {
  7. @RequestMapping("/hello")
  8. @ResponseBody
  9. public String hello() {
  10. return "Hello, Spring MVC!";
  11. }
  12. }

解释

  • @Controller 注解将该类标记为控制器类。
  • @RequestMapping("/hello") 注解将 /hello 请求映射到 hello 方法。
  • @ResponseBody 注解表示该方法的返回值将直接作为响应体返回。

4. 部署和测试

将项目部署到 Servlet 容器(如 Tomcat)中,启动服务器,访问 http://localhost:8080/spring-mvc-demo/hello,如果一切配置正确,你将看到页面上显示 Hello, Spring MVC!

总结

步骤 描述 文件
1 创建 Maven 项目 -
2 添加依赖 pom.xml
3 配置 web.xml src/main/webapp/WEB-INF/web.xml
4 创建 Spring MVC 配置文件 src/main/webapp/WEB-INF/spring-mvc-config.xml
5 创建控制器类 src/main/java/com/example/controller/HelloController.java
6 部署和测试 -

通过以上步骤,我们完成了 Spring MVC 的环境搭建和 DispatcherServlet 的配置。DispatcherServlet 作为 Spring MVC 的核心,负责接收和分发请求,通过合理的配置和使用,我们可以构建出强大的 Web 应用。希望本文对你有所帮助!