乐趣区

关于java:阿里技术专家深入讲解SpringMVC入门到进阶看这一篇就够了

前言

SpringMVC 是一个实现了 Web MVC 设计模式的轻量级 Web 框架。它与前辈 Struts 2 框架一样,都属于 MVC 框架,因为其应用和性能等方面比 Struts 2 更加优异,所以 Spring MVC 是当初比拟支流的 MVC 框架。

先简略概括一下 SpringMVC 的次要特点:

灵活性强,容易与其余框架集成;提供了前端控制器 DispatcherServlet;反对多种视图技术,如 JSP、FreeMarker 等视图技术;反对国际化;

And So On…

接下来,开始写咱们的第一个 Spring MVC 利用。

开发工具

intelliJ IDEA(版本 2020.2.2)与浏览器

创立我的项目

步骤 1:关上 IDEA,新建我的项目(New Project)。

步骤 2:抉择 Maven,按默认的来,间接点击右下角 Next。接着输出我的项目名,按默认的来,间接点击右下角 Next。

步骤 3:创立完 Maven 我的项目后,点击我的项目名右键,抉择增加框架反对(Add Framework Support…)

步骤 4:勾选 Web Application(4.0),点击 Next。

步骤 5:实现以上步骤,最终的我的项目构造如下:

引入依赖 Jar 包

在 pom.xml 中,导入 Maven 依赖 Jar 包,如下:

<dependencies>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
    </dependencies>

提醒: 导入依赖 Jar 包后,须要点击右侧的 Maven,而后刷新一下能力失效。具体如下:

查看依赖 Jar 包是否导入胜利:

配置前端控制器

在 web.xml 中,配置 SpringMVC 的前端控制器 DispatcherServlet。

在此之前,须要在 src/main/resources 目录下新建 springmvc-config.xml 文件。

web.xml,如下:

<?xml version="1.0" encoding="UTF-8"?>
<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/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.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:springmvc-config.xml</param-value>
        </init-param>
        <!-- 示意容器在启动时立刻加载 Servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

提醒: 在 <servlet-mapping> 中,通过 <url-pattern> 元素的/,会将所有的 URL 拦挡,并交由 DispatcherServlet 解决。

创立 Controller 类

在 src/main/java 目录下,新建一个 com.study.controller 包,并在包中创立控制器类 HelloController,须要实现 Controller 接口。

提醒: 实现的 Controller 接口必须是 org.springframework.web.servlet.mvc 包下的才能够。

在重写 Controller 接口中的 handleRequest 办法时,可能会呈现如下报错:

解决办法:

在 pom.xml 中,导入所需的依赖 Jar 包,如下:

<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>

HelloController.java 如下:

package com.study.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
        // 创立 ModelAndView 对象
        ModelAndView mav = new ModelAndView();
        // 向模型对象中增加数据
        mav.addObject("msg","这是我的第一个 SpringMVC 程序");
        // 设置逻辑视图名
        mav.setViewName("/WEB-INF/jsp/hello.jsp");
        // 返回 ModelAndView 对象
        return mav;
    }
}

本案例中,向模型对象中增加了一个名称为 msg 的字符串对象,并设置返回的逻辑视图门路为/WEB-INF/jsp/hello.jsp,这样,申请就会被转发到 hello.jsp 页面。

创立视图页面

在 WEB-INF 目录下,新建一个 jsp 文件夹,并在文件夹中新建一个 hello.jsp 页面文件,而后在该页面应用 EL 表达式获取 msg 中的信息。

hello.jsp,如下:

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

创立 Spring MVC 的配置文件,配置控制器映射信息

在第四步中,咱们曾经在 src/main/resources 目录下新建了一个 springmvc-config.xml 文件。接下来,咱们须要配置控制器映射信息。

springmvc-config.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 配置处理器 Handle,映射 "/helloController" 申请 -->
    <bean name="/helloController" class="com.study.controller.HelloController" />
    <!-- 处理器映射器,将解决 Handle 的 name 作为 url 进行查找 -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
    <!-- 处理器适配器,配置对处理器中 handleRequest()办法的调用 -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />
</beans>

启动我的项目,测试利用

须要配置 Tomcat 来启动我的项目,具体步骤如下:

步骤 1:点击上方 Add Configureation…

步骤 2:点击左上方 +,抉择 Tomcat Server 下的 Local。

步骤 3:点击右下角的 Fix。批改 Application context 为 /,接着点击 Apply->OK。

实现以上步骤,就能够开始运行我的项目。

关上浏览器拜访http://localhost:8080/helloController

后果如下:

拜访后,有可能会呈现 404、资源未公开等报错信息。

解决办法:

步骤 1:点击右上角的 Project Structure…

步骤 2:点击 Artifacts->WEB-INF-> 右键,新建一个 lib 目录。

步骤 3:再进行如下操作。

提醒: 实现以上步骤,记得点击 Apply->OK。

再重新启动 Tomcat,拜访 http://localhost:8080/helloController 即可。

浏览器中显示出了模型对象中的字符串信息,就阐明这个超级简略的 Spring MVC 程序执行胜利。

总结

以上是我分享给大家的对于 SpringMVC 疾速入门程序的一些总结。如果感觉还不错的话,就送我一个赞吧!如果本文对你有用的话,也欢送珍藏哦!

最初

欢送关注公众号:前程有光,支付一线大厂 Java 面试题总结 + 各知识点学习思维导 + 一份 300 页 pdf 文档的 Java 外围知识点总结!

退出移动版