【转帖】剖析Windows XP x64操作系统

由全球位网民共同编写而成。共计词条文字

 

Windows XP 64 Professional x64 Edition

编辑词条 参与讨论

所属分类: 操作系统 电脑 计算机

<script type="text/javascript"></script>
目录
<script src="js/doccatalog.js" type="text/javascript"></script>

Windows XP 64 Professional x64 Edition-Windows XP 64 Professional x64 Edition

 
剖析Windows XP x64操作系统

Windows版本简要介绍

Windows是我们曰常使用最多的操作系统,也是世界范围内应用最广泛的客户端操作系统。 对于国内用户来说,最初认识Windows可能是从Windows 3.x开始的,而自从Windows 95发布之后,Windows在国内的普及率达到了一个新的高度。

我们一般使用的(以及曾经使用过的)客户端Windows,按照发布时间排列,主要包括了:Windows 3.x、Windows 95、Windows 95 第二版、Windows 98、Windows 98第二版、Windows 2000 Professional、Windows Me、Windows XP Professional/Home,其中除了Windows 2000以及Windows XP,其余版本的Windows都是16位或者16位和32位混合的,因此稳 定性和性能方面都不怎么好。而从Windows 2000开始,到Windows XP,Windows操作系统才全面转向纯32位,进而稳定性和可靠性都得到了长足的提高。而从Windows XP开始,微软开始将触手伸向了64位领域,开始开发64位的Windows XP,也就是本文我们主要向你介绍的Windows XP Professional x64 Edition。

Windows XP 64 Professional x64 Edition-Windows XP Professional x64介绍

 

对于一般用户,肯定会考虑,既然现有32位版本的Windows还用的很好,干嘛要升级到64位呢,而且因为32位和64位的硬件(主要是CPU和主板)并不兼容,可能还要花费一笔不菲的费用。那么64位的优势何在?对于一般用户是否有必要升级到64位系统?

Windows XP Professional x64 Edition 的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户的需求。

专用技术应用程序的性能优势

64位计算性能在汽车或飞机设计等领域体现出优势,因为它允许工程师创建更大、更复杂的模型。借助这样的系统,工程师可以使用模拟软件分析气流、压力和受热对汽车或飞机材料产生的影响,然后对结果进行研究以改进产品设计。同样,通过64位计算,数字内容创作者(包括三维动画设计人员、数字艺术家和游戏开发人员)可以大大减少以数字方式呈现三维模型所用的时间。在科学计算和高性能计算领域,Windows XP Professional x64 Edition 将有助于石油和天然气勘探、地震分析、计算流体动力学和科学可视化等应用程序。

支持非常大的内存,采用常见的 Windows 桌面

对于达到32位系统内存限制的客户,Windows XP Professional x64 Edition 将以AMD Athlon 64、AMD Opteron、支持 SM64T 的 Intel Xeon 和支持 EM64T 的 Intel Pentium 4作为运行平台。基于Windows XP的32位和64位计算之间的主要区别在于64版本能够使用更多的系统内存。Windows XP Professional x64 Edition最初将支持多达128 GB的内存和多达16 TB的虚拟内存。将来,随着硬件功能的扩展,支持的物理内存将相应增加。内存中数据的访问速度是它在磁盘驱动器上时访问速度的数千倍,这样就可以大大提高为使用此更大系统内存而开发的应用程序的性能。

为技术应用程序和业务应用程序提供 单一桌面

Windows XP Professional x64 Edition将为技术应用程序和业务应用程序提供单一桌面,这样技术工作站用户就不需要为业务应用程序维护PC,同时为高端技术应用程序维护单独的工作站。大多数Windows兼容的32位应用程序将在Windows XP Professional x64 Edition的子系统(其性能与32位Windows相当)中“按原样”运行。工作站用户可以利用Windows平台上丰富的集成功能和高效工具。设计人员可以构建一个模型,并与公司中的其他人员轻松实现共享:对于财务组,将它复制到Word文档,或者对于市场组,将它添加到的 PowerPoint 幻灯片面板。如果你仅使用32位应用程序且处理的数据集不超过2 GB,则将发现32位Windows XP Professional是最适合你应用程序的桌面系统。

