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配置式开发

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

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

89ac08ed5ca7844e48e9e5dd78c82d4c.png

3096fee09b3faa7c04bd51aacc1e5593.png

971b6840d9b5fd1feca0c52f1d52954e.png

cd0a084ecbf447d3400b246fd84fe7a1.png

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

3.开发步骤

3.1导入jar包

9aedd32da55ab3fc9b9798cb45f79348.png

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

4885df532f4388064f28f7eb3a3d15e7.png

3.3编写SpringMVC后端控制器

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

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

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

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

374eb3ec302cfb7edad9ec4f5bf7d446.png

3.5编写跳转资源页面

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

d9f1e80693e71ce845607ce13c09363d.png

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

8a420ef6a75d5e448ebce31f6e700be5.png

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

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

<mvc:default-servlet-handler/>

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

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

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

c623cac61c945bf8349a0de86b3c13b8.png

三、SpringMVC注解式开发

1 搭建环境

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

0d2b1fc042eb3f9c46dd89f7227c20d8.png

1.2springmvc配置文件无需注册controller

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

2b7404b078dc067fcc3e3549c9b3c9b2.png

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

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

e40a28f515036cd652f6fa442f411521.png

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

b5cf37737467bf4ec5d2eeae5e93ff8b.png

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

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

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

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

dc3b0c4bcf22558fb514a7b4313730bd.png

使用视图解析器之后

6e5f5ec3158e1aca297da247d98f8ea5.png

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

一定要注意书写正确

0388902118be97677d92d6ff34b8386e.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值