首页 > 其他分享 >阿里技术专家深入讲解,SpringMVC入门到进阶,错过再无

阿里技术专家深入讲解,SpringMVC入门到进阶,错过再无

时间:2023-07-05 21:48:05浏览次数:35  
标签:xml 进阶 SpringMVC 步骤 springframework 点击 org servlet 入门

前言

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快速入门程序的一些总结。如果觉得还不错的话,就送我一个赞吧!如果本文对你有用的话,也欢迎收藏哦!

标签:xml,进阶,SpringMVC,步骤,springframework,点击,org,servlet,入门
From: https://www.cnblogs.com/nifrecxgh/p/17529860.html

相关文章

  • 「学习笔记」数列分块入门 1 ~ 9
    一天多一点的时间,做完了这\(9\)道题,除了最后一道题之外,都感觉良好.这里是黄学长的博客.数列分块入门1区间加法,单点查值.很入门的题目了.暴力处理两边不完整的块,完整的块维护一个tag加法标记./*Thecodewaswrittenbyyifan,andyifanisneutral!!!......
  • SpringMVC框架详解:模型+核心组件+实现原理等详解
     MVC模型SpringMVC基于MVC模式,因此理解SpringMVC需要先对MVC模式有所了解。MVC是model、view、和controller的缩写,是软件开发中一种常用的架构模式。MVC各部分根据职责进行分离,使程序的结构更为直观,增加了程序的可扩展性、可维护性、可复用性。可以用如下的图形来......
  • 美团特供IDEA入门实战笔记CSDN显踪,竟无良程序员白嫖后举报下架
    今天给大家带来的是:黄文毅,罗军老师著的 《IntelliJIDEA入门与实战》 黄文毅,罗军是谁?黄文毅,CSDN博客专家,架构师。先后就职于厦门星耀蓝图、厦门美图、上海美团等公司。主要从事Java开发工作,具有丰富的软件开发经验,熟悉Java、高并发、分布式及相关的软件架构。出版《分布式......
  • k8s进阶面试
    docker与k8s的区别,分别适用于什么场景?docker只负责生成容器,没有其他功能,但部署简单,方便测试等,k8s附带的有各种功能:探针、污点、资源限制、高可用等,如果生产中的服务达到一定规模且需保证全链路监控及高可用,k8s是最佳选择docker的底层实现原理?如何运行一个容器?六种命名空间的共......
  • 想要用Altair的仿真软件,记住这个入门级配置
    如果你想使用Altair的仿真软件,以下是一些入门级配置的建议。首先,你需要确保你的计算机满足以下要求: 操作系统:Altair支持多种操作系统,包括Windows、Linux和MacOS。你需要根据你自己的需求选择相应的操作系统。处理器:Altair支持多种处理器,包括x86、ARM和PowerPC等。你需要根据......
  • 后台开发进阶!白话DDD从入门到实践
     导语 尝试用大家都能听得懂的话,结合我们在增值业务中的具体实现,分享一下我们从入门到实践DDD的一些心得。0.写在前面的DDD(领域驱动设计)是EricEvans于2003年提出的解决复杂的中大型软件的方法,开始一直不愠不火。直到MartinFowler于2014年发表的论文《Microservices》引起大......
  • 【Netty】「萌新入门」(四)异步编程模型:利用 Future 和 Promise 提高性能与响应能力
    前言本篇博文是《从0到1学习Netty》中入门系列的第四篇博文,主要内容是介绍Netty中Future与Promise的使用,通过使用异步的方式提高程序的性能和响应速度,往期系列文章请访问博主的Netty专栏,博文中的所有代码全部收集在博主的GitHub仓库中;为什么要使用异步?使用异步编程模式......
  • Mysql进阶篇(一)之存储引擎
    一.MySQL体系结构1.连接层最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可......
  • DRF 入门教程 4
    这里我都写在了有道笔记,后续的基础教程DRF入门教程4DRF入门教程5DRF入门教程6......
  • 国产开源流批统一的数据同步工具Chunjun入门实战
    @目录概述定义特性部署安装版本对应关系通用配置详解整体配置Content配置Setting配置Local提交Standalone提交Json方式使用SQL方式使用MySQLSinkKafkaSink概述定义Chunjun官网https://dtstack.github.io/chunjun-web/源码release最新版本1.12.8Chunjun文档地址http......