springmvc框架介绍_Java修行第071天 ---SpringMVC(上)
掌握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配置式开发
- SpringMVC运行原理(执行过程)
下面的图都是大同小异,核心都是相同的
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
2.需求:用户提交一个请求,服务端处理器接收到请求后,给出一条信息, 在相应页面中显示该条信息
3.开发步骤
3.1导入jar包
![](/assets/blank.gif)
3.2配置web.xml,注册SpringMVC前端控制器(中央调度器)
![](/assets/blank.gif)
3.3编写SpringMVC后端控制器
3.4编写springmvc配置文件,注册后端控制器(注意id写法格式)
配置式开发,注册后端控制器需要注意的问题
<!--注意id为'/'开头,以拦截内容结尾-->
<bean id="/my.do" class="cn.bjsxt.handlers.MyHandler"></bean>
![](/assets/blank.gif)
3.5编写跳转资源页面
ModelAndView的对象的setViewName();来实现资源跳转
![](/assets/blank.gif)
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
![](/assets/blank.gif)
(2~3)其他两种方案都是在springmvc.xml下进行配置
静态资源无法访问的第二种解决方案
<mvc:default-servlet-handler/>
静态资源无法访问的第三种解决方案
<mvc:result location="/images/" mapping="/images/**"></mvc:result>
其中mapping内容表示:以image为请求路径下的所有资源都可以访问
![](/assets/blank.gif)
三、SpringMVC注解式开发
1 搭建环境
1.1后端控制器无需实现接口,添加相应注解
![](/assets/blank.gif)
1.2springmvc配置文件无需注册controller
在添加controller注解之后,类文件就添加实现类,重写也不再需要
![](/assets/blank.gif)
1.3 springmvc配置文件中添加组件扫描器、注解驱动 <mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与 AnnotationMethodHandlerAdapter 两个bean,并提供了:数据绑定支持, @NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支 持(JAXB),读写JSON的支持(Jackson)等等。
- 注册组件扫描器的作用,就是用注解被扫描
- 注册注解驱动 : 能够自动注册处理器映射器 和 处理器适配器
![](/assets/blank.gif)
2 涉及常用注解 @Controller、@RequestMapping(类体上【命名空间】、方法上)、@Scope
![](/assets/blank.gif)
@RequestMapping("/springmvc") 该注解不但可以放在类体上还可以放在方法体上
3 视图解析器(前缀、后缀)
什么时候会用到视图解析器?
当文件的位置位于很多级文件夹下,写路径名非常的麻烦,这时我们想每次返回时只返回文件名,就需要用到视图解析器了.
![](/assets/blank.gif)
使用视图解析器之后
![](/assets/blank.gif)
实现思路: 可将路径的前缀,和文件名的后缀直接在springmvc文件中进行配置
一定要注意书写正确
![](/assets/blank.gif)
springmvc框架介绍_Java修行第071天 ---SpringMVC(上)相关推荐
- ❤️六万字《SpringMVC框架介绍—从入门到高级》(建议收藏)❤️
<SpringMVC框架介绍>(建议收藏) ❤️希望博友给个三连+关注!!! SSM: mybatis + Spring + SpringMVC MVC三层架构 SpringMVC + V ...
- java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)
原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...
- java集合框架介绍_Java集合框架介绍
Java集合框架介绍 发布时间:2020-06-26 17:00:14 来源:亿速云 阅读:85 作者:Leah 这篇文章将为大家详细讲解有关Java集合框架介绍,文章内容质量较高,因此小编分享给大家 ...
- SpringMVC框架个人笔记之响应数据、文件上传
对应工程为springmvc-response,springmvc-file-upload,springmvc-file-upload-crossweb 1.返回值分类 1.1 字符串 //respo ...
- SpringMVC框架介绍
1. SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,而无须实现任何接口. 2.支持REST风格的URL请求. 3.采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵 ...
- js接收springmvc传过来的数据_Java修行第072天 ---SpringMVC(中)
4.处理器方法常用的参数(五类) 4.1HttpServletRequest 4.2HttpServletResponse 4.3HttpSession 4.4用于承载数据的Model.Map.Mod ...
- java集合框架介绍_Java集合框架全面介绍(一)
Java平台提供了一个全新的集合框架."集合框架"主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型. Java 2集合框架图 集合接口:6个接口(短虚线表示),表示不 ...
- SpringMVC由浅入深day01_1springmvc框架介绍
springmvc 第一天 springmvc的基础知识 课程安排: 第一天:springmvc的基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器.处理器映射器.处 ...
- SpringMVC框架从入门到精通
文章目录 SpringMVC 框架介绍 概述 MVC模型 性能超群 工作原理 案例:展示汽车数据 需求 创建Maven module 创建RunApp.java Car.java CarControl ...
最新文章
- nginx的配置和优化(隐藏版本号、gzip、expires、防盗链......等)
- 算法--------删除重复元素,但保留两个
- FlowVisor入门教程
- 机器人动力学建模实例:二连杆机械臂
- python if条件判断_python if not in 多条件判断代码
- 玩转webpack(一)下篇:webpack的基本架构和构建流程
- Java IO(二)——RandomAccessFile
- es dsl多条件组合查询(转)
- Oracle误删除后的找回方法
- 超市收银系统-Java Swing版
- 嵌入式环境搭建之zmodem
- Flask接口开发教程
- 钉钉的微应用如何测试;
- Dell uefi使用U盘重装系统
- 理解区块链的“非对称加密”
- 【谷歌浏览器】谷歌浏览器SameSite
- python sort函数
- 求可以统计网络流量的VC代码,就象是金山网镖下面的那样
- IGARSS2019竞赛总结
- SEXTANTE中调用任意C++控制台程序的简单例子