创建项目(IDEA下)

  打开IDEA,我们开始创建一个简单的Spring MVC项目,流程如下:

  这里要注意一下,我们是基于Maven开发项目,当然是要配置Maven环境的,如果大家之前从来没有配置过Maven,项目创建完成后需要配置一下,否则Maven无法自动为我们导入依赖。

  创建完成之后是这样子如下图所示,左边是项目结构,右边是自动打开的Maven的pom.xml依赖配置文件。

  项目中的文件目录如果大家有所疑问可以参考这篇文章,在这我就不做过多阐述了。


导入依赖

接下来要导入Spring MVC项目的依赖了:

  ① Spring MVC有一个核心依赖。

  ② 我们创建的是一个web项目,因此还需要导入web相关的依赖。

  因为这个项目比较简单,没有复杂的功能,所以我们导入上面两个依赖就好了,在后续的开发中,我们可以根据需要导入其他依赖项,如:json处理依赖、验证码组件依赖、文件上传依赖等。

  我们只需在pom.xml文件的project标签中加入如下配置就好了:

<dependencies>

    <!--1.Spring MVC核心依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.6.RELEASE</version>
</dependency> <!-- 2.web相关依赖-->
<dependency>
<!-- jstl 支持 -->
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<!-- servlet编译环境 -->
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<!-- jsp编译环境 -->
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency> </dependencies>

web应用配置

war包配置

  这是一个web项目,在项目开发完成后可以部署到服务器上,如何部署呢?我们可以把项目打包成一个war包,然后部署。因此,我们需要在pom.xml中配置一下,将如下信息加入到pom.xml的project标签内:

<packaging>war</packaging>

  一般放到这个位置:

创建web目录

  在main目录下创建webapp文件夹,然后在webapp文件夹内创建WEB-INF文件夹,结果如下:

  webapp目录就是我们的web目录,里面存放动态、静态资源和配置文件,如jsp文件、js文件、css文件、HTML文件等。

  WEB-INF目录下只有一个文件,就是我们的web配置文件:web.xml。

生成web.xml

  接下来,我们要生成我们的web.xml配置文件。我们让IDEA自动给我们生成,会自动生成顶部配置,这样我们就不用自己写了,步骤如下:

  下一步, 纠正web.xml的生成位置:

  然后依次点击OK、OK,web.xml就生成了,效果如下:


前端控制器

  前端控制器是Spring MVC的核心,也称核心控制器。

前端控制器的作用

  1. 前端,负责接受所有请求。

  2. 加载mvc.xml,启动Spring MVC工厂。

  3. Spring MVC流程调度。

  下来我们来配置一下前端控制器,在刚生成的web.xml文件的web-app标签中加入我们的前端控制器,配置如下:

<!--Spring MVC的前端(核心)控制器-->
<servlet>
<servlet-name>mvc.ss</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--可选配置-->
<!--servlet默认是懒汉式加载的,此配置设置其为饿汉式加载-->
<load-on-startup>1</load-on-startup> </servlet>
<!--设置接收所有请求-->
<servlet-mapping>
<servlet-name>mvc.ss</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

后端控制器

创建后端控制器

  前端控制器接受的请求,会根据url委派制相应的后端控制器去处理,然后将结果返回至前端控制器,然后前端控制器再进一步委派。所以后端控制器就是处理我们请求的,它实际是一个类,类中有许多的方法,对应一个一个的url访问路径,让我们来配置一下它吧。

  在java目录下创建包:com.ss.web,然后在包中创建控制器类:HelloController.java。

配置后端控制器

  现在的HelloController.java还不是一个真正的后端控制器,因为我们还没有配置,我们做如下配置:

package com.ss.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller // 声明控制器
@RequestMapping("/home") // 主路径
public class HelloController { @RequestMapping("/hello") // 从路径,对应:/home/hello
public String hello(){
System.out.println("业务一执行");
return "hello";
} @RequestMapping("/goods") // 从路径,对应:/home/goods
public String login(){
System.out.println("业务二执行");
return "goods";
}
}