Windows XP Professional x64 Edition系统可以添加到现有的基于Windows的网络,并通过相同的管理工具与32位系统一起进行管理,从而使IT部门的工作更为轻松。维护和管理两个系统的间接成本得到了降低。

新一代应用程序的最佳平台

具备32位Windows技能的开发人员将能够舒适而高效地创建适用于Windows XP Professional x64 Edition的下一代应用程序。开发人员将发现该开发环境与32位Windows开发环境几乎完全相同;Microsoft Win64应用程序编程接口(API)与Microsoft Win32 API相同。现有的API已经在必要处进行了修改,使它们可以反映其运行平台的精度。结果是简化了编程并缩短了开发人员编写64位Windows代码的学习曲线,使之就像编写32位 Windows代码一样。

64位Windows开发环境支持与32位Windows相同的功能集,包括UI和编程模型、网络、安全性、图形、多媒体、目录服务、即插即用以及工具功能。许多功能都已经过修改,以反映应用程序运行平台的计算精度。

Windows XP Professional x64 Edition的主要特点

相对32位Windows,我们明显的一个感受就是内存数量的支持得到了改善。32位Windows 能够支持最多4 GB系统内存,每个处理器可以使用最多 2 GB专用内存;而在64位Windows下,最多可以使用128 GB的物理内存和16 TB的虚拟内存。其余详细的信息则可以参见下表:

64 位体系结构和 32 位体系结构的比较

地址空间    64 位 Windows   32 位 Windows

虚拟内存    16 TB       4 GB

页面文件    512 TB      16 TB

页面缓冲池   128 GB      470 MB

非页面缓冲池  128 GB      256 MB

系统缓存    1 TB       1 GB

32位Windows中的虚拟内存空间

和其他所有32位Windows一样,Windows XP Professional也被限制于只能使用4 GB的虚拟内存寻址空间。这4 GB内存被分为两部分,其中2 GB用于用户进程,而另外2 GB则用于被操作系统的所有进程共享。在某些特殊的情况下,通过使用/3GB引导参数可以强制让所有系统进程只使用1 GB内存空间,而给用户进程使用3 GB内存,但是该方法也仅适用于设计于可以利用这些额外地址空间的应用程序,而且所有程序都会被操作系统可用的内存数量所限制。

Windows XP Professional x64 Edition的兼容性

从上面的内容可以看出,对于64位Windows,一般的计算机用户根本不必现在就考虑。例如,如果你平时只是上网聊天,看电影,用Office写文件,那么现有的32位Windows就能很好的满足你的需要。对目前而言,64位Windows最大的一个劣势就是兼容性,而兼容性方面最突出的就是各种硬件设备的驱动程序。如果你已经是Windows的老用户了,那么你一定还对此有印象,在Windows XP下安装某些硬件的时候,因为操作系统没有带该硬件针对Windows XP的驱动程序,或者硬件开发上也没有提供相应版本的驱动程序,我们还可以试试看使用该设备在Windows 2000下的驱动程序,如果你的运气好的话也可以在Windows XP下使用。然而在64位Windows下情况就截然不同了,64位和32位Windows XP的硬件驱动程序完全不能混用,也就是说,如果你所用的硬件设备的开发商还没有开发出针对64位Windows XP的驱动程序,那么要么该设备在64位Windows XP下无法使用,要么使用操作系统自带的通用驱动勉强使用,但是性能和功能都会受到影响 。

至于其他软件程序则一般没有什么大问题。在64位Windows XP中,只有16位应用程序是完全无法使用的,而32位应用程序则可以继续使用。不过在安装这些应用程序的时候也要注意,有些应用程序,虽然和硬件扯不上关系,但是为了实现软件的某些特殊功能,安装软件的时候同时还会向系统中装入驱动程序,这种程序在没有发布64位版之前是无法在64位Windows下使用的。

