WebMVC框架 之 概览

在《Model1与Model2》中,我们简单进行了Model1与Model2这两种开发模式的比较,这两种模式可以说与MVC模型息息相关。我们可以简单理解为Model2是对MVC模型在Web领域一项具体的应用,适用于开发大型项目,而针对这样的开发,我们往往会选用WebMVC框架来简化我们的开发。

Why WebMVC框架?

在使用Servlet作为控制器、JSP作为视图显示的Model2项目开发过程中,会遇到这样一些情况:

1.截取URL

——服务端获得请求后,需要根据不同的URL访问地址(或特殊参数)来确定具体的处理逻辑,这样就有可能造成在我们的Controller里存在大量的判断来确定具体执行逻辑,并且这里的判断并不稳定,以后很有可能会增加别的请求。

2.表单数据类型转换、封装

——在表单中收集到的数据都是String类型的,我们需要把这些数据针对不同的领域模型转换为特定的数据类型并进行封装。这样的手动转换及其封装处理较为繁琐。

3.页面转向写死在了程序中

——我们在控制器里在进行页面调度过程中往往出现这样的代码:

request.getRequestDispatcher("/xxxx.jsp").forward(request, response);

这样将一些转向页面写死在程序中后,不利于后期的维护。

伴随着这样一些问题,应用中逐步进行抽象,出现了很多优秀的框架,以上这些问题都得以解决。WebMVC框架提供了基础性的服务,一些可以复用的功能得以抽象应用,基于Model2模型的开发变得简单并且灵活,它为我们拦截请求,进行中间处理:截取URL、分发请求、表单数据类型转换、封装,并且将转向页面配置到配置文件中,一系列的功能使得WebMVC框架得到广泛的应用。

WebMVC框架为我们做了些啥?

其实通过前面的介绍,我们已经知道了WebMVC框架为我们主要解决的问题。其提供的解决方案大致如下图所示:

FrontControllerServlet:前端控制器,其代表WebMVC框架为我们提供的一系列中间处理类,基本思路是解决上面提到的那些问题。

Action:业务控制器

学习思路

目前WebMVC的框架有很多:Struts、Struts2、SpringMVC、MyFaces(实现了JSF规范),读者可能看到这么多的框架,会感觉学习起来将无从下手,其实大可不必担心,框架只是提供的一系列的工具,只要我们明白了这些工具要解决的统一问题,掌握了基于其中一种框架的用法,再应用其他的也都有了个大概的脉络,也就很容易上手了。

笔者认为

学习框架还是重在学习其中的思想,明白了框架的来龙与去脉,对于应用也就得心应手了,以致后面我们可以自己动手写一些框架出来供其他人使用!相信通过这样的从应用中来到应用中去,对自己的提高也是非常大的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-15 15:04:19

WebMVC框架 之 概览的相关文章

流行框架阶段·概览

1. 现在有什么东西在流行,我们要学什么? 流行框架阶段的学习,大部分经历会花在AngularJs的框架的学习上. 不过,在真正开始学习AngularJs框架之前,还可以花一点小时间,带领大家认识一下现在都有什么框架在流行着,它们的功能都是什么.虽然不会真正学习它们的用法,但是至少能够了解还有这些东西存在,对于扩展视野和面试有一些帮助.2. 从NodeJs谈起 在NodeJs出现之前,JavaScript一直以来被视作一种浏览器脚本,它的应用范围更多是在浏览器之中,操作一下各种浏览器对象(BOM

[原创] Web UI自动化应用测试框架实践 - 概览

之前为我们部门做的一个UI框架.不能纯粹解读为框架,主要是做了一些简单的分层设计,以解决稳定性.降低复杂性.提升可维护性以及快速构建测试用例等实际问题. 主要部分:1. 测试数据.主要提供测试类库需要用到的数据,前端做到数据驱动.2. 测试服务.测试服务类主要提供一组API,达到重用的目的.3. 页面封装.对具体的Web页面进行抽象和封装,提供统一的接口,降低逻辑的编写门槛,组件重用以及更好的可维护和可读性. 4. Selenium Web Driver.底层用的WebDriver.

响应式编程框架ReactiveCocoa学习——框架概览

这篇博客将会继续翻译RAC的官方文档Framework Overview. 主要是对RAC这和框架进行概览的介绍和学习.同时也可以参考我前面的两篇翻译<响应式编程框架ReactiveCocoa学习--基本操作符><响应式编程框架ReactiveCocoa介绍与入门>.其中ReactiveCocoa的Github官方地址为 https://github.com/ReactiveCocoa/ReactiveCocoa . 这篇文档包括了RAC中的对不同组件的高层描述,并解释如何进行结合

(Spring Boot框架)快速入门

Spring Boot 系列文章推荐 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Boot 静态资源处理 今天介绍一下如何利用Spring MVC快速的搭建一个简单的web应用. 环境准备 一个称手的文本编辑器(例如Vim.Emacs.Sublime Text)或者IDE(Eclipse.Idea Intellij) Java环境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea Int

Spring官方文档翻译——15.1 介绍Spring Web MVC框架

Part V. The Web 文档的这一部分介绍了Spring框架对展现层的支持(尤其是基于web的展现层) Spring拥有自己的web框架--Spring Web MVC,在前两章中会有介绍.剩下的章节则用来介绍Spring和其他web技术的集成,比如Struts和JSF(这里只提两个). 本节以对Spring MVC portlet框架的介绍结尾. 第十五章--Web MVC框架(Web MVC framework) 第十六章--视图技术(View technologie) 第十七章--

前端流行框架概述

流行框架阶段·概览 1. 现在有什么东西在流行,我们要学什么? 流行框架阶段的学习,大部分经历会花在AngularJs的框架的学习上. 不过,在真正开始学习AngularJs框架之前,还可以花一点小时间,带领大家认识一下现在都有什么框架在流行着,它们的功能都是什么.虽然不会真正学习它们的用法,但是至少能够了解还有这些东西存在,对于扩展视野和面试有一些帮助. 2. 从NodeJs谈起 在NodeJs出现之前,JavaScript一直以来被视作一种浏览器脚本,它的应用范围更多是在浏览器之中,操作一下

class10_Frame 框架

最终运行效果图(程序见序号2):   #!/usr/bin/env python # -*- coding:utf-8 -*- # ------------------------------------------------------------ # # 参考资料: # 用 python 和 tkinter 做简单的窗口视窗 - 网易云课堂 # https://study.163.com/course/courseLearn.htm?courseId=1003216011#/learn/v

springmvc框架的使用

1.在idea中新建java web项目,引入spring和springmvc所需jar包,其中 spring-web-3.2.12.RELEASE.jar:在web应用开发时使用spring框架所需的核心类 spring-webmvc-3.2.12.RELEASE.jar:springmvc框架相关的所有类,包含框架的servlets,webmvc框架,以及对控制器和试图的支持 2.在web.xml中配置servlet <?xml version="1.0" encoding=

基于Spring Boot构建的Spring MVC快速入门

原文地址:http://tianmaying.com/tutorial/spring-mvc-quickstart 环境准备 一个称手的文本编辑器(例如Vim.Emacs.Sublime Text)或者IDE(Eclipse.Idea Intellij) Java环境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令行工具可以不安装) 一个最简单的Web应用 使用Spring Boot框架可以大大加速Web应用的开发过