掌握MVC编程思想

掌握SpringMVC运行原理核心组件

掌握SpringMVC基于配置的开发

掌握SpringMVC的urlpattern和静态资源放行方案

掌握SpringMVC的注解开发

一、SpringMVC入门

1. MVC介绍

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器 (controller)的缩写,它是一种软件设计典范,是一种软件架构设计分层模式。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

View(视图)是应用程序中处理数据显示的部分。

Controller(控制器)是应用程序中处理用户交互的部分。

最典型的MVC就是JSP + servlet + javabean的模式。

2.MVC发展历史

Model 1 (jsp+javabean)

Model 2 (jsp+servlet+javabean)

Model1和Model2的优缺点

Model 1:

Moel1的中心是ISP页面,JSP 页面中结合业务逻辑、服务端处理过程和HTML等,这样就在JSP页面中同时

实现了业务逻辑和流程控制。从而快速开发。

Model1的优缺点:

优点: 简单,快速开发,适用小规模开发:

缺点: 业务逻辑和表示逻辑混合在ISP页面中没有进行抽象和分离,JSP负载太大。所以非常不利于应用系统业务的重用和改动,不便于维护。

Model 2:

Model 2表示的是基于MVC模式的框架。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。从而弥补了ModelI的不足。

Model2其实是在EModel1基础上又抽了-层控制层。

Model2优缺点:

优点: 具有组件化的优点从而更易于实现对大规模系统的开发和管理。职责划分清晰。

缺点: 不适合小项目开发。

3.目前市场上MVC框架

3.1 SpringMVC(主流MVC框架):是spring框架的一部分(子框架), 是实现对Servlet技术进行封装

3.2 Struts框架

3.3 Jfinal框架

二、SpringMVC配置式开发

  1. SpringMVC运行原理(执行过程)

下面的图都是大同小异,核心都是相同的

2.需求:用户提交一个请求,服务端处理器接收到请求后,给出一条信息, 在相应页面中显示该条信息

3.开发步骤

3.1导入jar包

3.2配置web.xml,注册SpringMVC前端控制器(中央调度器)

3.3编写SpringMVC后端控制器

3.4编写springmvc配置文件,注册后端控制器(注意id写法格式)

配置式开发,注册后端控制器需要注意的问题

<!--注意id为'/'开头,以拦截内容结尾-->

<bean id="/my.do" class="cn.bjsxt.handlers.MyHandler"></bean>

3.5编写跳转资源页面

ModelAndView的对象的setViewName();来实现资源跳转

4.web.xml中urlpattern配置问题