例如著名的截图软件SnagIt,该软件使用默认安装的时候会向系统中安装一个虚拟的打印机,该打印机可以将文档输出为图形格式。因为安装了虚拟设备,因而该程序还没有提供64位的版本,因此在64位Windows XP下使用默认选项安装的时候就会出错,除非我们自定义安装选项,不安装这个虚拟打印机。同样的,几乎目前所有的虚拟光驱软件以及杀毒软件都无法在64位Windows XP下使用。

现在另一类比较特殊的用户则是高端的游戏玩家,这类用户为了能流畅运行目前硬件杀手级别的 大型游戏(例如DOOM3、WOW、Half Life 2),通常都会在硬件的投资上不惜血本。那么在其他硬件相同,只是分别使用32位处理器和32位Windows XP,以及在64位处理器上运行32位以及64位Windows XP这三种情况下,游戏的性能是否会有所改进呢。

升级到64位平台应该考虑的问题

如果你决定现在就升级到64位平台,那么也许应该考虑下列这些问题:

硬件

基本上能够在32位系统下使用的硬件都可以在64位Windows XP中使用,不过唯一的例外就是处理器以及相应的主板,目前可以运行Windows XP Professional x64的处理器包括:AMD Athlon 64、AMD Opteron、支持Intel EM64T的Intel Xeon,以及支持Intel EM64T的Intel Pentium 4。

驱动程序

目前来说,这是64位Windows XP的一个软肋。请 查询你使用的硬件设备的制造上网站,看他们是否提供了64位Windows XP下的驱动程序,如果已经提供,那么恭喜你,你已经可以率先跨入64位应用的大门了。

除此之外,根据微软的说明,要运行Windows XP Professional x64,计算机的硬件系统还需要满足下列要求:

• 256MB 内存

• 1.5GB 可用硬盘空间

• Super VGA (800x600) 或更高分辨率的视频卡

• CD-ROM 或 DVD 驱动器

• 键盘和 Microsoft 鼠标或兼容的指针设备

对于已经获得该系统,并且已经安装好的用户,他们有什么感受?大家一起来看看吧。

Windows XP Professional x64 Edition描述

在本文中,我将会向你简单介绍Windows XP Professional x64 Edition,其中包括了这套系统支持的软件和硬件,以及哪些消费者最需要这套全新的操作系统。

Windows XP Professional x64 Edition是能够在x64处理器上运行的具有完整功能的Windows XP Professional,Windows XP Professional x64 Edition最多支持128 GB内存以及16 TB虚拟内存寻址空间,而32位Windows XP Professional最多只能支持总共4 GB的物理内存和虚拟内存寻址空间。

Windows XP Professional x64 Edition在Windows on Windows 64(WOW64)子系统中运行32位应用程序,该子系统能够在运行64位应用程序的同时为超过10000个现有的32位Windows应用程序提供兼容。

运行32位应用程序

运行32位应用程序的WOW64子系统为上千个现有的32位应用程序提供了高兼容性、高性能的运行环境。32位应用程序会被安装到Program Files (x86)文件夹下,而且为了避免问题,这些程序在注册表中也有独立的分枝。

每个在Windows XP Professional x64 Edition 中的WOW64子系统下运行的应用程序 都有完整的4 GB内存寻址空间,原本需要配合/3GB参数使用的应用程序实际上也将获得4 GB寻址空间,而不会受到操作系统的限制,因为在Windows XP Professional x64 Edition中系统进程最多可以使用8 TB的虚拟内存空间。这对一些严重依靠内存的应用程序(哪怕这些应用程序还没有64位版本)的运行有着非凡的影响,例如计算机辅助设计(CAD)以及计算机辅助生产(CAM)。

分别运行64位和32位应用程序