这就是一个后端控制器了,这里需要说明两点:

  ① 此时的后端控制器并没有作用,因为我们没有配置注解相关的信息,注解是失效的,在后面我们会配置。

  ② return语句会跳转到相应的页面,如 return "hello"; 这句的作用是跳转到名为hello的页面,此时也是失效的,因为我们还没有配置视图解析器,下面我们会配置一下。

  既然要跳转页面,我们当然需要写一下相应的页面。

  在webapp目录创建两个文件:hello.jsp 和 goods.jsp。

hello.jsp 内容如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>hello</title>
</head>
<body>
道友好!
</body>
</html>

goods.jsp 内容如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>goods</title>
</head>
<body>
商品页面
</body>
</html>

Spring MVC配置文件

  mvc.xml是Spring MVC项目的配置文件,我们要先创建mvc.xml,然后在里面配置我们的注解扫描、注解驱动、视图解析器等配置信息。

mvc.xml配置如下:

<beans     xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--注解扫描-->
<context:component-scan base-package="com.ss.web"/> <!--注解驱动-->
<mvc:annotation-driven></mvc:annotation-driven> <!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/"></property>
<!--后缀-->
<property name="suffix" value=".jsp"></property>
</bean> </beans>

  此时,我们的后端控制器才正式生效,因为我们配置了注解扫描和注解驱动,注解才会有效;配置了视图管理器,才能把return语句返回的字符串拼接成一个页面的url,进一步完成跳转的功能。


注册mvc.xml

  我们写好Spring MVC配置文件后,还需去加载它。还记得前端控制器的作用吗?有一个作用就是加载mvc.xml配置文件,启动Spring MVC工厂,我们在上面并没有配置它,接下来我们配置一下:

  我们要在前端控制器内注册我们的mvc.xml配置文件,配置如下:

<!--Spring MVC的前端(核心)控制器-->
<servlet>
<servlet-name>mvc.ss</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--启动SpringMVC工厂,加载mvc.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mvc.xml</param-value>
</init-param> <!--可选配置-->
<!--servlet默认是懒汉式加载的,此配置设置其为饿汉式加载-->
<load-on-startup>1</load-on-startup> </servlet>

  配置好后,项目启动后,前端控制器启动后就会加载我们的mvc.xml配置文件了。


配置tomcat

  接下来,我们要配置我们的web服务器了,步骤如下:

  好了,到此为止,tomcat配置完成。


启动项目、测试

  我们项目已经搭建完毕了,我们来测试一下吧。

  启动项目,然后在浏览器访问一下:

  回车后结果如下,成功访问:

  再测试一下另一个,输入:

  结果如下,也是成功访问:

  好了,一个简单的Spring MVC项目搭建完毕,如果有时间的话,我会继续深入的来完善这个Spring MVC项目,增加一下其他功能,如参数传递、json处理、拦截器、异常捕获器、验证码等,和大家分享一下学习的过程。

  感谢道友的阅读,如有不足之处,还望不吝赐教!

