Spring MVC入门案例

简介: 作为Spring非常重要的一个组件,Spring MVC在java web领域已经是当之无愧的领头人物,能正确的使用Spring MVC非常重要,今天就一起搭建一个Spring MVC项目的骨架,一起入门下Spring MVC。

作为Spring非常重要的一个组件,Spring MVC在java web领域已经是当之无愧的领头人物,能正确的使用Spring MVC非常重要,今天就一起搭建一个Spring MVC项目的骨架,一起入门下Spring MVC。

软件

  • Spring 4.x
  • Tomcat 8.x
  • MacOS(不限,Java是跨语言的)

案例

  1. 新建maven项目,名称可以任意起。我们的就叫做me.aihe.learnspring

    img_5722ff7c9e237b63cef4b493ba0d7d92.jpe
    image

  2. 添加Spring与spring mvc的依赖。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>me.aihe</groupId>
    <artifactId>learnspring</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <spring.version>4.3.14.RELEASE</spring.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>
    
</project>
  1. 配置项目为tomcat项目,记得提前下载好tomcat软件,我们通过idea指定tomcat的位置。
img_f13bf1fcac25ea8e441e7db91132ad54.jpe
image
  1. 通过idea配置项目为web项目
img_fc5bd0cddf904b1bc1d4fd355fca4b27.jpe
image
  1. 配置Java Web项目的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>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-app>
  1. 配置dispatcher-servlet.xml,tomcat启动的时候会加载servlet名称-servlet.xml的文件。所以我们要在WEB-INF下再添加一个文件dispatcher-servlet.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:mvc="http://www.springframework.org/schema/mvc"
       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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <mvc:annotation-driven />
    <context:component-scan base-package="me.aihe" />

</beans>
  1. 创建一个新的Controller来测试。
package me.aihe;

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

/**
 * description:  该文件说明
 *
 * @author aihe
 * @version 1.0
 * @date 2018/11/6
 */
@Controller
public class FirstController {

    @RequestMapping({"/","/index"})
    @ResponseBody
    public String index(){
        return "index";
    }
}

  1. 再次确认下,项目是否为正确的web项目,idea项目启动的包是否正确,对比下面的图片。先按照下面的进行配置,每个包的细节后面再说。
img_650e0d5494241a8fdb81c6f03475c897.jpe
image
img_44285b79c94966a1d8c7067b1ca680c2.jpe
image
  1. 启动项目,可以看到正确的项目输出。浏览器上看到页面是正常的工作。
img_7872df9455651bdec040408fa327e8c5.jpe
image
img_b202e9a0df250df5cb7b5a9fc1f966b9.jpe
image
  1. 到这里,我们的Spring MVC基本项目就搭建完成了,再后续开发的时候,需要不断的添加依赖让项目变得越来越复杂,但是复杂的项目也是由简单的项目一步步来的,基础的东西掌握扎实也很重要。

Spring Boot的web案例

鉴于Spring Boot构建一个web项目非常的简单快速,这里顺便提及一下,而且近些年Spring Boot越来越火,掌握一下也是很有必要的。

  1. 基本上现在的IDE都会有Spring Boot的initializer. 我们用的是Idea,如图。


    img_8ad177cd948d645c85443f6d0428393f.jpe
    image
  2. 勾选web依赖就可以。

img_3fc4b69eb6d787899592892b16ffcc36.jpe
image
  1. 直接创建一个Controller的java类就可以。
img_45e3f7f88c8f3a4091a92f499e19b254.jpe
image
  1. 启动项目
img_665e2fbfdf03576bae4b614987614986.jpe
image

是不是非常的简单,Spring Boot极大的简化了我们开发的步骤,但是想要提高技术最好还是要明白其内部的原理。

最后

这次关于Spring MVC的环境搭建就说到这,本次主要介绍了使用Tomcat搭建Spring MVC项目与使用Spring Boot搭建web项目。

如果想对Spring MVC有更深入的理解,参考之前写的一些关于Spring MVC原理分析的文章
探索Spring

参考

相关文章
|
2月前
|
前端开发 Java 数据库
SpringBoot入门 - 对Hello world进行MVC分层
SpringBoot入门 - 对Hello world进行MVC分层
50 3
SpringBoot入门 - 对Hello world进行MVC分层
|
2月前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
36 4
|
9天前
|
存储 安全 Java
Spring Security 入门
Spring Security 是 Spring 框架中的安全模块,提供强大的认证和授权功能,支持防止常见攻击(如 CSRF 和会话固定攻击)。它通过过滤器链拦截请求,核心概念包括认证、授权和自定义过滤器。配置方面,涉及密码加密、用户信息服务、认证提供者及过滤器链设置。示例代码展示了如何配置登录、注销、CSRF防护等。常见问题包括循环重定向、静态资源被拦截和登录失败未返回错误信息,解决方法需确保路径正确和添加错误提示逻辑。
Spring Security 入门
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
58 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
17天前
|
设计模式 前端开发 Java
步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理
通过对 `DispatcherServlet`源码的深入剖析,我们了解了SpringMVC请求处理的全流程。`DispatcherServlet`作为前端控制器,负责请求的接收和分发,处理器映射和适配负责将请求分派到具体的处理器方法,视图解析器负责生成和渲染视图。理解这些核心组件及其交互原理,有助于开发者更好地使用和扩展SpringMVC框架。
29 4
|
2月前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
18 1
 SpringBoot入门(3) - 对Hello world进行MVC分层
|
30天前
|
Java 数据库连接 数据库
从入门到精通---深入剖析Spring DAO
在Java企业级开发中,Spring框架以其强大的功能和灵活性,成为众多开发者的首选。Spring DAO(Data Access Object)作为Spring框架中处理数据访问的重要模块,对JDBC进行了抽象封装,极大地简化了数据访问异常的处理,并能统一管理JDBC事务。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring DAO,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
24 1
|
2月前
|
监控 Java 数据安全/隐私保护
如何用Spring Boot实现拦截器:从入门到实践
如何用Spring Boot实现拦截器:从入门到实践
52 5
|
2月前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
138 2
|
2月前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
本文介绍了如何在Spring Boot项目中实现MVC分层架构,通过将代码划分为controller、service、dao和entity四个部分,实现高内聚低耦合的设计。示例项目包括用户增删查改功能,详细展示了各层的具体实现及运行测试。
44 11