通过使用Windows XP Professional x64 Edition,你可以分别运行64位和32位应用程序。你的现有32位应用程序将会在WOW64下运行,而64位应用程序则会直接运行。这使得全面转换到64位应用可以完全按照你的节奏进行,只有在全部准备好之后才开始转换。你甚至可以在Windows XP Professional x64 Edition中同时运行一个应用程序的64和32位版本,这样你就可以评估现有应用程序的新版本按照需要转换。

谁是最初的用户?

这个版本的Windows XP Professional x64 Edition主要是设计用于内存使用已经到达极限并且希望通过使用全新的64位技术改进工作站性能的32位系统用户。而Windows XP Professional x64 Edition的主要用户则包括:

• 开发人员

• 游戏玩家

• 图形、音频和媒体编辑

• CAD/CAM用户

• 发烧友

我已经把我的主力工作站移动到了一台前几个月安装好的x64主机上,而在所有运行在x64系统中的应用程序中,一个令我感到激动的是SONAR 4,Cakewalk 公司的专业音频工作室混音软件。正如Cakewalk公司首席技术官Ron Kuper所说,通过将SONAR 4迁移到x64平台,他们发现在不受内存限制的情况下,软件的运行性能得到了20-30%的提升。而且x64处理器架构的一些额外效能,例如常规用途以及浮点寄存器也对SONAR 4的运行速度和效率有一 定影响。

考虑今后的硬件需要

如果你在过去几个月里购买了新的个人计算机,那么你可能已经有了兼容x64的系统,就像我一样。因此唯一你需要做的就是参加Technology Advancement程序,并将现有系统更换为Windows XP Professional x64 Edition。如果计划在今年购买新的台式计算机,我甚至不会考虑购买非64位版本,哪怕你仍然打算在上面运行32位Windows。这两种架构的计算机在成本上的差别几乎是可以忽略的,而你的新x64计算机则可以良好运行所有版本的Windows XP。

如果你打算购买一个全新的系统来运行Windows XP Professional x64 Edition,那么在选择外设的时候就一定要小心。对于任何新版本的操作系统,在对硬件的支持上都会有明显的断层。主要设备制造商虽然都会提供新版本的驱动程序,但是这些新程序基本上都是面向最新硬件的,而且你无法使用32位驱动程序,因为根本无法安装。

关键区别

当迁移到Windows XP Professional x64 Edition时,你需要了解一些关键的不同。其中最重要的一点是64位系统不再对古老的MS-DOS以及16位应用程序提供支持。如果你有一些老的应用程序需要运行在MS-DOS模式下,或者你还有16位应用程序,那么你就不该升级到Windows XP Professional x64 Edition,除非你更新或替换了这些应用程序。

有些32位应用程序还 带有16位安装程序,大部分这样的程序都无法安装在Windows XP Professional x64 Edition中,因为16位应用程序已经不被支持了。然而有些可能仍然可以使用,因为Windows将会在后台检测到相应的32位版本安装程序。

对于需要安装硬件驱动的应用程序,在相应的64位版本驱动 出现之前也无法安装。Windows XP Professional x64 Edition完全不支持32位应用程序。

Windows资源管理器扩展。例如,Windows资源管理器的右键菜单扩展必须是64位的。如果是32位的,应用程序也许可以使用,但是Windows资源管理器扩展将不可用。这是因为任何一个应用程序可以运行在WOW64下的32位或者纯64位,但是不能同时属于这两种模式。而Windows资源管理器明显是64位的,因此应用程序本身也许可以正常使用,但是扩展可能无法使用。例如,在安装WinZip后,相应的右键扩展菜单就不可用了。

所有驱动程序必须是64位的。硬件和相应的驱动之间仍然有一定的断层,但是随着Windows XP Professional x64 Edition的正式发布,情况应该很快就得到好转。如果打算购买新硬件设备,在购买之前你最好能确定该设备具有相应的x64驱动程序,并且如果你打算把老的设备利用到新的x64计算机中,那么你首先也需要检查制造商网站上是否提供新的驱动程序。例如我就发现了一个比较好的查找x64驱动程序的网站:PlanetAMD。

