走到尽头的技术-MVC

MVC技术是一种WebApplication设计技术,相比于传统Web应用程序,MVC可以使程序结构更加清晰,他采用 Model,View,Controller 来管理和架构我们的Web资源,将不同的请求(request)导向不同的Controller(Strutes 中,这个控制器被称作 Action),不同的View(JSP,ASP,ASP.NET )页面负责将服务器控制器(Action)处理的结果显示出来。Modena则是一个简单·基本的javabean类。
      MVC的核心优势,在于将请求和视图分开,使得后台开发人员可以专心致志的完善业务实现,前端工程师则尽其所能为用户提供更良好的用户体验。这种设计模式,相对于之前用JSP+Javabean来处理业务和呈现,技术上几乎是一次飞跃,突然之间,好像大家都爱上MVC了,不光是Java程序员,甚至微软也不甘落后,很快推出了ASP.NET 版本的MVC实现,突然之间MVC的春天来了。
但是,IT科技的发展是如此之迅速,今天,回过头来重新审视MVC,至少有如下理由证明MVC已经开始落后于时代了。
      异步提交,正在逐渐取代同步提交,在MVC技术发展的黄金时期。,也就是2008年左右,另外一种可以实现更好用户体验,的 技术逐渐出现在我们的视野中,就是大名鼎鼎的Ajax(比较著名的例子是GMail),Ajax技术并不是单一一种技术,而是javascript技术(负责动态网页)、DOM技术(负责呈现数据)、XMLHttpRequest技术(负责从服务器端得到数据)、CSS(负责位页面数据指定样式)的综合运用,通过这种技术,前端表现成为开发人员可以发挥更大影响的地方,之前,在MVC时代和之前的JSP+Javabean时代,开发人员一般是不直接参与到页面的设计中来的,他们一般会使用页面设计人员提供的模板,或者,将完成好的Web应用直接提交给页面设计人员来优化,这样做,看似是完美的劳动分工,实际上,却是将开发人员和用户体验分离开来,相对于专业的页面设计人员,更了解需求的开发人员实际上更了解用户在页面上想要、需要看到东西。在MVC架构中应用Ajax技术,是可以的,但是这种实现单纯只是技术上可行,但是,意义却不大,原因有两点:
      1,采用了Ajax架构之后,需要呈现数据的页面已经不像之前的那么多了因为一个页面已经可以呈现更多的数据了,而且是以一种更加友好的方式来呈现,,实际上,我们可能只需要一个index.html 或许连 index.jsp 或者index.aspx 都不需要。
      2,采用了Ajax之后,已经不需要多少Action来处理数据了,这并不是说数据不需要后端处理和得到,而是说,异步刷新的页面无法得到用Action处理的数据,MVC中,页面数据大部分是通过request来传递的,javascript是没有办法直接得到request中的数据。
      Ajax技术产生的影响,不止是将MVC,一种才诞生几年,而且如日中天的技术推到尽头,而且,使得很多于此相关的技术都变得边缘化了,比如,于JSP相关的若干技术 ,诸如 jslt技术,也就是jsp页面标签技术
皮之不存,毛将焉附,JSP技术都变得如此边缘,基于JSP技术的相关技术,就风光不再了。
      虽然以JSP为核心的同步刷新技术,已经无法提供更出色的用户体验,但是这些技术,在用户体验要求不是很高的地方,比如,各种各样的MIS(各种各样的OA等等)系统中,依然非常有价值,并且将继续保持旺盛的生命力,毕竟,使用异步刷新技术,对开发人员的要求比较高,因为开发人员不仅需要java或者C# ,还需要CSS,Javascript方面的知识,而且,代码量也远高于使用同步刷新完成的页面,同时,在同步刷新及MVC方面,已经有了非常丰富的API,比如Struct2 和Spring MVC。但是,新技术已经来了,就让我们放开怀抱去拥抱这项技术吧。
   

转载于:https://www.cnblogs.com/MicroGoogle/archive/2012/02/24/MVC_Finish.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Search Engine -垂直搜索小汇总

FilesTube: 共享文件搜索引擎,文件来自:Rapidshare, MegaUpload, Megashares, YouSendIt, SaveFile, FileFront和Badongo等很多文件储存网站,支持的文件格式包括:AVI, MP3, MPEG, MPG, RAR, WMA, WMV, EXE, ZIP等,主要为媒体格式,不支持中文 Picsearch:专业图片搜索引擎,中文界…

Java——多线程(线程安全问题)

同步为安全,不同步为不安全;也就是有synchronized这个标识符,就为线程安全,反之,为线程不安全。 ①Vector是线程安全的 ②StringBuffer是线程安全的 ③Hashtable是线程安全的 Collections.synchronized(xxx)&#…

web安全---XSS利用平台BLUE-LOTUS安装与使用

0x01 安装 环境:windows、phpstudy 下载地址:https://gitee.com/gid1314/BlueLotus_XSSReceiver-master 下载后将文件解压,重命名为blue,放在www目录下 访问:http://IP/blue 点击安装 这里只需要修改后台登陆密码和…

C#Convert.ToInt32(bool)方法-将bool值转换为int

C#Convert.ToInt32(bool)方法 (C# Convert.ToInt32(bool) Method) Convert.ToInt32(bool) Method is used to convert a specific Boolean (bool) value to its equivalent integer (int 32 signed number). Convert.ToInt32(bool)方法用于将特定的布尔值(布尔值)转…

