SpringMVC入门(工作原理、框架流程、小实例的创建)

简介: SpringMVC入门(工作原理、框架流程、小实例的创建)

SpringMVC入门(工作原理、框架流程、小实例的创建)


SpringMVC入门

前言

一、MVC模式和SpringMVC工作原理

1、MVC的模式和概念

2、基于servlet的MVC模式

二、SpringMVC的工作原理

1.SpringMVC框架组成

2.SpringMVC工作流程

三、SpringMVC接口

四、一个简单的SpringMVC实例创建

1.创建web应用,web.xml配置

2.spring-mvc.xml配置

3.HelloController控制器的内容

4. hello.jsp页面代码

5. 最后结果

总结

前言

本文重点讲解MVC的设计思想以及SpringMVC的工作原理。

首先要知道MVC思想的三个基本部分

image.png

SpringMVC是应用框架,是由Springt提供的一个实现WebMVC设计模式的轻量级框架,降低耦合,且方便应用的扩展和维修。


一、MVC模式和SpringMVC工作原理

1、MVC的模式和概念

对于上面是三个模块的功能,下面做详细解释:

image.png

2、基于servlet的MVC模式

基于servlet的MVC模式实现如下

模型:一个或者多个JavaBean对象用于存储数据和处理业务逻辑。

视图:一个或者多个JSP页面,向控制器提交数据和为模型提供数据显示,JSP页面主要使用HTML标记和JavaBean标记显示数据。

控制器:一个或者多个Servlet对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的—>模型(一个或者多个JavaBean对象),并将处理结果存放到实体模型JavaBean中,输出给视图显示。

继续向下走,这样我们是不是就可以写出来他的流程图,如下:

二、SpringMVC的工作原理

1.SpringMVC框架组成

Spring框架主要由DispatcherServlet、处理器映射、控制器、视图解析器、视图组成

2.SpringMVC工作流程

客户端请求提交到DispatcherServlet;

由DispatcherServlet控制器寻找一个或者多个HandlerMapping找到处理请求的Controller;

DispatcherServlet将请求提交到Controller;

Controller调用业务逻辑处理后返回ModelAndView;

DispatcherServlet寻找一个或者多个ViewResolver视图解析器,找到ModelAndView指定的视图;

视图负责将结果显示到客户端。

同样的接下来我们一样可以划出其流程图,如下:

三、SpringMVC接口

SpringMVC接口这里讲上图中用到的四个

image.png

这里补充一下Controller中的知识:ModelAndView中包含了模型和视图。宏观上看,DispatcherServlet 是整个Web应用的控制器;微观上看,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型和视图。

四、一个简单的SpringMVC实例创建

1.创建web应用,web.xml配置

<!-- 配置核心控制器 -->
    <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-mvc.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>

2.spring-mvc.xml配置

<bean id="helloController" class="com.cc.controller.HelloController" />
    <!-- 配置映射处理器 -->
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
          <property name="mappings">
            <props>
               <prop key="/hello">helloController</prop>
            </props>
          </property>
        </bean>
    <!-- 2.配置视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 2.1 页面前缀 -->
        <property name="prefix" value="/WEB-INF/"/>
        <!-- 2.2 页面后缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>

3.HelloController控制器的内容

public class HelloController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {    
        return new ModelAndView("hello","message","浅聪");
    }
}

4. hello.jsp页面代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
你好
<h1>${message }</h1>
</body>
</html>

5. 最后结果

最后页面出现

------->你好,浅聪。四个字即为成功。

总结

本文简单的介绍了MVC的设计模式,详细讲解了SpringMVC的工作原理,最后简单的介绍了SpringMVC应用的开发步骤。

最后SpringMVC中无需编写自己的DispatcherServlet,传统的控制器类需要实现Controller接口,但是Spring2.5之后有了基于注解的控制器,很方便的。

相关文章
SpringMVC入门到实战------5、域对象共享数据 Request、Session、Application、Model、ModelAndView、Map、ModelMap的详细使用及代码实例
这篇文章详细解释了在IntelliJ IDEA中如何使用Mute Breakpoints功能来快速跳过程序中的后续断点,并展示了如何一键清空所有设置的断点。
SpringMVC入门到实战------5、域对象共享数据 Request、Session、Application、Model、ModelAndView、Map、ModelMap的详细使用及代码实例
|
3天前
|
前端开发 Java Spring
SpringMVC种通过追踪源码查看是哪种类型的视图渲染器(一般流程方法)
这篇文章通过示例代码展示了如何在Spring MVC中编写和注册拦截器,以及如何在拦截器的不同阶段添加业务逻辑。
SpringMVC种通过追踪源码查看是哪种类型的视图渲染器(一般流程方法)
|
19天前
|
XML 前端开发 Java
深入理解SpringMVC工作原理,像大牛一样手写SpringMVC框架
对于SpringMVC相信诸位并不陌生,这是Java开发过程中使用最频繁的框架,在你的项目中可能不一定用MyBatis,但绝对会使用SpringMVC,因为操作数据库还有Hibernate、JPA等其他ORM框架选择,但SpringMVC这个框架在其领域中,可谓是独领风骚
|
2月前
|
前端开发 Java 应用服务中间件
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
|
3月前
|
JSON 前端开发 Java
SpringMVC概述、SpringMVC的工作流程、创建SpringMVC的项目
SpringMVC概述、SpringMVC的工作流程、创建SpringMVC的项目
25 2
|
3月前
|
前端开发 Java 应用服务中间件
Spring MVC框架概述
Spring MVC 是一个基于Java的轻量级Web框架,采用MVC设计模型实现请求驱动的松耦合应用开发。框架包括DispatcherServlet、HandlerMapping、Handler、HandlerAdapter、ViewResolver核心组件。DispatcherServlet协调这些组件处理HTTP请求和响应,Controller处理业务逻辑,Model封装数据,View负责渲染。通过注解@Controller、@RequestMapping等简化开发,支持RESTful请求。Spring MVC具有清晰的角色分配、Spring框架集成、多种视图技术支持以及异常处理等优点。
48 1
|
3月前
|
前端开发 Java 定位技术
生活小事件(SpringMVC主要的组件及作用和执行流程)
Spring MVC 的主要组件包括 DispatcherServlet(核心,请求调度)、HandlerMapping(URL 映射到处理器)、HandlerAdapter(统一执行处理器)、Handler(处理业务逻辑,通常为 @Controller 类)、ViewResolver(视图解析)和 View(渲染输出)。通过这些组件的协作,Spring MVC 实现了从接收请求到返回响应的流程,类似于警察处理交通违规的协调过程。
|
3月前
|
前端开发 JavaScript Java
MVC框架:SpringMVC(三)
MVC框架:SpringMVC
48 0
|
3月前
|
JSON 前端开发 JavaScript
MVC框架:SpringMVC(二)
MVC框架:SpringMVC
53 0
|
3月前
|
前端开发 Java 应用服务中间件
MVC框架:SpringMVC(一)
MVC框架:SpringMVC
85 0