升级到 Windows XP Professional x64 Edition的 5 大原因

上面这些理由似乎说的不是很明白,那么简单来说:

1,适用于下一代应用程序的高性能平台

Windows XP Professional x64 Edition是一个支持下一代高性能计算的多功能平台。64位本机应用程序可以在每个时钟周期内传递更多的数据,这样它们的运行速度更快、效率更高。

2,更大的内存支持

Windows XP Professional x64 Edition将普遍支持多达128 GB的内存和16 TB的虚拟内存,从而使应用程序在处理大型数据集时运行速度更快。应用程序可以将更多的数据预先加载到虚拟内存中,从而使64位处理器可以快速访问这些数据。

3,灵活性

Windows XP Professional x64 Edition提供了一个多功能平台,可以在Windows 64 (WOW64) x86仿真层上使用Windows将64位技术应用程序和现有的32位业务应用程序集成在一起,这样客户就可以迁移到64位计算环境,而不必牺牲其在32位软件和Windows专业技术上的投资。

4,多处理和多核心

Windows XP Professional x64 Edition设计为支持多达两个单独或多核心x64处理器,可以实现最高性能和可伸缩性。

5,相同的编程模型

具备32位技能的开发人员很快就能够适应64位Windows环境并在其中高效地工作,发现该环境与32位Windows开发环境几乎是完全相同的。

如何获得Windows XP Professional x64 Edition

Windows XP Professional x64 Edition只能通过与新计算机捆绑的形式从微软的制造商合作伙伴处获得,例如Dell、HP,以及IBM。该产品并没有单独的零售版,系统供应商应该将该操作系统和新的系统一起提供,或者对于想要自己组装计算机的用户,则可以在具有一定资格的硬件商店购买。同时对于开发者,MSDN网站上还提供了一个版本。

如果你已经购买了兼容x64架构的计算机,但是正在使用32位Windows XP Professional,那么你还可以将现有的Windows XP Professional副本更换为Windows XP Professional x64 Edition副本。请访问Technology Advancement Program网站了解该活动的详细信息。

然而不管你使用的是什么版本的Windows XP Professional x64 Edition,该系统都只能进行全新安装,而并不能从现有的Windows XP Professional上升级。如果你运行的是Windows XP Home Edition,而且拥有x64硬件,那么你也可以在可用之后迁移到Windows XP Professional x64 Edition,但是你首先需要从Windows XP Home Edition升级到Windows XP Professional Edition。

购买建议

基于前面介绍的内容,如果你想要升级到64位系统,那么不妨首先考虑下列内容:

1,现有的32位系统能否满足需要?从32位到64位是一次比较大的升级,不仅操作系统,连同主要硬件以及常用软件都可能会受到影响,因此决定升级之前一定要谨慎考虑。如果你现有的系统还可以满足曰常使用,那么不妨再等待观望一段时间。因为新的硬件发布之后,通常在很短时间里都有可能会降价,因此一般用户没必要太过追新。只要现有系统还能满足使用,那么完全可以继续使用下去。待到现有系统无法流畅运行主流应用程序的时候再升级也不迟。而且可以想象,经过时间的考验,现有的64位硬件将更加程序,相应的驱动程序以及应用程序将更加充足。同时在你决定升级的时候,建议不用考虑现有硬件的继续使用,因为随着系统架构的改进以及新标准硬件设备的普及,如果在新的平台下依然使用老的硬件设备,不仅产生了“木桶效应”,同时太老的设备可能还面临驱动程序缺乏的问题。

2,如果你已经购买了64位硬件(主要是AMD的64位处理器),但是仍然运行着32位系统,那么强烈建议你尽快升级到64位系统,只有这样你的新硬件的性能才能得到充分发挥。

3,如果你是高端用户,例如你经常需要进行图形处理、视频压缩、CAD设计、运行大型游戏以及编程等比较耗费资源的应用,并且你所使用的应用软件已经有了64位版本,那么你应该考虑尽快升级到64位系统上来,这样对你工作效率的提高是显而易见的。