配置Microsoft Visual SourceSafe 2005的Internet访问

配置Microsoft Visual SourceSafe 2005的Internet访问 VSS2005发布以后,早就听说可以支持Internet访问,这是一个很有意思的特性。前两天有空,就安装配置了一下,成功访问。现在安装过程发布出来,大家共享。 步骤0&…

使用delphi 开发多层应用(十)安全访问服务器

前面讲了如何建立和访问服务器,但是前面建的服务器都没有安全控制,这里有很大的安全问题,第一是任何人做一个客户端都可以都可以访问 服务器。第二是数据在网络传输过程中都是明码的,没有加密,使用网络侦听器就可以检测到传输的内容。这是一个…

数组push()方法以及JavaScript中的示例

JavaScript push()方法 (JavaScript push() method) push() method is used adds/inserts an element at the end of an array, it returns nothing but changes the length of the array. push()方法用于在数组末尾添加/插入元素,它只返回改变数组的长度&#xff0…

C——整除的尾数

Problem Description 一个整数&#xff0c;只知道前几位&#xff0c;不知道末二位&#xff0c;被另一个整数除尽了&#xff0c;那么该数的末二位该是什么呢&#xff1f; Input 输入数据有若干组&#xff0c;每组数据包含二个整数a&#xff0c;b&#xff08;0< a<10000…

web安全---浏览器解析提交数据的过程

解码规则 html解析器对html文档进行解析&#xff0c;完成解析并创建DOM树JavaScript或者CSS解析器对内联脚本进行解析&#xff0c;完成js、css解码url解码会根据url所在的顺序不同而在JS解码或者解码后 解码顺序 html解析第一步执行&#xff0c;而JS解析和URL解析则要根据情…

commons-lang的FastDateFormat性能测试

commons-lang的FastDateFormat是一个thread-safe的&#xff0c;对SimpleDateFormat的一个重新实现。 SimpleDateFormat为什么不是thread-safe的呢&#xff1f;看一下具体实现就知道了&#xff0c;其父类中定义了成员变量Calendar&#xff0c;每次格式化日期时都会先重置这个Cal…

C——Flowers

Problem Description As you know, Gardon trid hard for his love-letter, and now he’s spending too much time on choosing flowers for Angel. When Gardon entered the flower shop, he was frightened and dazed by thousands kinds of flowers. “How can I choose!”…

include函数_include()函数以及JavaScript中的示例

include函数includes() is a predefined function in JavaScript, which is used to check whether a given element exists in the array or not? include()是JavaScript中的预定义函数&#xff0c;用于检查数组中是否存在给定元素&#xff1f; Example: 例&#xff1a; &l…

利用POI创建OpenOffice中的Excel文件

之所以称为OpenOffice的Excel文件,我发现了一个特点就是: 一些网站严格限定了文件必须为MS的Excel格式的话,用POI的HSSF创建的Excel就会不识别.不知道是什么原因,可能是版本的问题,据说HSSF(令人讨厌的电子表格格式)生成的是MS97的格式.但是97-2003的提示中明显的说明了MS的lib…

批处理文章集锦

http://www.5dmail.net/html/2005-10-17/20051017181702.htmhttp://www.cnblogs.com/glaivelee/archive/2009/10/07/1578737.html转载于:https://www.cnblogs.com/Jessy/archive/2012/02/29/2372955.html

web安全-----CSRF漏洞

简述 CSRF&#xff1a;Cross-site request -forgery&#xff0c;跨站请求伪造&#xff0c;是一种web攻击方式&#xff0c;是由于网站的cookie在浏览器中不会过期&#xff0c;只要不关闭浏览器或者退出登录&#xff0c;那以后只要访问这个网站&#xff0c;都会默认你已经登录。…

java math 类_Java Math类静态长轮(double d)示例

java math 类数学课静态长回合(双D) (Math Class static long round(double d) ) This method is available in java.lang package. 此方法在java.lang包中可用。 This method is used to return the closest long value to the given argument. 此方法用于将最接近的long值返回…

C——求平均成绩

Problem Description 假设一个班有n(n<50)个学生&#xff0c;每人考m(m<5)门课&#xff0c;求每个学生的平均成绩和每门课的平均成绩&#xff0c;并输出各科成绩均大于等于平均成绩的学生数量。 Input 输入数据有多个测试实例&#xff0c;每个测试实例的第一行包括两个…

依赖、关联、聚合、组合还有泛化的关系(转载)

依赖、关联、聚合、组合还有泛化的关系 此文为转载文章:http://zjzkiss.cnblogs.com/世界是普遍联系的&#xff0c;因此程序世界中的类&#xff0c;也不可能是孤立的。UML为我们定义了它们之间的关系&#xff0c;就是&#xff1a;依赖、关联、聚合、组合还有泛化。 泛化关系比…

神奇的LINQ ---可以通过对象来查询数据

摘要&#xff1a; linq:在一个新项目里面要用这个技术&#xff0c;然后自己拿起书看了下&#xff0c;记录下自己的新发现&#xff0c;只适合简单入门的新童鞋看呀&#xff01;&#xff01;&#xff01; 结论&#xff1a; linq是对象领域与数据领域的一个桥梁。 为什么会出现Lin…

java math.cos_Java Math类静态double cos(double d)示例

java math.cos数学类静态双cos(double d) (Math Class static double cos(double d)) This method is available in java.lang package. 此方法在java.lang包中可用。 This method is used to return the trigonometric cosine of an angle of the given parameter in the meth…