Spring MVC——项目的开发流程的更多相关文章

  1. Spring Boot 2.X(三):使用 Spring MVC + MyBatis + Thymeleaf 开发 web 应用

    前言 Spring MVC 是构建在 Servlet API 上的原生框架,并从一开始就包含在 Spring 框架中.本文主要通过简述 Spring MVC 的架构及分析,并用 Spring Boot ...

  2. IntelliJ IDEA上创建maven Spring MVC项目

    IntelliJ IDEA上创建Maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...

  3. maven Spring MVC项目

    IntelliJ IDEA上创建maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...

  4. Java Spring MVC项目搭建(二)——项目配置

    1.站点配置文件web.xml 每一个Spring MVC 项目都必须有一个站点配置文件web.xml,他的主要功能吗....有一位大哥已经整理的很好,我借来了,大家看看: 引用博客地址: http: ...

  5. Spring MVC 项目搭建 -6- spring security 使用自定义Filter实现验证扩展资源验证,使用数据库进行配置

    Spring MVC 项目搭建 -6- spring security使用自定义Filter实现验证扩展url验证,使用数据库进行配置 实现的主要流程 1.创建一个Filter 继承 Abstract ...

  6. IDEA 创建Spring MVC项目搭建

    概述 IntelliJ IDEA是一款更加集成智能的开发工具,相对Myeclipse开发而言,使用起来相对更加的方便:初步手动使用IDEA搭建Spring MVC项目,现将操作流程整理记录如下. 环境 ...

  7. 使用JavaConfig和注解方式实现零xml配置的Spring MVC项目

    1. 引言 Spring MVC是Spring框架重要组成部分,是一款非常优秀的Web框架.Spring MVC以DispatcherServlet为核心,通过可配置化的方式去处理各种web请求. 在 ...

  8. 自建一个Java Spring MVC项目

    用IDEA Intellij,本来创建的是SpringMVC项目,但是下载的时候,太慢了.所以还是用的Maven项目. 选择Maven 项目->Archetype->Web applica ...

  9. maven 纯注解一步一步搭建Spring Mvc项目(入门)

    初次接触spring MVC项目,通过一段时间的学习,本文介绍一种以纯注解的方法去配置spring MVC环境,让那些配置的.xml文件统统见鬼吧. 什么是Spring MVC Spring MVC属 ...

随机推荐

  1. laravel重写

    laravel location / { try_files $uri $uri/ /index.php?$query_string; } ci location / { try_files $uri ...

  2. java安全编码指南之:Thread API调用规则

    目录 简介 start一个Thread 不要使用ThreadGroup 不要使用stop()方法 wait 和 await 需要放在循环中调用 简介 java中多线程的开发中少不了使用Thread,我 ...

  3. 电子阅读器.vbs

    CreateObject("SAPI.SpVoice").Speak"你要说的话!"

  4. 【事件中心 Azure Event Hub】关于EventHub中出现Error时候的一些问题(偶发错误,EventHub后台升级,用户端错误,Retry机制的重要性)

    请问对偶发的定义是多少频率? 针对偶发的定义,主要是看发生的时间非常短,次数极少(如 10次以内),并且发生的时候EventHub其他分区或其他连接都是正常接收和发送数据.所以对于频率是没有明确的定义 ...

  5. 《我想进大厂》之JVM夺命连环10问

    这是面试专题系列第五篇JVM篇. 说说JVM的内存布局? Java虚拟机主要包含几个区域: 堆:堆Java虚拟机中最大的一块内存,是线程共享的内存区域,基本上所有的对象实例数组都是在堆上分配空间.堆区 ...

  6. Nginx的正向代理-反向代理-负载均衡

      正向代理与反向代理[总结]   1.前言 最近工作中用到反向代理,发现网络代理的玩法还真不少,网络背后有很多需要去学习.而在此之前仅仅使用了过代理软件,曾经为了访问google,使用了代理软件,需 ...

  7. filezilla pureftpd 读取目录列表失败

    放行   21, 39000 - 40000端口

  8. JVM内存管理和垃圾回收

    无论对于Java程序员还是大数据研发人员,JVM是必须掌握的技能之一.既是面试中经常问的问题,也是在实际业务中对程序进行调优.排查类似于内存溢出.栈溢出.内存泄漏等问题的关键.笔者将按下图分多篇文章详 ...

  9. 痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4视频播放器(RT-Mp4Player)设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是基于i.MXRT1062的MP4播放器参考设计. i.MXRT1062是恩智浦i.MXRT四位数系列的中端型号,外设搭配上很均衡,辅以6 ...

  10. Error: pg_config executable not found.

    pip 安装 psycopg2 安装及错误 现象: Error: pg_config executable not found. Please add the directory containing ...