→ 如果您认为本词条还有待完善,请 编辑词条 收藏词条至个人空间

互动百科的词条资料来自网友贡献,供您查阅参考,一些和您切身相关的具体问题(特别是健康、经济、法律相关问题),出于审慎起见,建议咨询专业人士以获得更有针对性的答案。

开放分类: 我来补充
操作系统
电脑
计算机
参与编辑者:
百科维客
冷剑傲555

发表留言

进入维吧>>
  • 标题:
  • 内容:
  • E-mail:
  • 密 码:
  • 验证码:
<script type="text/javascript"></script>

基本信息

冷剑傲555
百科维客

相Windows Vista是一款相当耗费资源的操作系统,特别是内存。从某种意义上说,要提升运行Windows Vista的系统性能,最简单也最有效的方式便是为系统扩充尽可能多的内存。那么,Windows Vista最高能支持多少物理内存呢?

  根据微软给出的规格,除Starter版仅支持1GB内存外,其他版本的Windows Vista(32位)均能够支持4GB的“内存”——当然,指32位x86系统,64位Windows Vista x64也没有对应的Starter版本——不过,需要注意的是,这里所谓的“4GB”并非等同于真正的物理内存,而是指可用的内存寻址空间。

  相信有计算机基础的用户都清楚,对32位系统而言,4GB是其能够寻址空间的极限,除非通过PAE(Physical Address Extension : 物理地址扩展)将4GB之上的内存通过映射的方式作为4GB空间中的页面来扩展。而在这4GB的地址空间中,必须为计算机的系统资源如BIOS、显卡、PCI-Express等PCI接口留出位置。

  让我们简单地看一下Windows Vista x86所支持的4GB寻址空间都包括哪些:首先,BIOS至少要占去512KB,当然,这是一个很小的数字;其次,显卡要占去略大于其视频RAM的空间,比如说,对于希望在高分辩率下使用Aero Glass的情况而言,256MB显存是必需的,这也意味着必须在4GB的寻址空间中为显卡的256MB视频RAM留出位置;第三,对基于x86的计算机系统而言,其还必须为其他的PCI设备保留相当部分的寻址空间,比如各种IO设备等。这样,Windows Vista在寻址真正的物理内存之前,系统中已经被各种资源占用512MB到1GB的寻址空间,也即是说,Windows Vista真正能够使用的物理内存大致在3 GB到3.4 GB之间。

  这对于象Windows Vista这样一款以1GB RAM越跳的系统而言,系统内存的可扩充空间实在太小,尤其与当年Windows XP 128MB-4GB的内存范围相比。而且,虽然Windows Vista X86从内核上来说应该是能够支持PAE的,但似乎目前微软并没有相应的计划。也许,Windows Vista会在今后以Service Pack方式引入对PAE的支持?——当然,也需要硬件厂商特别是CPU、芯片组与主板厂商的配合。

  另一方面,狂炒几年的桌面64位技术尽管并未给最终用户带来太多真正意义的好处,但负面影响则是巨大的:那便是软件开发商越来越习惯了“奢侈”地使用内存资源,以前那种在以较少的内存下实现尽可能多功能的“精致”设计越来越少见,或者说,内存总是至少不是软件开发商关注的重点,从而出现了动辄需上百兆甚至过GB内存才能保证运行的程序。而在32位的Windows系统——不仅仅Windows Vista——中,所支持的4GB寻址空间被分成两部分:其中2GB可被应用程序使用,而另外的2GB则被系统内核占用。因此,即使对于系统中安装了4GB内存的Windows Vista而言,应用程序所能够使用的内存也被限制在2GB之内,从而在某些情况下仍难免会出现“内存不足”的情况。对此,虽然可以通过微软的4GT RAM Tuning来将内核的内存起始位置移至3GB处——以在Boot.ini中添加“/3GB”开关实现,即将为内核分配的虚拟地址空间缩小到1GB,而将应用程序可使用的地址空间扩展到3GB——但距理想程度仍有距离。

  当然,如何系统硬件支持64位,问题就好办多了,Windows Vista x64可支持的内存从8GB(Windows Vista Home Basic)到128GB(Windows Vista Ultimate),类似的寻址限制不复存在。