4.1配置/和配置/*的区别

/*.do 拦截ur末尾为.do的请求

/* 拦截所有请求

/ 拦截请求和静态资源,不拦截jsp, jsp不是静态资源,也不是url

4.2静态资源无法访问解决方案(三种)

(1)静态资源无法访问的第一种解决方案

web.xml中配置servlet-mappering标签

<servlet-name>default</servlet-name>

<url-pattern>*.png</url-pattern>

这样就可以放行掉想使用的静态资源,也可以*.js *.css

(2~3)其他两种方案都是在springmvc.xml下进行配置

静态资源无法访问的第二种解决方案

<mvc:default-servlet-handler/>

静态资源无法访问的第三种解决方案

<mvc:result location="/images/" mapping="/images/**"></mvc:result>

其中mapping内容表示:以image为请求路径下的所有资源都可以访问

三、SpringMVC注解式开发

1 搭建环境

1.1后端控制器无需实现接口,添加相应注解

1.2springmvc配置文件无需注册controller

在添加controller注解之后,类文件就添加实现类,重写也不再需要

1.3 springmvc配置文件中添加组件扫描器、注解驱动 <mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与 AnnotationMethodHandlerAdapter 两个bean,并提供了:数据绑定支持, @NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支 持(JAXB),读写JSON的支持(Jackson)等等。

  1. 注册组件扫描器的作用,就是用注解被扫描
  2. 注册注解驱动 : 能够自动注册处理器映射器 和 处理器适配器

2 涉及常用注解 @Controller、@RequestMapping(类体上【命名空间】、方法上)、@Scope

@RequestMapping("/springmvc") 该注解不但可以放在类体上还可以放在方法体上

3 视图解析器(前缀、后缀)

什么时候会用到视图解析器?

当文件的位置位于很多级文件夹下,写路径名非常的麻烦,这时我们想每次返回时只返回文件名,就需要用到视图解析器了.

使用视图解析器之后

实现思路: 可将路径的前缀,和文件名的后缀直接在springmvc文件中进行配置

一定要注意书写正确

springmvc框架介绍_Java修行第071天 ---SpringMVC(上)相关推荐

  1. ❤️六万字《SpringMVC框架介绍—从入门到高级》(建议收藏)❤️

    <SpringMVC框架介绍>(建议收藏) ❤️希望博友给个三连+关注!!! SSM: mybatis + Spring + SpringMVC MVC三层架构 SpringMVC + V ...

  2. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

  3. java集合框架介绍_Java集合框架介绍

    Java集合框架介绍 发布时间:2020-06-26 17:00:14 来源:亿速云 阅读:85 作者:Leah 这篇文章将为大家详细讲解有关Java集合框架介绍,文章内容质量较高,因此小编分享给大家 ...

  4. SpringMVC框架个人笔记之响应数据、文件上传

    对应工程为springmvc-response,springmvc-file-upload,springmvc-file-upload-crossweb 1.返回值分类 1.1 字符串 //respo ...

  5. SpringMVC框架介绍

     1. SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,而无须实现任何接口. 2.支持REST风格的URL请求. 3.采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵 ...

  6. js接收springmvc传过来的数据_Java修行第072天 ---SpringMVC(中)

    4.处理器方法常用的参数(五类) 4.1HttpServletRequest 4.2HttpServletResponse 4.3HttpSession 4.4用于承载数据的Model.Map.Mod ...

  7. java集合框架介绍_Java集合框架全面介绍(一)

    Java平台提供了一个全新的集合框架."集合框架"主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型. Java 2集合框架图 集合接口:6个接口(短虚线表示),表示不 ...

  8. SpringMVC由浅入深day01_1springmvc框架介绍

    springmvc 第一天 springmvc的基础知识 课程安排: 第一天:springmvc的基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器.处理器映射器.处 ...

  9. SpringMVC框架从入门到精通

    文章目录 SpringMVC 框架介绍 概述 MVC模型 性能超群 工作原理 案例:展示汽车数据 需求 创建Maven module 创建RunApp.java Car.java CarControl ...

最新文章

  1. nginx的配置和优化(隐藏版本号、gzip、expires、防盗链......等)
  2. 算法--------删除重复元素,但保留两个
  3. FlowVisor入门教程
  4. 机器人动力学建模实例:二连杆机械臂
  5. python if条件判断_python if not in 多条件判断代码
  6. 玩转webpack(一)下篇:webpack的基本架构和构建流程
  7. Java IO(二)——RandomAccessFile
  8. es dsl多条件组合查询(转)
  9. Oracle误删除后的找回方法
  10. 超市收银系统-Java Swing版
  11. 嵌入式环境搭建之zmodem
  12. Flask接口开发教程
  13. 钉钉的微应用如何测试;
  14. Dell uefi使用U盘重装系统
  15. 理解区块链的“非对称加密”
  16. 【谷歌浏览器】谷歌浏览器SameSite
  17. python sort函数
  18. 求可以统计网络流量的VC代码,就象是金山网镖下面的那样
  19. IGARSS2019竞赛总结
  20. SEXTANTE中调用任意C++控制台程序的简单例子

热门文章

  1. Mysql---Centos7软件安装
  2. [转载]javascript创建对象的几种方式
  3. 51nod 1105:第K大的数
  4. XOOM MZ606 刷机
  5. 很好的FireFox addin
  6. Numpy生成二项分布随机数
  7. Grafana4.2安装
  8. 【题解】Luogu P1533 可怜的狗狗
  9. 关于Unity中如何判断一个动画播放结束
  10. Matlab scatter 如何显示不同颜色点状