目录
一、SpringMVC介绍
1.MVC是什么?MVC是一种架构模式不是一种设计模式
如图所示,视图中的数据如果来至于模型,视图与模型之间并不会产生交互,都是通过控制器产生交互的。控制器是整个MVC中最重要的部分,接收视图参传入的数据再调用后端的业务逻辑进行处理,再将后端的数据返回给视图。
2.什么是SpringMVC?
SpringMVC是Spring体系的轻量级Web MVC框架。
Spring MVC的核心是Controller控制器,用于处理请求,产生响应
Spring MVC基于Spring IOC容器运行,所有对像被IOC管理
3.Spring 5.x的变化如下:
官方指导文档地址https://docs.spring.io/spring-framework/docs/current/reference/html/web.html
二、Spring MVC的环境配置
1.在IDEA环境下创建Maven WebApp
1、在idea新建项目,选择maven同时jdk需保持1.8以上。创建完成后应选择自动导入包图3右下角
2.由于创建的工程不是一个web工程需要在项目的Project Structure进行设置
在下面需要对Web进行配置,配置地方有两项,一是Web.xml文件存放路径,二是设置web资源存放路径
此时还需创建artfacts才能运行
创建成功!
2.运行这个简单的项目
1.在webapp目录下新建一个HTML测试页面
2.配置Tomcat
添加前面创建的web项目
设置问为热部署
启动服务器访问localhost:8080
3.Spring MVC开发环境配置
1.在pom.xml中添加阿里云镜像仓库和添加依赖
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
</dependencies>
2.配置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_3_1.xsd"
version="3.1">
<!-- DispatcherServlct-->
<servlet>
<servlet-name>springmvc</servlet-name>
<!-- DispatcherServlet是SpringMVC最核心对象
DispatcherServlet用于拦截Http请求
并根据请求的URL调用与之对应的Controller方法,来完成Http请求的处理-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- applicationContext.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<!-- Web应用启动时自动创建Spring IOC容器
并初始化DispatcherServlet-->
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- /代表拦截所有请求-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
3.配置applicationContext.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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 开启组件扫描-->
<!-- 在spring IOC容器初始化过程中,自动创建并管理com.imooc.springmvc及子包中拥有以下注解对象
@Repository 与数据交互类*Dao
@Service 业务逻辑类*Service
@Controller 控制类*Controller
@Component 不好区分类型的类
-->
<context:component-scan base-package="com.springmvc"></context:component-scan>
<!-- 启用SpringMVC中的注解开发模式-->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 将图片/JS/CSS等静态资源排除在外,可提高执行效率-->
<mvc:default-servlet-handler></mvc:default-servlet-handler>
</beans>
4.开发一个Controller控制类测试
package com.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class TestController {
@GetMapping("/t")//localhsot/t
@ResponseBody//直接向响应提供数据不进行页面跳转
public String test(){
return "SUCCESS";
}
}
将maven添加的包发布
6.SpringMVC请求处理示意图