1、用户发送请求至前端控制器DispatcherServlet
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器
3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器一并返还给DispatcherServlet
4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
5、执行处理器(Controller,也叫后端控制器)
6、Controller执行完成返回ModelAndView
7、HandlerAdapter将controller执行结果ModelAndView返还给DispatcherServlet
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9、ViewReslover解析后返回具体View
10、DispatcherServlet对View进行渲染视图,(就是将模型数据填充到视图中)
11、DispatcherServlet响应用户
springmvc框架各组件说明:
DispatcherServlet:前端控制器
用户请求到达前端控制器,它就是mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了各个组件之间的耦合性。
HandlerMapping:处理器映射器
HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
Handler:处理器
Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。
HandlAdapter:处理器适配器
通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
View Resolver:视图解析器
View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
View:视图
springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。
说明:在springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。
需要用户开发的组件是handler、view
springmvc框架开发步骤:
第一步:创建一个web工程
第二步:导入jar包
运行springmvc的基础包如图
第三步:创建页面itemList.jsp(创建在WEB-INF/jsp/下)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
第四步:创建controller控制器
package com.jxliu.springmvc.controller;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.jxliu.springmvc.pojo.Items;
@Controller//Controller标识该类是一个控制层面的类
public class ItemController {
//.action可以省略
@RequestMapping("/itemList.action")//RequestMapping注解指定请求的url
public ModelAndView itemList() {
//查询商品列表
List
itemList.add(new Items(1, "iphone6", 6000, new Date(), "苹果很贵"));
itemList.add(new Items(2, "imac", 20000, new Date(), "苹果本很贵"));
itemList.add(new Items(3, "苹果", 20, new Date(), "苹果不贵"));
itemList.add(new Items(4, "冰箱", 50000, new Date(), "能装很多苹果"));
itemList.add(new Items(5, "碗", 2, new Date(), "可以装一个苹果"));
//把商品列表传递给jsp
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("itemList", itemList);
//设置展示数据的jsp
//modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");
//配置完视图解析器后只需要返回jsp的名称即可,即springmvc.xml中如果配置了处理器映射器和处理器适配器或者注解驱动以后,就只需要返回jsp页面的名字
modelAndView.setViewName("itemList");
//返回结果
return modelAndView;
}
}
Items类
package com.jxliu.springmvc.pojo;
import java.util.Date;
public class Items {
private int id;
private String name;
private double price;
private Date createtime;
private String detail;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public Items(int id, String name, double price, Date createtime, String detail) {
super();
this.id = id;
this.name = name;
this.price = price;
this.createtime = createtime;
this.detail = detail;
}
}
第五步:创建springmvc.xml配置文件
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
第六步:在web.xml中配置前端控制器
第七步:测试程序
启动tomcat服务器后,在地址栏中输入下面地址测试
http://localhost:8080/springmvc_demo/itemList.action
看到以下页面,即springmvc框架配置成功
有想要Java资料的可以加我们QQ群733234221