html文件怎么发到网络上,怎样将保存为HTM格式的文件发送到网络空间上

我想把JAVA格式的代码放到新浪博客里,需要把代码复制到记事本中并保存为HTM文件,然后把这个文件传到网络空间上,我把代码保存后发现那个HTM文件是空的,并且不知道该如何传到网络空间上,请各位网络高手帮帮忙,谢谢啦!!!就是这个代码还有一个是IFRAME的

展开

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:   第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;   第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。不要害怕和逃避,毕竟我们还年轻。   本文共分五大部分。分别是XML快速入门,XML的概念,XML的术语,XML的实现,XML的实例分析。最后附录介绍了XML的相关资源。作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述XML的方方面面,帮助你拨开XML的神秘面纱,快速步入XML的新领域。 • 第一章:XML快速入门 • 一. 什么是XML? • 二. XML是新概念吗? • 三. 使用XML有什么好处? • 四. XML很难学吗? • 五. XML和HTML的区别 • 六. XML的严格格式 • 七. 关于XML的更多 • 第二章:XML概念 • 一. 扩展性 • 二. 标识 • 三. 语言 • 四. 结构化 • 五. Meta数据 • 六. 显示 • 七. DOM • 第三章:XML的术语 • 导言 • 一.XML文档的有关术语 • 二.DTD的有关术语 • 第四章:XML的语法 • 一.XML语法规则 • 二.元素的语法 • 三.注释的语法 • 四.CDATA的语法 • 五.Namespaces的语法 • 六.entity的语法 • 七.DTD的语法 • 第五章:XML实例解释 • 一.定义新标识 • 二.建立XML文档 • 三.建立相应的HTML文件 • 第六章:XML相关资源 五. XML和HTML的区别 XML和HTML都来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,XML不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。 这是一个质的区别:网页将数据和显示混在一起,而XML则将数据和显示分开来。 我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页面,但数据是储存在myfile.xml中,不需要任何改变。 (如果你是程序员,你会惊讶的发现,这与模块化面向对象编程的思想极其相似!其实网页何尝不是一种程序呢?) 正是这种区别使得XML在网络应用和信息共享上方便,高效,可扩展。所以我们相信,XML做为一种先进的数据处理方法,将使网络跨越到一个新的境界。 六. XML的严格格式 吸取HTML松散格式带来的经验教训,XML一开始就坚持实行"良好的格式"。 我们先看HTML的一些语句,这些语句在HTML中随处可见: 1. sample 2.sample 3.sample 4.samplar 在XML文档中,上述几种语句的语法都是错误的。因为: 1.所有的标记都必须要有一个相应的结束标记; 2.所有的XML标记都必须合理嵌套; 3.所有XML标记都区分大小写; 4.所有标记的属性必须用""括起来; 所以上列语句在XML中正确的写法是 1. sample 2.sample 3.sample 4.samplar   另外,XML标记必须遵循下面的命名规则: 1.名字中可以包含字母、数字以及其它字母; 2.名字不能以数字或"_" (下划线) 开头; 3.名字不能以字母 xml (或 XML 或 Xml ..) 开头; 4.名字中不能包含空格。 在XML文档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对XML实行严格而挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: XML轻松学习手册 ajie <E
网趣网上购物系统HTML静态版 V2012介绍: 一、采用先进的AJAX与XML技术相融合全站静态生成! 网趣网上购物系统HTML静态版 V2012是一套最为先进的网上开店软件!系统采用先进的AJAX技术与XML技术相融生成静态,速度更快!软件代码多重过滤可以第一时间被搜索引擎收录,独特的静态生成算法可以大大减轻服务器的负担,无论在生成速度还是安全方面都达到国内领先水平。 二、生成过程更简单易用、更直观方便! 网趣HTML静态版V2012采用更为直观的静态生成模式!所有静态生成均在一个页面完成。系统生成静态统一采用百分比及进度条直观显示,全站静态生成显示动态进度,以及生成的百度比!生成过程随时掌控,使之更直观的呈现在人们面前! 三、静态生成与动态跟踪技术。实时显示页面信息! 网趣HTML静态版V2012运用先进的技术手段,在生成HTM文件的基础上,准确的显示用户当前的登陆状态、新闻的浏览率、用户的身份以及相应的价格级别等信息!完美解决了HTM文件不能实时显示动态信息的瓶颈。 四、多种智能HTM生成规则,方便用户管理! 系统在生成静态HTM的基础上,以用户为出发点,加入多种智能静态生成。静态生成页面实时显示未生成的数据。例如原来有500件商品并已生成静态,今天刚添加完一百件,系统实时显示未生成静态的数据,而且可以只生成这一百件商品而无须全部生成,大大节约了时间。同时还增加ID段生成功能,根据商品起始ID进行生成静态,非常方便! 五、独特的静态生成与强大的SEO优化于一体! 事实证明,HTML静态文件快速被搜索引擎收录,网趣HTML静态版V2012在采用先进的AJAX与XML技术生成的前提下,同时兼备了强大的SEO优化于一体,使您的网店推广变的尤为轻松!从此让您的网店在搜索引擎中脱颖而出! 总结HTML静态版的功能优势如下: √ 第一时间被搜索引擎收录,让客户第一时间找到您! √ 大大减轻服务器负担,同等环境下,HTML静态版浏览速度要比ASP高出近10倍!即使在服务器负载较重的情况下,也不会让您漏失客户! √ 更安全!HTML静态版不存在任何漏洞,让您高枕无忧。 √ 更易维护和管理,HTML静态页面后台只须轻轻一点,即可全部生成,方便快捷! √ 是电子商务时代所趋,目前较为流行的购物站均采用静态化的HTML,采用HTML静态版已是大势所趋。 六、HTML静态版拥有6套风格独特的模板 Html静态版拥有6套不同色调的模板,后台只须轻轻一点,整站风格即可瞬间更换,从此摆脱风格单一、枯燥的界面,每天给客户以新的感觉、新的享受! 七、购物系统HTML版支持三级级分类设置 网趣网上购物系统支持的三级分类设置,后台可以轻松对商品进行分类的明细化设置,添加商品,可以方便得设置一、二、三级分类的属性,对于商品较少的购物站,用户也可以只用2级分类,使购物系统的适应人群弹性更强,网站的导航分类一目了然,是购物系统最好的明细分类地图,用户可以方便得查看整站所有的类别信息。 八、支持商品图片自动删除功能 率先支持商品图片自动清除功能,众所周知,随着商品不断的上架与删除,会有很多冗余的图片占留空间,Html静态版支持删除商品的同时商品图片也随之自动删除,更节约空间,如果您的空间够大,图片也可以进行保留,后台可以方便得控制 九、率先支持Excel批量导入商品 网趣HTML静态版率先支持Excel批量导入商品功能,只须下载Excel模板按要求进行添加商品即可,添加完后通过批量添加商品功能,上传Excel文件即可一次性批量添加完成,非常方便。特别适合经常在本地来完成Excel添加,然后集中批量上传的用户。同时配合程序独有的批量修改功能,管理商品变的特别轻松与方便! 十、全屏幕设计的流行风格 采用目前流行的全屏幕设计风格, 流行而时尚,独特且新颖!优美的外观设计、给用户以美的视觉冲击,这是您网店成功的第一步! 十一、强大的商品输出Excel 功能 网趣支持商品数据导出Excel 电子表格功能!所有商品数据可直接输出至Excel 中,对于管理员进行帐务分析、数据备份有着举足轻重的使用! 十二、支持贝宝支付接口 贝宝是全球优秀的在线支付提供商,支持国内、国外银行卡支付,网趣系统现已整合贝宝支付接口,目前程序已经支持7种在线支付接口,后台可自由切换使用。 十三、现已整合财付通支付接口 财付通是腾讯推出的一款功能强大的在线支付工具,应用户的强烈要求,现已整合。程序目前拥有7种在线支付接口,后台自由切换使用,极其方便! 十四、订单自动通知功能! 有新订单产生,程序具有自动邮件通知功能,可以把订单信息发送到管理员邮箱,同时也会自动发送给客户信箱,可以直接登陆邮箱就可以查收订单!! 同时新用户
概述 网际畅游 (MyIE)是一款精巧的基于IE为内核(需IE5.0或IE5.5的支持),在同一窗口可以打开多个页面,且没有数量限制,对系统资源占有率较少的浏览器。 网际畅游 (MyIE)是一个完全免费的软件,你可以免费使用,并且可以以任何形式传播该软件。 操作系统 支持Win9x/Win NT/Win2000/Win XP。 安装 MyIE属于免费的绿色软件,没有广告条,无需安装,解压到文件夹后可以直接使用。 现有主要功能(MyIE除IE5.0标准功能外,有自己的特色功能) 浏览功能: 多窗口浏览:你可以在MyIE内同时打开多个页面进行浏览,但对系统资源的占用率极少。 标签栏:当你打开多个网页时,却只使用一个窗口,你可以通过单击标签快速方便地切换网页。标签的位置可以在上部,也可在下部。(MyIE选项对话框/标签/标签位置/上部或下部) Tips:使用Ctrl-Tab可快速切换标签。 标签栏有三种形式:单行, 多行, 自适应。自适应标签会根据标签数量自动调整标签的宽度,使他们尽量保持在一行内。 图标化的进度显示: 在浏览时每个标签旁都有一个小图标来显示该页当前的下载进度。 当图标为白色时进度在0%-25%之间,当蓝色区域占四分之一时进度在25%-50%之间,以此类推。当图标消失时说明该页已经下载完毕了。红色图标说明下载完毕但你尚未看过。 关闭广告窗口:在你浏览网站时,你是否会经常遇到一些不请自来的广告窗口?现在你只要点击鼠标右键将不喜欢的窗口列入“加入窗口过滤器”来节省你上网的时间。 你也可以将某个Frame或IFrame的URL加入窗口过滤器,这个Frame或IFrame以后就不会下载了。 使用*过滤窗口:在过滤广告窗口时可以在URL中使用*来过滤一批相似的地址。但你可不要用*把所有的窗口都过滤掉哦! 使用自动窗口过滤:在编辑窗口过滤器中选择使用自动窗口过滤,MyIE会自动禁止那些不必要的广告窗口而不必把URL加入过滤列表中。每个窗口也可分别设置是否使用自动过滤弹出窗口功能而不影响其他窗口。 过滤重复窗口:在编辑窗口过滤器中选择过滤重复窗口,MyIE会自动重用已打开的相同URL的窗口,避免资源浪费。 下载控制:你可以为每个页面设置是否需要在网页中载入图片,声音,Script文件, Java Applet, ActiveX。你可以关闭图片来加快下载的速度。 脱机浏览:使用文件/脱机工作 可以在未联网的情况下浏览以前访问过的历史网页。 保存网页:MyIE可以保存网页中的所有内容, 也可以以原文件保存网页的HTML代码(Alt-S),给喜欢简洁的网友。 快速保存:快速地保存浏览的网页,包括其中的图片等。 自动保存:类似于保存功能,但页面将自动保存到预先设定好的目录中而不再需要保存对话框。自动保存有4种方式可以选择:WEB页面为html, WEB页面为mht, 仅HTML,快速保存。可以在Myie选项的保存页面中选择默认的方式。同时还可以选择以站点分类保存到不同目录。页面将保存在以站点主名命名的子目录中。预先设定的保存目录也可在Myie选项的保存页面中设置。 域名完成:在地址栏输入网址时可以用Ctrl+Enter, Shift+Enter, Ctrl+Shift+Enter来帮你完成这个网址。他会为你加上http://www.及相应的后缀如:.com, .net, .com.cn。你可以在MyIE选项中修改它们。 一次打开窗口的最大值:在 MyIE选项中可设置这个值, 他规定了在批量打开窗口时, 每次的最大值。可根据你的习惯和电脑配置来调整,从而避免因失误而打开过多的窗口。 不弹出脚本错误提示框:在浏览某些网页时会出现脚本错误,要避免这个问题可以在MyIE选项中选中“不弹出脚本错误对话框”. 本地文件浏览:在工具栏上选择文件按钮,会出现一个类似文件管理器的窗口,其中列出了你的目录和文件, 双击文件即可进行浏览了。你可改变下部的文件类型列表以显示不同的文件类型。改变后可按旁边的刷新按钮刷新显示。如需禁止该功能可在myie.ini文件的Settings中加入Secure=1即可。 浏览用户资源:在工具栏上选择用户资源按钮,将出现用户资源窗口, 缺省的包括MyIE最新版本信息,股票查询,网络字典,免费邮件。该窗口的内容存放于resource.htm文件中, 大家可以修改他,放入你需要的网上资源。 自动滚屏:使用自动滚屏可帮助你浏览小说文章等较长的页面,滚屏适用于没有框架的网页。滚屏的速度有高中低三种,如果你觉得太快或太慢可以在ini文件中的[settings]下加入SpeedSeed = nn,nn为一数字,缺省为100。 越小则速度越快。建议不要小于50。 浏览模式:浏览模式为MyIE中的设置的一种组合,大家可在不同的时候使用不同的模式。目前设有自定义,标准,和新闻三种。使用中对设置的修改会自动保存在自定义模式中。 设置页面背景色:可改变页面的背景色方便阅读长文章。 为所有窗口设置背景色:可为所有的窗口设置当前的默认背景色。 自动设背景色:页面下载后自动设置为预设的背景色。 发送:可把页面或链接通过EMAIL发送给你的朋友。 活动标题图标:当MyIE正在下载页面时MyIE的窗口图标会持续转动。 支持下载工具。可以在MyIE选项中选择所使用的下载工具,这样当点击下载文件时可以调用该工具来下载。目前内置了NetAnts和FlashGet。 鼠标控制功能:可通过在页面空白处按住右键并移动鼠标来实现一些功能。目前有: 向下: 打开新窗口 向左: 后退 向右: 前进 先上再下: 刷新 右左右 或 先下再右: 关闭窗口 窗口管理: 激活新窗口:当你选择了激活新窗口, 每当新建一个窗口它就会成为当前的活动窗口。 否则新窗口将不会被激活。 当你在浏览新闻站点时就可以一次点好想要看的所有新闻, 它们将会在后面的窗口中依次打开。 打开新窗口:可选择在输入新地址,点收藏夹,历史,本地文件,页面内链接时打开新窗口而不影响当前窗口。 多窗口同时浏览:选择窗口/垂直平铺 可使你打开的所有浏览窗口平铺在主窗口内,使你一览无遗。 新建窗口: MyIE有4种新建窗口的方法, 新建空白窗口, 新建主页, 新建当前页, 从剪贴板新建。可在MyIE选项中选择默认的新建方法。 锁定窗口: 在标签上点右键, 选锁定该标签可锁定一个窗口。 当一个窗口被锁定,它就不会在关闭所有窗口时被关闭。且点链接时会在新窗口中打开。 关闭所有窗口: 可以关闭除了锁定窗口之外的所有窗口。 全屏浏览:使用全屏浏览(F11)将使MyIE占据整个桌面, 提供最大的浏览空间。 自动重用空窗口:当你在新窗口中打开网页的时候MyIE会在自动重用已存在的空窗口, 以节约系统的资源。 在新窗口中打开网页:如果你没有使用始终打开新窗口的功能但想在新窗口中打开一个网页,可在点收藏夹,链接,和历史中的网址时按住Ctrl键,则该网页将在新窗口中打开。 顺序切换窗口:当你打开了一个以上的窗口时,你可以用右上角的两个箭头按钮来顺序的切换当前窗口。 你还可用快捷键Ctrl+ <- 和Ctrl+ -> 或F2, F3来作顺序的切换。 同时Ctrl+Tab 仍可以默认的窗口次序切换当前窗口。快捷键F2 = Ctrl <-, F3 = Ctrl ->, Ctrl-1...Ctrl-9,Ctrl-0 代表窗口1 到 窗口10. 顺序激活窗口:当你关闭一个窗口的时候,下一个被激活的不一定是他旁边的窗口,有时会给浏览带来麻烦。 现在使用 MyIE选项/窗口/激活顺序 就可以解决这个问题。使用 向前 可在关闭当前窗口后激活他前面的一个窗口。使用 向后 可在关闭当前窗口后激活他后面的一个窗口。 为窗口改名:右击窗口标签,选择设置固定标签名。 你可输入一个新名字,他将代替原来的窗口名称。 若要恢复原名,只要删掉固定名字即可。 窗口保护:右击窗口标签,选择保护该窗口。 你可输入保护口令,以后若要访问该窗口必须有口令才行。 隐藏MyIE:用Alt+` 可隐藏或调出MyIE。 拖动链接到地址栏:可将页面上的连接拖动到地址栏上,从而在新窗口中打开这个连接。 拖动链接到标签栏:可将页面上的连接拖动到标签栏上的某个标签上, 在这个指定的窗口中打开链接 设置双击和中键击标签的动作:可在Myie选项的标签页面中为双击和中键击标签选择对应的功能。 目前可选的功能有:关闭窗口,保存当前页面,保存HTML,自动保存。 页面自动刷新功能,可定时刷新非活动窗口,如果是当前窗口则不刷新。刷新频率可在工具菜单或标签的右键菜单中设置。 撤消关闭窗口的列表。可撤消最近关闭的多个窗口。 拖动链接在新窗口中打开。通过拖动一个链接就可以将这个链接在新窗口中打开。 拖动标签:可用鼠标左键拖动标签重新排列标签的位置。 代理服务器: 使用代理服务器:代理服务器可使你突破网络的限制畅游Internet. 如果你已经设置了一个代理服务器, 就可以选“选项/使用代理服务器”来使用或关闭代理服务器。 该设置对所有的网页都有效。 使用Web代理: 网上有不少网站提供基于Web的代理服务, 它速度较快且比较稳定。 你可以为每个网页分别设置不同的Web代理或不使用代理。 可以选“选项/使用Web代理服务”来使用或关闭代理服务。 MyIE已经预先内置了一个代理了。当你为一个窗口选择了使用web代理后,在输入新网址或点了收藏夹中的网址时,就会通过该代理来访问了。 设置代理: 使用“选项/快速代理设置” 可以新增/修改/删除 代理服务器和Web代理服务。代理服务器的格式为:地址: 端口,如202.96.233.13:3128。 大家可以在网上找到不少免费的代理服务器。Web代理中可使用%s和%S来表示插入网址的位置,否则网址将插在代理末尾。MyIE可分类管理不同的代理,你可自行增加或删除代理种类。不过必须保留一个web代理。 使用多个代理服务器:你可以在一个MyIE浏览器中使用一个代理服务器, 然后再开一个MyIE浏览器使用别的代理服务器或不用。 这样你可以一边浏览国内的网站, 一边用代理服务器浏览国外的网站。 设置速度标签: 为了方便代理服务器和web代理的管理,你可以为每个代理设置一个速度标签来加以区分。速度标签有:很快,快速,一般,较慢,很慢,无效共6级。你可以在快速代理设置对话框中用右键菜单来设置。 使用工具条的按钮:工具条上有两个按钮:代理服务器和web代理。使用它们可以方便的选择和使用代理,效果和用菜单一样。 你刚用过的代理将作为缺省的设置,当你直接按按钮时就将使用这个缺省设置的代理了。 编辑Bypass 网址: 使访问那些地址时不通过代理服务器。每个地址以空格分开。 导出/导入代理服务器:使用导入导出功能可以和代理猎手配合使用,方便验证代理服务器。 快捷功能: 设置启动组:在收藏夹栏的收藏夹目录上的右键菜单中选设为启动组菜单,将该目录设为启动组。启动组将以粗体表示,可用于MyIE的第四种启动模式。这样你等于是拥有了一组Homepages了。 Tips: 不妨把目录“链接”设为启动组 打开启动组:打开你的启动组中的所有连接。你可把你的最精华的网址放在里面以方便随时打开它们。 网页缩写:打入长长的URL是不是很麻烦?或许你不想记住那些地址。那么你就需要缩写的功能。你可以为网址定义一个中文或英文的缩写,当你在地址栏中象输入URL一样输入缩写,它将被自动翻译成相应的网址。 一键通:为使你能更快捷的浏览喜欢的网页,你可以使用一键通为F2-F12键定义一个网址。只要你一按F*就可访问对应的网页。但这时F键所对应的其他快捷键将被屏蔽。 3721中文网址:选中 快捷/3721中文网址,就可使用3721中文网址了。不须使用其他客户端软件,只要在地址栏输入“电脑报”即可到电脑报网站了。 快捷组:应网友的要求加入了和Netcaptor兼容的快捷组。 只需将Netcaptor的*.cgp文件拷贝到MyIE目录下的groups目录中即可。双击组内网址可打开该网页。 将当前所有窗口另存为组:可将当前所打开的窗口网址另存为一个新的组。 自动填表:使用Alt-Q可自动填写当前页面中的表单,在填表前需用Alt-1来收集表单的数据,也可以用Alt-2把表单的数据保存为通用表单。当填表时如果没有相应的表单数据则使用通用表单的数据。注:该功能不适合多人共用的电脑,以免重要数据的泄露。 快捷搜索:只要在地址栏中输入如 yahoo keyword 就可以用yahoo来搜索该keyword。 使用设置快捷搜索可以定制所需要的搜索引擎的快捷名称。 状态栏的快捷按钮。状态栏上设置了四个快捷按钮,依次为脱机浏览,当前窗口使用自动过滤,激活新窗口,简易文本搜集面版。 简易搜集面版。用来暂存文本信息和图片。可拖放文本图片到状态栏按钮或搜集面版 上将文本图片保存起来。图片会保存到预设的图片保存目录中,方便收集图片。 收藏夹和链接: 收藏夹: MyIE具有和IE一致的添加到收藏夹,组织收藏夹,导出/导入收藏夹。 打开本层链接:收藏夹菜单中每级都有一项打开本层链接的菜单。 使用它可以打开这一层收藏夹的所有链接。 打开所有链接:链接栏上的第一个按钮是打开所有链接, 它可以打开链接中的所有网址。 收藏夹栏: 点击工具条上的收藏夹就会出现收藏夹栏。使用收藏夹栏的右键菜单可以删除,复制,在新窗口中打开网址。以及打开所有网址。 最爱网页:如果你的收藏夹有许多网址使你无从下手,你可以将其中最喜欢的网址设为最爱网页,他们将会以红色的图标表示出来。它将帮你提高上网的效率。 最爱目录:你可以将你最喜欢的收藏目录设为最爱目录,他们将会以红色的图标表示出来。它将帮你提高上网的效率。双击一个目录可打开所有网址。 打开本层我的最爱:收藏夹菜单中每级都有一项打开本层我的最爱的菜单。 使用它可以打开这一层收藏夹中所有最爱的网页。 使用单列的收藏菜单:如果你有一个很大的收藏夹,如果你使用Win98,建议你使用单列菜单。你可在 MyIE选项中选择。使用后如果菜单超过一屏的长度则会出现滚动按钮,可用来滚动菜单。 收藏条:将收藏夹中的目录以工具条的方式显示,方便你随时取用。如果你的目录很多可使用紧凑模式以去掉小图标。方法是:在ini文件的[settings]下加入CompactFavBar = 1 收藏夹排序:在收藏夹栏中可拖动收藏条目或目录来排序。 加入到当前收藏菜单:在收藏菜单的每个子菜单中增加了一个加入连接到当前目录的菜单项,可将当前页面的网址直接加入到当前的收藏目录中。 增强功能: 内置多种搜索引擎:MyIE内置了近100种中英文分类搜索引擎(查看/浏览栏/搜索),可以轻松查找你需要的资料。你只要输入关键字,然后选择所要用的搜索引擎。搜索结果将在不同的窗口中显示。 而且搜索引擎列表可以很方便的升级。 外部工具管理器:MyIE为用户所想,可以把用户上网经常用到的一些软件放在工具管理器内(如:Net vampire,IP工具包, 甚至拨号网络)方便你使用。使你不用离开MyIE就可以完成大部分上网功能. 而且你可以让工具随MyIE自动启动并自动关闭,可在外部工具管理器中设置。 清除历史记录:可以方便地清除你不需要的一些浏览记录(如Cookies,Cache和历史)。 设为缺省浏览器:选择 选项/设置为缺省浏览器, 回答"是"将MyIE设为缺省浏览器, "否"恢复上一次的设置。 六种启动模式: 打开空白页, 打开主页, 继续最后浏览的页面, 打开收藏夹的启动组(需预先在收藏夹中设定一个启动目录),打开收藏夹的启动组中的最爱网页,打开启动快捷组(需要预先设定). 让你一打开MyIE就看到你最喜欢的网站. 显示上网的IP地址: 选择工具/显示本机IP地址, 在状态栏上显示当前的IP地址。 设置皮肤:MyIE支持与IE兼容的皮肤。 将BMP图形文件复制到MyIE所在目录的myieskin子目录中,然后在工具/设置MyIE皮肤中选择相应的皮肤即可。 自定义工具条:应网友的要求加入了可自定义工具条按钮的功能。 MyIE选项:可让你修改一些MyIE的属性,使你更好的控制和使用MyIE. 系统资源:在Win98系统上,状态栏上会显示当前系统的资源数量。 空闲内存:在WinNT和Win2000下显示空闲的内存数。 Modem下载速度:在Win98系统上,状态栏上会显示当前modem的下载速度。 最小化到系统托盘:在MyIE选项中选择最小化到系统托盘即可使MyIE最小化到系统托盘中。 禁止状态栏上的滚动字符:选中 选项/禁止状态栏滚动字符 可以去掉那些干扰视线的滚动字符。 链接列表。使用查看中的页面链接可以列出当前页面内的所有链接,并可用过滤功能列出相应的链接。 锁定主页:可防止有的网页随便的修改你的主页,只有通过MyIE中的Internet选项才可以修改主页。
第4章 ASP.NET的网页代码模型及生命周期 从本章开始,就进入了ASP.NET应用程序开发的世界。在了解了C#的结构,以及面向对象的概念后,就可以从面向对象的思想开发ASP.NET应用程序。在ASP.NET中,能够使用面向对象的思想和软件开发中的一些思想,例如封装、派生、继承以及高级的设计模式等。本章首先介绍ASP.NET中最重要的概念---网页代码模型。 4.1 ASP.NET的网页代码模型 在ASP.NET应用程序开发中,微软提供了大量的控件,这些控件能够方便用户的开发以及维护。这些控件具有很强的扩展能力,在开发过程中无需自己手动编写。不仅如此,用户还能够创建自定义控件进行应用程序开发以扩展现有的服务器控件的功能。 4.1.1 创建ASP.NET网站 在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,ASP.NET网站的网页元素包含可视元素和页面逻辑元素,并不包含designer.cs文件。而ASP.NET应用程序包含designer.cs文件。创建ASP.NET网站,首先需要创建网站,单击【文件】按钮,在下拉菜单中选择【新建网站】选项,单击后会弹出对话框用于ASP.NET网站的创建,如图4-1所示。 图4-1 新建ASP.NET网站 在【位置】选项中,旁边的【下拉菜单】可以按照开发的需求来写,一般选择文件系统,地址为本机的本地地址。语言为.NET网站中使用的语言,如果选择Visual C#,则默认的开发语言为C#,否则为Visual Basic。创建了ASP.NET网站后,系统会自动创建一个代码隐藏页模型页面Default.aspx。ASP.NET网页一般由三部分组成,这三个部分如下所示。 q 可视元素:包括HTML,标记,服务器空间。 q 页面逻辑元素:包括事件处理程序和代码。 q designer.cs页文件:用来为页面的控件做初始化工作,一般只有ASP.NET应用程序(Web Application)才有。 ASP.NET页面中包含两种代码模型,一种是单文件页模型,另一种是代码隐藏页模型。这两个模型的功能完全一样,都支持控件的拖拽,以及智能的代码生成。 4.1.2 单文件页模型 单文件页模型中的所有代码,包括控件代码、事物处理代码以及HTML代码全都包含在.aspx文件中。编程代码在script标签,并使用runat=“server”属性标记。创建一个单文件页模型,在【文件】按钮中选择【新建文件】选项,在弹出对话框中选择【Web窗体】或在右击当前项目,在下拉菜单中选择【添加新建项】选项即可创建一个.aspx页面,如图4-2所示。 图4-2 创建单文件页模型 在创建时,去掉【将代码放在单独的文件中】复选框的选择即可创建单文件页模型的ASP.NET文件。创建后文件会自动创建相应的HTML代码以便页面的初始化,示例代码如下所示。 <%@ Page Language=“C#” %> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <script runat=“server”> </script> <html xmlns=“http://www.w3.org/1999/xhtml”> <head runat=“server”> <title>无标题页</title> </head> <body> <form id=“form1” runat=“server”> <div> </div> </form> </body> </html> 编译并运行,即可看到一个空白的页面被运行了。ASP.NET单文件页模型在创建并生成时,开发人员编写的类将编译成程序集,并将该程序集加载到应用程序域,并对该页的类进行实例化后输出到浏览器。可以说,.aspx页面的代码也即将会生成一个类,并包含内部逻辑。在浏览器浏览该页面时,.aspx页面的类实例化并输出到浏览器,反馈给浏览者。ASP.NET单文件页模型运行示例图如图4-3所示。 图4-3 单文件页模型 4.1.3 代码隐藏页模型 代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在cs文件中,当ASP.NET网页运行的时候,ASP.NET类生成时会先处理cs文件中的代码,再处理.aspx页面中的代码。这种过程被成为代码分离。 代码分离有一种好处,就是在.aspx页面中,开发人员可以将页面直接作为样式来设计,即美工人员也可以设计.aspx页面,而.cs文件由程序员来完成事务处理。同时,将ASP.NET中的页面样式代码和逻辑处理代码分离能够让维护变得简单,同时代码看上去也非常的优雅。在.aspx页面中,代码隐藏页模型的.aspx页面代码基本上和单文件页模型的代码相同,不同的是在script标记中的单文件页模型的代码默认被放在了同名的.cs文件中,.aspx文件示例代码如下所示。 <%@ Page Language=“C#” AutoEventWireup=“true” CodeFile=“Default.aspx.cs” Inherits=“_Default” %> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=“http://www.w3.org/1999/xhtml”> <head runat=“server”> <title>无标题页</title> </head> <body> <form id=“form1” runat=“server”> <div> </div> </form> </body> </html> 从上述代码中可以看出,在头部声明的时候,单文件页模型只包含Language=“C#”,而代码隐藏页模型包含了CodeFile=“Default.aspx.cs”,说明被分离出去处理事物的代码被定义在Default.aspx.cs中,示例代码如下所示。 using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; //使用HtmlControls using System.Web.UI.WebControls; //使用WebControls using System.Web.UI.WebControls.WebParts; //使用WebParts public partial class _Default : System.Web.UI.Page //继承自System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } 上述代码为Default.apx.cs页面代码。从上述代码可以看出,其格式与类库、编写类的格式相同,这也说明了.aspx页面允许使用面向对象的特性,如多态、继承等。但是ASP.NET代码隐藏页模型的运行过程比单文件页模型要复杂,运行示例图如图4-4所示。 图4-4 代码隐藏页模型 上述描述了代码隐藏类模型的页面生成模型。当页面被呈现之前,ASP.NET应用程序会解释并编译相应的cs文件中的代码,与此同时,ASP.NET应用程序还会将.aspx页面进行编译并生成.aspx页面对应的类。生成.aspx页面对应的类后会将该类与cs文件中的类进行协调生成新的类,该类会通过IIS在用户浏览页面时呈现在用户的浏览器中。 4.1.4 创建ASP.NET Web Application ASP.NET网站有一种好处,就是在编译后,编译器将整个网站编译成一个DLL(动态链接库),在更新的时候,只需要更新编译后的DLL(动态链接库)文件即可。但是ASP.NET网站却有一个缺点,编译速度慢,并且类的检查不彻底。 相比之下,ASP.NET Web Application不仅加快了速度,只生成一个程序集,而且可以拆分成多个项目进行管理。创建Application,首先需要新建项目用于开发Web Application,单击菜单栏上的【文件】按钮,在下拉菜单中选择【新建项目】选项,在弹出窗口中选择【ASP.NET应用程序】选项,如图4-5所示。 图4-5 创建ASP.NET应用程序 在创建了ASP.NET应用程序后,系统同样会默认创建一个Default.aspx页面,不同的是,多出了一个Default.aspx.designer.cs,用来初始化页面控件,一般不需要修改。 4.1.5 ASP.NET网站和ASP.NET应用程序的区别 在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,但是ASP.NET网站和ASP.NET应用程序开发过程和编译过程是有区别的。ASP.NET应用程序主要有以下特点: q 可以将ASP.NET应用程序拆分成多个项目以方便开发,管理和维护。 q 可以从项目中和源代码管理中排除一个文件或项目。 q 支持VSTS的Team Build方便每日构建。 q 可以对编译前后的名称,程序集等进行自定义。 q 对App_GlobalResources 的Resource强类支持。 ASP.NET WebSite编程模型具有以下特点: q 动态编译该页面,而不用编译整个站点。 q 当一部分页面出现错误不会影响到其他的页面或功能。 q 不需要项目文件,可以把一个目录当作一个Web应用来处理。 总体来说,ASP.NET网站适用于较小的网站开发,因为其动态编译的特点,无需整站编译。而ASP.NET应用程序适应大型的网站开发、维护等。 4.2 代码隐藏页模型的解释过程 在ASP.NET的代码隐藏页模型中,一个完整的.aspx页面包含两个页面,分别是以.aspx和.cs文件为后缀的文件,这两个文件在形成了整个Web窗体。在编译的过程中都被编译成由项目生成的动态链接库(.DLL),同时,.aspx页面同样也会编译。但是与.cs页面编译过程不同的是,当浏览者第一次浏览到.aspx页面时,ASP.NET自动生成该页的.NET类文件,并将其编译成另一个.DLL文件。 当浏览者再一次浏览该页面的时候,生成的.DLL就会在服务器上运行,并响应用户在该页面上的请求或响应,ASP.NET应用程序的解释过程图如4-6所示。 图4-6 代码隐藏页模型页面的执行过程 在客户端浏览器访问该页面时,浏览器会给IIS发送请求消息,IIS则会开始执行ASP.NET编译过程,如果不存在编译过后的DLL文件,则加载编译的类并创建对象。当创建对象完成,生成创建对象后的代码并生成一个ASPX页面代码,该页面代码反馈给IIS,IIS再反馈成HTML页面的形式给客户端。 4.3 代码隐藏页模型的事件驱动处理 在传统的ASP开发中,ASP的事件都是按照网页的顺序来处理的,一般情况下,ASP页面的事件都是从上到下处理事件,可以说ASP的开发是一个线性的处理模型。在用户的浏览操作中,每一次用户的操作都会导致页面重新被发送到服务器。因此,重复的操作必然导致客户端和服务器的往返过程,服务器必须重新创建页面,当创建页面后,服务器再按照原来的从上到下的顺序进行事件处理。 在ASP.NET中,通过使用模拟事件驱动模型的行为代替了ASP的线性处理模型。ASP.NET页框架模型隐式的为用户建立了事件和事件处理程序的关联。ASP.NET让用户可以为从浏览器传递的事件在服务器代码中设置相应的处理程序。假设某个用户正在浏览网站并与页面之间产生了某种交互,用户的操作就会引发事件,事件通过HTTP被传输到服务器。在服务器中,ASP.NET框架解释信息,并触发事件与之对应的处理程序。该程序可以是.aspx页面中的处理程序,也可以是开发者自定义的类库,或者COM组件等。事件驱动处理如图4-7所示。 图4-7 页面框架的事件驱动处理模型 上图则说明了当一个浏览者通过浏览器触发ASPX页面时,浏览器、服务器和服务器返回页的过程。 4.4 ASP.NET客户端状态 Web开发不像软件开发,Web应用实际上是没有状态的,这就说明Web应用程序不自动指示序列中的请求是否来自相同的浏览器或客户端,也无法判断浏览器是否一直在浏览一个页面或者一个站点,也无法判断用户执行了哪个操作并统计用户的喜好。 4.4.1 视图状态 从上面的章节中可以知道,当服务器每次的往返过程,都将销毁页面并重新创建新的页面。如果一个页面中的信息超出了页面的生命周期,那么这个页面中的相关信息就不存在了。如果注销了页面的信息,那么用户的一些信息可能就不存在了。 在ASP.NET中,网页包含视图状态来保存用户的信息,视图状态在页面发回到自身时,跨页过程存储和用户自己的页面的特定值,视图状态的优点如下所示。 q 不需要任何服务器资源。 q 在默认情况下,对控件启用状态的数据进行维护,不会被破坏。 q 视图状态的值经过哈希运算和压缩保护,安全性更高。 视图状态同样有一些缺点,缺点如下所示。 q 视图状态会影响性能,如果页面存储较大较多的值,则性能会有较大的影响。 q 在手机,移动终端上,可能无法保存视图状态中使用的值。 q 视图状态虽然安全性较高,但是还是有风险,如果直接查看页面代码,可以看到相应代码。 4.4.2 控件状态 ASP.NET中还提供了控件状态属性作为在服务器往返过程中存储自定义控件中的数据的方法。在页面控件中,如果有多个自定义控件使用多个不同的控件来显示不同的数据结构,为了让这些页面控件能够在在页面上协调的工作,则需要使用控件状态来保护控件,同时,控件状态是不能被关闭的。同样,控件状态也有它的优点,优点如下所示。 q 与视图状态相同的是,不需要任何服务器资源。 q 控件状态是不能被关闭的,提供了控件管理的更加可靠的方法。 q 控件状态具有通用性。 4.4.3 隐藏域 在ASP中,通常使用隐藏域保存页面的信息。在ASP.NET中,同样具有隐藏域来保存页面的信息,作为维护页面状态的一种形式,但是隐藏域的安全性并不高,最好不要在隐藏域保存过多的信息。隐藏域具有以下优点。 q 不需要任何服务器资源。 q 支持广泛,任何客户端都支持隐藏域。 q 实现简单,隐藏域属于HTML控件,无需像服务器控件那样有需要编程知识。 而隐藏域具有一些不足,如下所示。 q 具有较高的安全隐患。 q 存储结构简单。 q 同样,如果存储了较多的较大的值,则会导致性能问题。 q 如果隐藏域过多,则在某些客户端中被禁止。 q 隐藏域将数据存储在服务器上,而不存储在客户端。 注意:如果开发中,页面的隐藏域过多,这些隐藏域被存储在服务器。当客户端浏览页面的时候,会有一些防火墙扫描页面,以保证操作系统的安全,如果页面的隐藏域过多,那么这些防火墙可能会禁止页面的某些功能。 4.4.4 Cookie Cookie在客户端用户保存网站的少量的用户信息,服务器可以通过编程的方法获取用户信息,Cookie信息和页面请求通常一起发送到服务器,服务器对客户端传递过来的Cookie信息做处理。通常Cookie保存用户的登录状态、用户名等基本信息等等,在后面的章节会详细介绍使用ASP.NET操作Cookies。 4.4.5 客户端状态维护 虽然使用某些客户端状态并不使用服务器资源,但是这些状态都具有潜在的安全隐患,如Cookie。非法用户可以使用Cookie欺骗来攻击网站进行用户信息的获取,不过使用客户端状态能够使用客户端的资源从而提高服务器性能。使用客户端状态,虽然有安全隐患,但是具有良好的编程能力,以及基本的安全知识,能够较好的解决安全问题,同时也能够提高服务器性能。下面小结了一些客户端状态的优缺点。 q 视图状态:推荐当存储少量挥发到自身的页面的信息时使用。 q 控件状态:不需要任何服务器资源,控件状态是不能被关闭的,提供了控件管理的更加可靠和更通用的方法。 q 隐藏域:实现简单,但是在应用程序中会造成一些安全隐患。 q Cookie:实现简单,同样也能够简单的获取用户的信息,但是Cookie有大小的限制,不适宜存储大量的代码。 4.5 ASP.NET页面生命周期 ASP.NET页面运行时,也同类的对象一样,有自己的生命周期。ASP.NET页面运行时,ASP.NET页面将经历一个生命周期,在生命周期内,该页面将执行一系列的步骤,包括控件的初始化,控件的实例化,还原状态和维护状态等,以及通过IIS反馈给用户呈现成HTML。 ASP.NET页面生命周期是ASP.NET中非常重要的概念,了解ASP.NET页面的生命周期,就能够在合适的生命周期内编写代码,执行事务。同样,熟练掌握ASP.NET页面的生命周期,可以开发高效的自定义控件。ASP.NET生命周期通常情况下需要经历几个阶段,这几个阶段如下所示。 q 页请求:页请求发生在页生命周期开始之前。当用户请求一个页面,ASP.NET将确定是否需要分析或者编译该页面,或者是否可以在不运行页的情况下直接请求缓存响应客户端。 q 开始:发生了请求后,页面就进入了开始阶段。在该阶段,页面将确定请求是发回请求还是新的客户端请求,并设置IsPostBack属性。 q 初始化:在页面开始后,进入了初始化阶段。初始化期间,页面可以使用服务器控件,并为每个服务器控件进行初始化。 q 加载:页面加载控件。 q 验证:调用所有的验证程序控件的Vailidate方法,来设置各个验证程序控件和页的属性。 q 回发事件:如果是回发请求,则调用所有事件处理的程序。 q 呈现:在呈现期间,视图状态被保存并呈现到页。 q 卸载:完全呈现页面后,将页面发送到客户端并准备丢弃时,将调用卸载。 4.6 ASP.NET生命周期中的事件 在页面周期的每个阶段,页面将引发可运行用户代码进行处理事件。对于控件产生的事件,通过声明的方式执行代码,并将事件处理程序绑定到事件。不仅如此,事件还支持自动事件连接,最常用的就是Page_Load事件了,除了Page_Load事件以外,还有Page_Init等其他事件,本节将会介绍此类事件。 4.6.1 页面加载事件(Page_PreInit) 每当页面被发送到服务器时,页面就会重新被加载,启动Page_PreInit事件,执行Page_PreInit事件代码块。当需要对页面中的控件进行初始化时,则需要使用此类事件,示例代码如下所示。 protected void Page_PreInit(object sender, EventArgs e) //Page_PreInit事件 { Label1.Text = “OK”; //标签赋值 } 在上述代码中,当触发了Page_PreInit事件时,就会执行该事件的代码,上述代码将Lable1的初始文本值设置为“OK”。Page_PreInit事件能够让用户在页面处理中,能够让服务器加载时只执行一次而当网页被返回给客户端时不被执行。在Page_PreInit中可以使用IsPostBack来实现,当网页第一次加载时IsPostBack属性为false,当页面再次被加载时,IsPostBack属性将会被设置为true。IsPostBack属性的使用能够影响到应用程序的性能。 4.6.2 页面加载事件(Page_Init) Page_Init事件与Page_PreInit事件基本相同,区别在于Page_Init并不能保证完全加载各个控件。虽然在Page_Init事件中,依旧可以访问页面中的各个空间,但是当页面回送时,Page_Init依然执行所有的代码并且不能通过IsPostBack来执行某些代码,示例代码如下所示。 protected void Page_Init(object sender, EventArgs e) //Page_Init事件 { if (!IsPostBack) //判断是否第一次加载 { Label1.Text = “OK”; //将成功信息赋值给标签 } else { Label1.Text = “IsPostBack”; //将回传的值赋值给标签 } } 4.6.3 页面载入事件(Page_Load) 大多数初学者会认为Page_Load事件是当页面第一次访问触发的事件,其实不然,在ASP.NET页生命周期内,Page_Load远远不是第一次触发的事件,通常情况下,ASP.NET事件顺序如下所示。 q 1. Page_Init()。 q 2. Load ViewState。 q 3. Load Postback data。 q 4. Page_Load()。 q 5. Handle control events。 q 6. Page_PreRender()。 q 7. Page_Render()。 q 8. Unload event。 q 9. Dispose method called。 Page_Load事件是在网页加载的时候一定会被执行的事件。在Page_Load事件中,一般都需要使用IsPostBack来判断用户是否进行了操作,因为IsPostBack指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问,示例代码如下所示。 protected void Page_Load(object sender, EventArgs e) //Page_Load事件 { if (!IsPostBack) { Label1.Text = “OK”; //第一次执行的代码块 } else { Label1.Text = “IsPostBack”; //如果用户提交表单等 } } 上述代码使用了Page_Load事件,在页面被创建时,系统会自动在代码隐藏页模型的页面中增加此方法。当用户执行了操作,页面响应了客户端回发,则IsPostBack为true,于是执行else中的操作。 4.6.4 页面卸载事件(Page_Unload) 在页面被执行完毕后,可以通过Page_Unload事件用来执行页面卸载时的清除工作,当页面被卸载时,执行此事件。以下情况会触发Page_Unload事件。 q 页面被关闭。 q 数据库连接被关闭。 q 对象被关闭。 q 完成日志记录或者其他的程序请求。 4.6.5 页面指令 页面指令用来通知编译器在编译页面时做出的特殊处理。当编译器处理ASP.NET应用程序时,可以通过这些特殊指令要求编译器做特殊处理,例如缓存、使用命名空间等。当需要执行页面指令时,通常的做法是将页面指令包括在文件的头部,示例代码如下所示。 <%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“Default.aspx.cs” Inherits=“MyWeb._Default” %> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> 上述代码中,就使用了@Page页面指令来定义ASP.NET页面分析器和编译器使用的特定页的属性。当代码隐藏页模型的页面被创建时,系统会自动增加@Page页面指令。 ASP.NET页面支持多个页面指令,常用的页面指令如下所示。 q @ Page:定义ASP.NET页分析器和编译器使用的页特定(.aspx文件)属性,可以编写为<%@ Page attribute=“value” [attribute=“value”…]%>。 q @ Control:定义ASP.NET页分析器和编译器使用的用户控件(.ascx文件)特定的属性。该指令只能为用户控件配置。可以编写为<%@ Control attribute=“value” [attribute=“value”…]%>。 q @ Import:将命名空间显示导入到页中,使所导入的命名空间的所有类和接口可用户该页。导入的命名空间可以是.NET Framework类库或用户定义的命名空间的一部分。可以编写为<%@ Import namespace=“value” %>。 q @ Implements:提示当前页或用户控件实现制定的.NET Framework接口。可以编写为<%@ Implements interface=“ValidInterfaceName” %>。 q @ Reference:以声明的方式指示,应该根据在其中声明此指令的页对另一个用户控件或页源文件进行动态编译和链接。可以编写为<%@ Reference page | control=“pathtofile” %>。 q @ Output Cache:以声明的方式空间ASP.NET页或页中包含的用户控件的输出缓存策略。可以编写为<%@ Output Cache Duration=“#ofseconds” Location=“Any | Client | Downstream | Server | None” Shared=“True |False” VaryByControl=“controlname” VaryByCustom=“browser | customstring” VaryByHeader=“headers” VaryByParam=“parametername” %> q @ Assembly:在编译过程中将程序集链接到当前页,以使程序集的所有类和接口都可用在该页上。可以编写为<%@ Assembly Name=“assemblyname” %>或<%@ Assembly Src=“pathname” %>的方式。 q @ Register:将别名与命名空间以及类名关联起来,以便在自定义服务器控件语法中使用简明的表示法。可以编写为<%@ Register tagprefix=“ tagprefix” Namespace=“namepace” Assembly=“assembly” %>或<%@ Register tagprefix=“ tagprefix” Tagname=“tagname” Src=“pathname” %>的方式。 4.7 ASP.NET网站文件类型 在ASP.NET中包含诸多的文件类型,这些类型的文件由ASP.NET支持和管理,而除了这些文件以外,其他的文件都由IIS托管。使用VS2008能够创建大部分可以使用ASP.NET托管运行的程序。同时,使用应用程序映射可以将文件类型映射到应用程序。当需要伪静态时,很可能需要将.html后缀托管到IIS中的应用扩展,因为默认情况下ASP.NET不会处理HTML的操作。 技巧:现在的网站构架中,生成静态是一种降低网站压力的一种很好的解决方案。在某些情况下,服务器可能需要伪静态支持,就是将.aspx页面后缀显式成.html后缀,让搜索引擎能够更好的搜录。 1.ASP.NET管理的文件类型 ASP.NET管理的文件类型能够在ASP.NET应用程序中被ASP.NET应用程序的不同模块进行访问和调用,这些文件可能是用户能够直接访问的,也有可能是用户无法直接访问的。ASP.NET管理的文件类型如表4-1所示。 表4-1 ASP.NET管理的文件类型 文件类型 保存位置 描述 .asax 根目录。 Global.asax 文件。包含 HttpApplication 对象的派生代码,用于重新展示 Application 对象。 .ascx 根目录或子目录。 可重用的自定义 Web 控件。 .ashx 根目录或子目录。 处理器文件。包含实现 IHttpHandler 接口的代码,用于处理输入请求。 .asmx 根目录或子目录。 XML Web Services 文件。包含由 SOAP 提供给其他 Web 应用的类对象和功能。 .aspx 根目录或子目录。 ASP.NET Web 窗体。包含 Web 控件和其他业务逻辑。 .axd 根目录。 跟踪视图文件。通常是 Trace.axd。 .browser App_Browsers 目录。 浏览器定义文件。用于识别客户端浏览器的可用特征。 .cd 根目录或子目录。 类图文件。 .compile Bin 目录。 定位于适当汇编集中的预编译文件。可执行文件(.aspx,.ascx,.master,theme)预编译后放在 Bin 目录。 .config 根目录或子目录。 Web.config 配置文件。包含用于配置 ASP.NET 若干特征的 XML 元素集。 .cs,.jsl,vb App_Code 目录。有些是 ASP.NET 的代码分离文件,位于与 Web 页面相同的目录。 运行时被编译的类对象源代码。类对象可以是 HTTP 模块,HTTP 处理器,或 ASP.NET 页面的代码分离文件。 .csproj,vbproj,vjsproj Visual Studio 工程目录。 Visual Studio 客户工程文件。 .disco,.vsdisco App_WebReferences 目录。 XML Web Services Discovery 文件。用于定位可用 Web Services。 .dsdgm,dsprototype 根目录或子目录。 分布式服务图表(DSD)文件。可添加到 Visual Studio 方案中,为反向引擎提供消耗 Web Services 时的交互性图表。 .dll Bin 目录。 已编译类库文件。作为替代,可将类对象源代码保存到 App_Code 目录。 .licx,.webinfo 根目录或子目录。 许可协议文件。许可协议有助于保护控件开发者的知识产权,并对控件用户的使用权进行验证。 .master 根目录或子目录。 模板文件定义 Web 页面的统一布局,并在其他页面中得到引用。 .mdb,.ldb App_Data 目录。 Access 数据库文件。 .mdf App_Data 目录。 SQLServer 数据库文件。 .msgx,.svc 根目录或子目录。 Indigo Messaging Framework(MFx)服务文件。 .rem 根目录或子目录。 远程处理器文件。 .resources App_GlobalResources 或 App_LocalResources 目录。 资源文件。包含图像,本地化文本,或其他数据的资源引用串。 .resx App_GlobalResources 或 App_LocalResources 目录。 资源文件。包含图像,本地化文本,或其他数据的资源引用串。 .sdm,.sdmDocument 根目录或子目录。 系统定义模型(SDM)文件。 .sitemap 根目录。 网站地图文件。包含网站的结构。ASP.NET 通过默认的网站地图提供者,简化导航控件对网站地图文件的使用。 .skin App_Themes 目录。 皮肤定义文件。用于确定显示格式。 .sln Visual Web Developer 工程目录。 Visual Web Developer 工程的项目文件。 .soap 根目录或子目录。 SOAP 扩展文件。 注意:ASP.NET 管理的文件类型映射到 IIS 的 Aspnet_isapi.dll。 2.IIS 管理的文件类型 在ASP.NET应用程序中,有些动态的文件如asp文件就不被ASP.NET应用程序框架管理,这些文件由IIS进行管理,由IIS管理的文件类型如表4-2所示。 表4-2 IIS管理的文件类型 文件类型 保存位置 描述 .asa 根目录。 Global.asa 文件。包含 ASP 会话对象或应用程序对象生命周期中的各种事件处理。 .asp 根目录或子目录. ASP Web 页面。包含 @ 指令和使用 ASP 内建对象的脚本代码。 .cdx App_Data 目录. Visual FoxPro 的混合索引文件。 .cer 根目录或子目录。 证明文件。用于对网站的授权。 .idc 根目录或子目录。 Internet Database Connector(IDC)文件。被映射到 httpodbc.dll。 注意:由于无法为数据库连接提供足够的安全性,IDC 将不再被继续使用。IIS 6.0 是最后一个支持 IDC 的版本。 .shtm,.shtml,.stm 根目录或子目录。 包含文件。被映射到 ssinc.dll。 注意:IIS管理的文件类型被映射到IIS的asp.dll 3.静态文件类型 IIS仅提供已注册MIME类型的静态文件服务,注册信息保存在Mime Map IIS元数据库中。如果某种文件类型已经映射到指定应用程序,在不需要作为静态文件的情况之下,无需再在MIME类型列表中进行包含。默认的静态文件类型如表4-3所示。 表4-3 静态文件类型 文件类型 保存位置 描述 .css 根目录或子目录,以及 App_Themes 目录。 样式表文件。用于确定 HTML 元素的显示格式。 .htm,.html 根目录或子目录。 静态网页文件。由 HTML 代码编写。 注意:虽然ASP.NET的代码页面也能够手动添加到MIME类型列表中,但是这样操作浏览者就能够看到页面源代码,从而暴露ASP.NET页面源代码,相对于服务器而言是非常不安全的。 4.8 小结 本章介绍了ASP.NET页面生命周期,以及ASP.NET页面的几种模型。ASP.NET页面生命周期是ASP.NET中非常重要的概念,熟练掌握ASP.NET生命周期能对ASP.NET开发,自定义控件开发起到促进作用。本章还介绍了: q 代码隐藏页模型的解释过程。 q 代码隐藏页模型的事件驱动处理。 q ASP.NET网页的客户端状态。 q ASP.NET页面生命周期。 q ASP.NET生命周期中的事件。 q ASP.NET 网站文件类型。 上面的章节都分开的讲解了ASP.NET运行中的一些基本机制,在了解了这些基本运行机制后,就能够在.NET框架下做ASP.NET开发了。虽然这些都是基本概念,但是在今后的开发中,会起到非常重要的作用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值