一,Spring MVC介绍
一,简介
-
是spring体系轻量级web mvc框架
-
基于spring ioc容器运行,所有对象被ioc管理,提高了程序的健壮性与稳定性
-
MVC是架构模式,不是设计模式
-
View:界面部分,和用户进行交互,比如通过界面查询结果,通过表单接收用户信息等
-
Model:数据,相当于java中业务模式部分
-
Controller:中介,是mvc的核心,用于接收视图(view)中传入的数据,再根据数据调用后端业务逻辑(model)得到结果,再通过控制器将后端结果返回视图中(优势:界面和后端java业务逻辑有效解耦,提高程序可维护性)
-
主要用途:简化web应用开发
二,Spring 5.x版本变化
在这里插入图片描述
-
响应式编程:基于事件来的,比如前端点击按钮触发单击响应事件。后端就是当触发某个事件时候,自动去执行某一段代码,专注构建对事件做出响应的响应程序,是新的开发理念和风格(本次课程不涉及这部分)
-
和4.0版本没有很大区别,99%代码都是相同的
三,spring mvc文档:
https://docs.spring.io/spring-framework/docs/current/reference/html/web.html
二,Idea环境下创建maven webapp:
- 创建maven工程
-
配置web功能:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述 -
配合Tomcat 运行web文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三,spring mvc环境配置
- maven依赖spring-webmvc
<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>
- web.xml配置DispatchServlet(springmav最重要的一个类。作用:对所有请求进行拦截)
<?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">
<!--DispatcherServlet是springmvc最核心的对象,用于拦截http请求,并根据请求的url调用与之对应的controller方法,来完成http请求的处理。
相当于DispatcherServlet是公司前台,controller相当于公司对应的人-->
<servlet>
<servlet-name>springmvc</servlet-name>
<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>
- 配置applicationContext的mvc标记
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mv="http://www.springframework.org/schema/mvc"
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">
<!--component-scan:在spring ioc初始化过程中,自动创建并管理com.imooc.springmvc及其子包中拥有以下注解的对象:
@Repository
@Service
@Component
@Controller
-->
<context:component-scan base-package="com.imooc.springmvc"></context:component-scan>
<!--启用spring mvc注解开发模式-->
<mvc:annotation-driven/>
<!--将图片/js/css等静态资源排除在外,提高执行效率-->
<mvc:default-servlet-handler/>
</beans>
- 开发Controller控制器
@Controller
public class TestController {
@GetMapping("/t") //localhost/t
@ResponseBody //直接向响应输出字符串数据,不跳转界面
public String test() {
return "SUCCESS";
}
}
- 测试
-
进行tomcat配置:左上角tomcat-edit configration-deployment-点击编辑键-按照下图操作-ok
在这里插入图片描述 -
点击debug启动tomcat
-
网页查看
在这里插入图片描述
ps:如果点击debug后又对代码进行调整,可以右键-Reload changed classes进行重新编译,热部署
可以把TestController看成原有servlet的替代品,在开发时编写标准方法,也不再引入请求响应对象,只需要在方法中增加对应的注解即可完成web请求处理和结果返回。
在这里插入图片描述
网友评论