SpringMVC概述
MVC设计模式是一种三层架构开发框架,
- M:指Model,即数据模型层。负责数据业务逻辑已经数据可操作的实现。
- V:指View,即视图层,也就是用户界面。负责格式化数据并把它们呈现给用户,包括数据展示、用户交互、数据验证、界面设计等功能。
- C:指Controller,即控制层。负责接收处理请求,并指定视图将响应结果发送给客户端。
在之前JavaWeb基于javaBean + JSP + Servlet开发中,JavaBean就相当于Model层,JSP相当于View层,而Servlet相当于Controller层。
Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上与Servlet相似。SpringMVC本身就是Spring的一部分,与Spring框架无缝衔接,是当下主流的Web开发框架。
在 Spring MVC 框架中,Controller 替换 Servlet 来担负控制器的职责,用于接收请求,调用相应的 Model 进行处理,处理器完成业务处理后返回处理结果。Controller 调用相应的 View 并对处理结果进行视图渲染,最终客户端得到响应信息。
SpringMVC开发流程
SpringMVC开发步骤大概可以按照以下几步进行:
- 导入SpringMVC依赖包
- 配置SpringMVC前端控制器DispathcerServlet
- 创建Controller类
- 创建View视图页面
- 使用注解配置Controller方法的映射地址(相当于Servlet配置的访问请求路径)
- 配置SpringMVC的核心配置文件
- 访问请求路径进行测试
下面就按照开发流程进行代码的实现:
导入SpringMVC依赖包
<!-- Springmvc依赖包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
配置SpringMVC前端控制器DispathcerServlet
在web.xml中配置SpringMVC前端控制器
<!-- SpringMVC前端控制器 -->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
创建Controller类以及视图页面
UserController
@Controller
public class UserController {
public String test(){
System.out.println("UserController 的save方法");
return "success.jsp"; //相应的视图界面
}
}
Controller中的方法的返回值就是指定的视图界面。
success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>spring-mvc-test</title>
</head>
<body>
spring-mvc test成功
</body>
</html>
使用注解配置Controller方法的映射地址
就是在Controller中的方法上面使用@RequestMapping注解标注请求的访问路径。
这里使用/test进行访问,并将success.jsp页面返会给客户端。
@Controller
public class UserController {
@RequestMapping("/test")
public String test(){
System.out.println("UserController 的save方法");
return "success.jsp";
}
}
配置SpringMVC的核心配置文件
在resources下创建spring-mvc.xml配置文件,开启Controller组件扫描
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
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">
<!-- Controller组件扫描-->
<context:component-scan base-package="com.wang.controller"/>
</beans>
==然后还需要将spring-mvc配置文件的路径交给应用服务器,即将其配置在web.xml中==
直接在刚刚配置的前端控制器下使用 init-param 标签进行配置:
<!-- SpringMVC前端控制器 -->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-web.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
测试
启动Tomcat,并访问 http://localhost:8080/test。
浏览器响应success.jsp
控制台成功打印输出