创建项目(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. matplotlib条形图

    三个班级平均分 import matplotlib.pyplot as plt import matplotlib as mpl classes = ['class1','class2','class ...

  2. 如何在windows Server 2008虚拟机上安装SQLServer2008数据库

    一.环境准备 1.cn_windows_server_2008_r2_standard_enterprise_datacenter_web_x64_dvd_x15-50360.iso 2.NDP452 ...

  3. Scala编程 笔记

    date: 2019-08-07 11:15:00 updated: 2019-11-25 20:00:00 Scala编程 笔记 1. makeRDD 和 parallelize 生成 RDD de ...

  4. B. Rock and Lever 解析(思維)

    Codeforce 1420 B. Rock and Lever 解析(思維) 今天我們來看看CF1420B 題目連結 題目 給一個數列\(a\),求有多少種\((i,j)\)使得\(i<j\) ...

  5. 解放双手,不写SQL!一个开源mybatis神器

    什么是通用 Mapper? 它是一个可以方便的使用 Mybatis 进行单表的增删改查优秀开源产品.它使用拦截器来实现具体的执行 Sql,完全使用原生的 Mybatis 进行操作.在 Github 上 ...

  6. PHP代码审计04之strpos函数使用不当

    前言 根据红日安全写的文章,学习PHP代码审计的第四节内容,题目均来自PHP SECURITY CALENDAR 2017,讲完题目会用一个实例来加深巩固,这是之前写的,有兴趣可以去看看: PHP代码 ...

  7. nb-iot技术能自组网吗

    NB-IoT是运营商主导的网络,运营在授权频段上,LoRa运营在开放频段上,可以由企业自主建设.NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署于GSM网络.UMTS网络或LTE网 ...

  8. 谈谈OKHttp的几道面试题

    来吧,今天说说常用的网络框架OKHttp,也是现在Android所用的原生网络框架(Android 4.4开始,HttpURLConnection的底层实现被Google改成了OkHttp),GOGO ...

  9. 【原创】Linux虚拟化KVM-Qemu分析(五)之内存虚拟化

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: KVM版本:5.9 ...

  10. Java_数组, 懒得整理了 ---------------------> 未完, 待续

    待续 public class TestArray { public static void main(String[] args) { String[] s1 = {"双儿", ...