1. springmvc框架

1.1 什么是springmvc

spring mvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。spring mvc是一个基于mvc的web框架。

1.3 springmvc框架

       第一步:发起请求到前端控制器(DispatcherServlet)

       第二步:前端控制器请求HandlerMapping查找Handler可以根据xml配置、注解进行查找

       第三步:处理器映射器HandlerMapping向前端控制器返回Handler

       第四步:前端控制器调用处理器适配器去执行Handler

       第五步:处理器适配器去执行Handler

       第六步:Handler执行完成给适配器返回ModelAndView

       第七步:处理器适配器向前端控制器返回ModelAndView。ModelAndView是springmvc框架的一个底层对象,包括 Model和view

       第八步:前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)

       第九步:视图解析器向前端控制器返回View

       第十步:前端控制器进行视图渲染。视图渲染将模型数据(在ModelAndView对象中)填充到request域

       第十一步:前端控制器向用户响应结果

组件:

1). 前端控制器DispatcherServlet(不需要程序员开发)

作用接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。

2). 处理器映射器HandlerMapping(不需要程序员开发)

     作用:根据请求的url查找Handler

3). 处理器适配器HandlerAdapter

     作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler 

4). 处理器Handler(需要程序员开发)

注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler

5). 视图解析器View resolver(不需要程序员开发)

作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

6). 视图View(需要程序员开发jsp)

View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)

2. 入门程序

 2.2 配置前端控制器

           在web.xml中配置前端控制器。

2.4 配置处理器适配器

在classpath下的springmvc.xml中配置处理器适配器

通过查看原代码:

此适配器能执行实现 Controller接口的Handler。

      

      2.5 开发Handler

需要实现 controller接口,才能由org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter适配器执行。

public class ItemsController1 implements Controller {

    @Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception { //调用service查找 数据库,查询商品列表,这里使用静态数据模拟
List<Items> itemsList = new ArrayList<Items>();
//向list中填充静态数据 Items items_1 = new Items();
items_1.setName("联想笔记本");
items_1.setPrice(6000f);
items_1.setDetail("ThinkPad T430 联想笔记本电脑!"); Items items_2 = new Items();
items_2.setName("苹果手机");
items_2.setPrice(5000f);
items_2.setDetail("iphone6苹果手机!"); itemsList.add(items_1);
itemsList.add(items_2); //返回ModelAndView
ModelAndView modelAndView = new ModelAndView();
//相当 于request的setAttribut,在jsp页面中通过itemsList取数据
modelAndView.addObject("itemsList", itemsList); //指定视图
modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp"); return modelAndView;
} }

2.6 视图编写

       2.7 配置Handler

            将编写Handler在spring容器加载。

2.8 配置处理器映射器

在classpath下的springmvc.xml中配置处理器映射器

        2.9 配置视图解析器

             需要配置解析jsp的视图解析器。

2.10 部署调试

访问地址:http://localhost:8080/springmvcfirst1208/queryItems.action

处理器映射器根据url找不到Handler,报下边的错误。说明url错误。

处理器映射器根据url找到了Handler,转发的jsp页面找到,报下边的错误,说明jsp页面地址错误了。

Spring MVC 复习笔记01的更多相关文章

  1. Spring MVC 复习笔记04

    复习 springmvc框架: DispatcherServlet前端控制器:接收request,进行response HandlerMapping处理器映射器:根据url查找Handler.(可以通 ...

  2. Spring MVC 复习笔记02

    1. 非注解的处理器映射器和适配器 1.1 非注解的处理器映射器 处理器映射器:org.springframework.web.servlet.handler.BeanNameUrlHandlerMa ...

  3. Spring MVC学习笔记 01

    applicationcontext.xml的配置 <?xml version="1.0" encoding="UTF-8" ?> <bean ...

  4. Spring MVC 复习笔记05

    1. 上传图片 1.1 springmvc中对多部件类型解析 在 页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对mu ...

  5. Spring MVC 复习笔记03

    1. @RequestMapping 1). url映射 定义controller方法对应的url,进行处理器映射使用. 2). 窄化请求映射  3). 限制http请求方法 出于安全性考虑,对htt ...

  6. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  7. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

  8. Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录

    Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...

  9. 第63节:Java中的Spring MVC简介笔记

    前言 感谢! 承蒙关照~ Java中的Spring MVC简介笔记 MVC简介 Spring MVC 基本概念 Spring MVC 项目搭建 maven 使用Spring MVC进行开发 实现数据绑 ...

随机推荐

  1. Object Slicing in C++

    In C++, a derived class object can be assigned to base class, but the other way is not possible. cla ...

  2. 通过Servlet获取初始化参数

    获取初始化参数在web.xml中配置Servlet时,可以配置一些初始化参数.而在Servlet中可以通过ServletConfig接口提供的方法来获取这些参数.(其实还可以通过ServletCont ...

  3. VC/MFC中通过CWebPage类调用javascript函数(给js函数传参,并取得返回值)

    转自:http://www.cnblogs.com/javaexam2/archive/2012/07/14/2632959.html ①需要一个别人写好的类CWebPage,将其对于的两个文件Web ...

  4. ios UITableView多选删除

    第一步, - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath ...

  5. [LintCode] 寻找缺失的数

    class Solution { public: /** * @param nums: a vector of integers * @return: an integer */ int findMi ...

  6. [算法][LeetCode]Single Number——异或运算的巧妙运用

    题目要求 Given an array of integers, every element appears twice except for one. Find that single one. N ...

  7. HDU 5667 Sequence(矩阵快速幂)

    Problem Description Holion August will eat every thing he has found. Now there are many foods,but he ...

  8. CH5402 选课【树形DP】【背包】

    5402 选课 0x50「动态规划」例题 描述 学校实行学分制.每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分.学校开设了 N(N≤300) 门的选修课程,每个学生可选课程的数量 M 是 ...

  9. 2017 Multi-University Training Contest - Team 8

    HDU6140 Hybrid Crystals 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6140 题目意思:这场多校是真的坑,题目爆长,心态爆炸, ...

  10. MongoDB 聚合结果大小限制

    The aggregate command can return either a cursor or store the results in a collection. When returnin ...