spring MVC入门(一)

一、什么是MVC框架

MVC提供了模型-视图-控制的体系结构和可以用来开发灵活,松耦合的Web应用程序的组件,MVC导致了应用程序的不同方面(输入逻辑,业务逻辑,UI逻辑)的分离,同时提供了元素之间的松散耦合.
常见的MVC框架比较:
性能上比较:Jsp+Servlet>Struts1.1>spring MVC >struts2
开发效率比较:spring MVC >struts2>struts1.1>Jsp+Servlet
当今企业快速开发用:spring Boot(微框架) spring cloud(分布式开发)

二、概述

Spring MVC是Spring framework的后续产品,已经融合到web flow中,Spring MVC是基于Model2实现的,利用了处理器分离了模型对象,视图,控制,达到松耦合的效果,提高了系统的可重用性,可维护性,以及可扩展性,功能与struts相似,但是实现方式和原理有所不同.
优点: 使用简单,学习成本低
功能强大,容易写出高性能的程序
使用灵活,可以和spring无缝衔接

特点:
Spring为展现层提供的 基于MVC设计理念的优秀WEB框架,是目前最主流的MVC框架之一。
Spring3.0之后全面超越Struts2,成为 最优秀的MVC框架
SpringMVC通过一套 MVC注解,让POJO成为处理请求的控制器,而无 须实现任何接口
支持 RESTFUL风格的URL请求。
采用了松散耦合可插拔组件结构,比其他MVC框架更 具扩展性灵活性。

三、开始一个简单的框架搭建

1.首先创建一个动态工程
2.加入jar包

3.在web.xml中配置DispatcherServlet

4.加入springmvc配置文件

5.简单编写请求处理器

6.编写succcess.jsp页面

7.结果

8.

DispatcherServlet


Spring Web 模型-视图-控制(MVC)框架是围绕 DispatcherServlet 设计的,DispatcherServlet 用来处理所有的 HTTP 请求和响应。Spring Web MVC DispatcherServlet 的请求处理的工作流程如下图所示:


下面是对应于 DispatcherServlet 传入 HTTP 请求的事件序列:
l 收到一个 HTTP 请求后,DispatcherServlet 根据 HandlerMapping 来选择并且调用适当的控制器。
l 控制器接受请求,并基于使用的 GET 或 POST 方法来调用适当的 service 方法。Service 方法将设置基于定义的业务逻辑的模型数据,并返回视图名称到 DispatcherServlet 中。
l DispatcherServlet 会从 ViewResolver 获取帮助,为请求检取定义视图。
l 一旦确定视图,DispatcherServlet 将把模型数据传递给视图,最后呈现在浏览器中。
上面所提到的所有组件,即 HandlerMapping、Controller 和 ViewResolver 是 WebApplicationContext 的一部分,而 WebApplicationContext 是带有一些对 web 应用程序必要的额外特性的 ApplicationContext 的扩展。

DispatcherServlet子容器的启动


WebApplicationContext的初始化


我们先看一下该类的继承结构。



根上下文创建完成后, Spring会给每一个DispatcherServlet创建一个容器,其引用保存在其直接父类FrameworkServlet中:


这里是WebApplicationContext的初始化。

我们知道servlet容器(如Tomcat)在创建一个servlet时会首先调用init()方法来初始化servlet,因此应当首先查找该方法。
经过查找分析, 我们发现该容器的创建由父类HttpServletBean的init()方法触发,最后由子类FrameworkServlet完成实际创建工作。



DispatcherServlet请求处理流程


子容器创建完成后,当有请求到来时,DispatcherServlet就可以进行分发处理了。我们首先根据Servlet规范查找doService()方法,这个方法在DispatcherServlet本身就有实现:






分析到这里,DispatcherServlet的分发请求处理流程就一目了然了。
我们可以简单设计一个登陆的列子:
创建一个login.jsp

然后修改index.jsp

添加控制层方法:


结果如下:



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的小巍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值