【责任编辑 徐洋】

本篇文章来源于 黑客天下 原文链接:http://www.hack4.co

MVC详解:了解真正所谓的"框架"

 

  现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2,Spring,Hibernate。似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和找工作的必备基础。

    然而,如果在面试的时候问这些程序员,你们为什么要学习这些框架?这些框架的本质到底是什么?似乎很少很少有人能够给我非常满意的答复。因为他们都在为了学习而学习,为了工作而学习,而不是在真正去深入了解一个框架。其实所有的人都应该思考这样的问题:为什么要学习框架?框架到底给我带来了什么?接下来,我们以登录作为一个最简单的例子,来看看不同的年代,我们是怎么写Web程序的。

在很多年前,我们这么写程序的

    很多年前,那是一个贫苦的年代,如果我们要使用Java在网页上做一些动态的交互功能。很多人会告诉你一个技术,叫做JSP。在我还对Java非常困惑的时候,就有人告诉我,JSP是个好东西,它可以在HTML代码里面写Java代码来完成逻辑。

    Html代码:


img


    作为一张JSP,它可以接收从别的JSP发送过来的登录请求,并进行处理。这样,我们不需要任何额外的配置文件,也不需要任何框架的帮忙,就能完成逻辑。

后来,我们放弃了在页面上写逻辑

    后来,程序写得越来越多,我们发现,这种在HTML代码中编写Java代码来完成逻辑的方式存在着不少问题:

    1. Java代码由于混杂在一个HTML环境中而显得混乱不堪,可读性非常差。一个JSP文件有时候会变成几十K,甚至上百K。要找一段逻辑,经常无法定位。

    2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不知道别人是不是已经曾经实现过类似的功能,到哪里去引用。

    3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全程替换,还要小心翼翼的,生怕把别人的逻辑改了。

    4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事务、日志等众多模块无法统一支持。

    在这个时候,如果有一个产品,它能够将页面上的那些Java代码抽取出来,让页面上尽量少出现Java代码,该有多好。于是许多人开始使用servlet来处理那些业务逻辑。

    Java代码:


img


    在这里,我们需要在web.xml中为这个servlet配置url的请求关系。

    Xml代码:


img


    代码重构到这里,我们发现,其实我们的工作量本身并没有减少,只是代码从JSP移动到了Servlet,使得整个流程看上去稍微清楚了一些。然而,为了这么点干净,我们付出的代价是什么?为每个servlet都在web.xml里面去做一个url的请求配置!

再后来,出现框架

    时代进一步发展,人们发现简单的JSP和Servlet已经很难满足人们懒惰的要求了。于是,人们开始试图总结一些公用的Java类,来解决Web开发过程中碰到的问题。这时,横空出世了一个框架,叫做struts。它非常先进地实现了MVC模式,成为了广大程序员的福音。

    struts的代码示例我就不贴了,网上随便搜搜你可以发现一堆一堆的。在一定程度上,struts能够解决web开发中的职责分配问题,使得显示与逻辑分开。不过在很长一段时间内,使用struts的程序员往往无法分别我们到底需要web框架帮我们做什么,我们到底需要它完成点什么功能?

