一、 tomcat与jdk版本

Tomcat与JDK版本对应关系(Tomcat官方地址):Apache Tomcat® - Which Version Do I Want?

由官方文档得知 Tomcat10 springboot6版本对应最低  JDK17 及以上版本

二、完成一个入门程序(通过DispatcherServlet访问firstControll)

  • JDK版本:Java22
  • Maven版本:3.9.6
  • Tomcat版本:10
  • Spring版本:6.1.4
  • SpringMVC版本:6.1.4
  • IDEA版本:2024.1
  • Thymeleaf版本:3.1.2

2.1 创建Maven模块

2.1.1.新建一个名为springmvctest的maven项目

2.1.2.将pom.xml文件中的打包方式修改为war

    <groupId>com.powernode</groupId>
    <artifactId>springmvctest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

2.1.3.向pom.xml文件中添加以下依赖

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>6.1.4</version>
        </dependency>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>6.0.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.5.3</version>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring6</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
    </dependencies>

2.2 添加web支持

2.2.1 打开项目模块设置

2.2.2 添加web.xml配置文件

点击那个 笔 图标 才能修改

注意 web.xml 文件的位置:D:\Program Files\JavaEEProject\springmvctest\src\main\webapp\WEB-INF\web.xml

注意版本选择:6.0

点击应用(Apply)

点击应用(Apply),然后点击 OK

添加web支持后的目录结构:

2.3 配置web.xml文件

        Spring MVC是一个web框架,在javaweb中谁来负责接收请求,处理请求,以及响应呢?当然是Servlet。在SpringMVC框架中已经为我们写好了一个Servlet,它的名字叫做:DispatcherServlet,我们称其为前端控制器。既然是Servlet,那么它就需要在web.xml文件中进行配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
         version="6.0">

    <!-- 配置前端控制器 -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

DispatcherServlet是SpringMVC框架为我们提供的最核心的类,它是整个SpringMVC框架的前端控制器,负责接收HTTP请求、将请求路由到处理程序、处理响应信息,最终将响应返回给客户端。DispatcherServlet是Web应用程序的主要入口点之一,它的职责包括:

  1. 接收客户端的HTTP请求:DispatcherServlet监听来自Web浏览器的HTTP请求,然后根据请求的URL将请求数据解析为Request对象。
  2. 处理请求的URL:DispatcherServlet将请求的URL(Uniform Resource Locator)与处理程序进行匹配,确定要调用哪个控制器(Controller)来处理此请求。
  3. 调用相应的控制器:DispatcherServlet将请求发送给找到的控制器处理,控制器将执行业务逻辑,然后返回一个模型对象(Model)。
  4. 渲染视图:DispatcherServlet将调用视图引擎,将模型对象呈现为用户可以查看的HTML页面。
  5. 返回响应给客户端:DispatcherServlet将为用户生成的响应发送回浏览器,响应可以包括表单、JSON、XML、HTML以及其它类型的数据

2.4. 编写控制器FirstController

DispatcherServlet接收到请求之后,会根据请求路径分发到对应的Controller,Controller来负责处理请求的核心业务。在SpringMVC框架中Controller是一个普通的Java类(一个普通的POJO类,不需要继承任何类或实现任何接口),需要注意的是:POJO类要纳入IoC容器来管理,POJO类的生命周期由Spring来管理,因此要使用注解标注:

package com.my.springMVC.controller;



public class firstController {
   
}

2.5. 配置spring-mvc.xml文件

在resources文件夹下建一个 spring-mvc.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/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
">
    <!--组件扫描-->
    <context:component-scan base-package="com.my.springMVC.controller"/>

    <!-- 配置JSP视图解析器 -->
    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

2.6. 提供视图

在WEB-INF目录下新建pages目录,在pages目录中新建.jsp文件,例如:succcess.jsp,并提供以下代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>FirstController页面</h2>
</body>
</html>

2.7. 控制器firstController处理请求返回逻辑视图名称

package com.my.springMVC.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class firstController {
    @RequestMapping("/firstController")
    public String sayHello(){
        return "success";
    }
}

三、测试

3.1 配置Tomcat服务器

然后 OK + Apply

3.2 部署web模块到Tomcat服务器

3.3 启动Tomcat服务器。

部署到web服务器,启动web服务器,打开浏览器,在地址栏上输入:

http://localhost:8080/firstController

项目部署成功,日志信息显示:01-May-2024 23:34:49.254 信息 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:\Program Files\java\apache-tomcat-10.0.2\webapps\manager]的部署已在[41]毫秒内完成

Logo

「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!

更多推荐