SpringMVC-轻量级Web框架

SpringMVC

SpringMVC框架是一个基于请求驱动的Web框架,并且使用了前段控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器(动作/处理器)进行处理

SpringMVC处理请求的流程

SpringMVC-轻量级Web框架_第1张图片
具体执行步骤如下
  1. 首先用户发送请求——>前端控制器,前端控制器根据请求信息(URL)来决定选择哪一个页面控制器进行处理并把请求委托给它
  2. 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在SpringMVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理,处理完毕后返回一个ModelAndView(模型数据和逻辑视图名)
  3. 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染
  4. 前端控制器再次收回控制权,将相应返回给用户,至此结束

SpringMVC核心架构

SpringMVC-轻量级Web框架_第2张图片
核心架构的处理流程如下
  1. 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制
  2. DisptcherServlet——>HandlerMapping,HanderMapping将会请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象,多个HandlerInterceptor拦截器)对象,通过这种策略,很容易添加新的映射策略
  3. DisptcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用
  4. HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理,并返回一个ModelAndView对象(包含模型数据,逻辑视图名)
  5. ModelAndView的逻辑视图名——>ViewResolver,ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术
  6. View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术
  7. 返回控制权给DisptcherServlet,由DisptcherServlet返回响应给用户,到此一个流程结束

SpringMVC核心开发步骤

  1. DisptcherServlet在web.xml中的部署描述,从而拦截请求到SpringMVC
  2. HandlerMapping的配置,从而将请求映射到处理器
  3. HandlerAdapter的配置,从而支持多种类型的处理器
  4. ViewResolver的配置,从而将逻辑视图名解析为具体视图技术
  5. 处理器(页面控制器)的配置,从而进行功能处理

SpringMVC开发实例(Hello World)

开发环境,运行环境,工程:eclipse Jee  Neon + tomcat8.0.36 + Dynamic Web Project


导入jar包到WebContent/WEB-INF/lib目录

SpringMVC-轻量级Web框架_第3张图片

JSP视图

在WebContent目录下新建一个index.jsp文件
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>



 Spring 3.0 MVC demo


 Say Hello

再在WebContent/jsp目录下新建一个hello.jsp文件
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>




Spring mvc demo


This is my message: ${message}


前端控制器的配置

在WEB-INF目录下配置web.xml


 
    Spring3MVC
    
    	
        spring
        org.springframework.web.servlet.DispatcherServlet
        
        1
    
 
    
        spring
        
		
        /
     
 
     
        index.jsp
    
 
 	
 	
 	
 

配置Spring配置文件

在WEB-INF目录下配置spring-servlet.xml


   
 
 


	
  		
  		
  		
	

编写Controller和Mapping(开发处理器/页面控制器)

在Java Resources/src目录下新建一个包:com.springmvc.controller,在包下新建一个HelloWorldController.java文件
package net.spring.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
 
@Controller
public class HelloWorldController {
 
 @RequestMapping("/hello")
 public ModelAndView helloWorld() {
 
  String me = "Hello World, Spring 3.0!";
  //ModelAndView: 包含了试图要实现的模型数据和逻辑视图名
  //message 为数据的名称,在视图中用来引用的名字
  //me 是对应的值
  //hello 是对应视图的名字。
  ModelAndView modelAndView = new ModelAndView();
  modelAndView.addObject("message", me);
  modelAndView.setViewName("hello");
  return modelAndView;
  
  //以上4个语句相当于一下一句:
  //return new ModelAndView("hello","message",me);
 }
}

工程目录

SpringMVC-轻量级Web框架_第4张图片

你可能感兴趣的:(SpringMVC)