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思想的三个基本部分
SpringMVC是应用框架,是由Springt提供的一个实现WebMVC设计模式的轻量级框架,降低耦合,且方便应用的扩展和维修。
一、MVC模式和SpringMVC工作原理
1、MVC的模式和概念
对于上面是三个模块的功能,下面做详细解释:
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接口这里讲上图中用到的四个
这里补充一下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之后有了基于注解的控制器,很方便的。