我们到底要什么

    在回顾了我们写代码的历史之后,我们回过头来看看,我们到底要什么?

    无论是使用JSP,还是使用Struts1,或是Struts2,我们至少都需要一些必须的元素(如果没有这些元素,或许我还真不知道这个程序会写成什么样子):

    1. 数据

    在这个例子中,就是name和password。他们共同构成了程序的核心载体。事实上,我们往往会有一个User类来封装name和password,这样会使得我们的程序更加OO。无论怎么说,数据会穿插在这个程序的各处,成为程序运行的核心。

    2. 页面展示

    在这个例子中,就是login.jsp。没有这个页面,一切的请求、验证和错误展示也无从谈起。在页面上,我们需要利用HTML,把我们需要展现的数据都呈现出来。同时我们也需要完成一定的页面逻辑,例如,错误展示,分支判断等等。

    3. 处理具体业务的场所

    在这里,不同阶段,处理具体业务的场所就不太一样。原来用JSP和Servlet,后来用Struts1或者Struts2的Action。

    上面的这些必须出现的元素,在不同的年代,被赋予了不同的表现形式,有的受到时代的束缚,其表现形式非常落后,有的已经不再使用。但是拨开这些外在的表现形式,我们就可以发现,这不就是我们已经熟门熟路的MVC嘛?

    数据 ———— Model

    页面展示 ———— View

    处理具体业务的场所 ———— Control


    所以,框架不重要,概念是王道。只要能够深刻理解MVC的概念,框架对你来说,只是一个jar包而已。

    MVC的概念其实就那么简单,这些概念其实早已深入我们的内心,而我们所缺乏的是将其本质挖掘出来。我们来看看下面这幅图,这是一副流行了很多年的讲述MVC模型的图:


img


    在这幅图中,MVC三个框框各司其职,结构清晰明朗。不过我觉得这幅图忽略了一个问题,就是数据是动的,数据在View和Control层一旦动起来,就会产生许多的问题:

    1. 数据从View层传递到Control层,如何使得一个个扁平的字符串,转化成一个个生龙活虎的Java对象

    2. 数据从View层传递到Control层,如何方便的进行数据格式和内容的校验?

    3. 数据从Control层传递到View层,一个个生龙活虎的Java对象,又如何在页面上以各种各样的形式展现出来

    4. 如果你试图将数据请求从View层发送到Control层,你如何才能知道你要调用的究竟是哪个类,哪个方法?一个Http的请求,又如何与Control层的Java代码建立起关系来?

    除此之外,Control层似乎也没有想象中的那么简单,因为它作为一个控制器,至少还需要处理以下的问题:

    1. 作为调用逻辑处理程序的facade门面,如果逻辑处理程序发生了异常,我们该如何处理?

    2. 对于逻辑处理的结果,我们需要做怎么样的处理才能满足丰富的前台展示需要?

    这一个又一个问题的提出,都基于对MVC的基本概念的挖掘。所以,这些问题都需要我们在写程序的时候去一一解决。说到这里,这篇文章开头所提的问题应该可以有答案了:框架是为了解决一个又一个在Web开发中所遇到的问题而诞生的。不同的框架,都是为了解决不同的问题,但是对于程序员而言,他们只是jar包而已。框架的优缺点的评论,也完全取决于其对问题解决程度和解决方式的优雅性的评论。所以,千万不要为了学习框架而学习框架,而是要为了解决问题而学习框架,这才是一个程序员的正确学习之道。


m/article/hack4-3947.html
关词条

完善 暂无相关词条

<script src="js/ajax.js" type="text/javascript"></script> <script src="js/common.js" type="text/javascript"></script> <script src="js/firefox.js" type="text/javascript"></script> <script src="js/docTag.js" type="text/javascript"></script> <script src="js/docThesaurus.js" type="text/javascript"></script> <script src="js/viewdoc.js" type="text/javascript"></script> <script src="js/ajaxviewdoc.js" type="text/javascript"></script> <script src="js/search.js" type="text/javascript"></script> <script src="js/ajaxSetUserNav.js" type="text/javascript"></script> <script src="js/experttopic.js" type="text/javascript"></script> <script src="js/alertwin.js" type="text/javascript"></script> <script src="js/perfectcordoc.js" type="text/javascript"></script> <script src="js/doccontest.js" type="text/javascript"></script> <script type="text/javascript"></script>

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页