编写css的三种方式及其优缺点

自学前端系列之HTML与CSS

第十节:编写CSS的三种方式及优缺点比较

方式1:内联样式

在标签内部通过通过style属性来设置元素的样式
在这里插入图片描述

  • 优点:优先级高,不易被其他样式覆盖;书写方便;
  • 缺点:一次只能设置一个元素;容易出现重复代码使代码繁琐

方式2:内部样式

在 标记内添加CSS样式
在这里插入图片描述

  • 优点:结构和样式分离,一次可以设置多个元素,使编写简洁明了
  • 缺点:编写不太方便,需要上下翻找确定样式;优先级相对内联样式低,较容易被覆盖

方式3:外部样式

样式与HTML代码分离,单独存放在.css文件中
HTML 文件引入外部样式表有两种方式,分别是链接式和导入式

链接式
<link/>标签必须放到 HTML 中的 标签内
在这里插入图片描述在这里插入图片描述rel="stylesheet" 指在页面中使用这个外部样式表,href 属性是css 文件的路径。

导入式
使用 @import 导入外部样式表,导入样式表的语法需要放置到 <style> 标签中。

<style>
	@import url("css文件路径");
</style>

下面是一个例子

<!DOCTYPE >
<html>
  <head>
    <meta charset="utf-8" />
    <title>document</title>
    <link rel="stylesheet" type="text/css" href="./示例.css" />
  </head>
  <body>
    <h2>标题</h2>
    <p>第一句话</p>
    <p>第二句话</p>
  </body>
</html>

下图是示例.css

h2 {
  color: gold;
  font-size: 30px;
}
p {
  color: pink;
}

在这里插入图片描述

  • 优点:实现结构样式分离,更改一个的同时可以更改多个,大大提升效率;可重复使用
  • 缺点:需要引入,编写和查找不便;需要链接才可使用
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 单页面和多页面开发及应用 # 单页面: - 什么是单页面:单页面是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css。所有的页面内容都包含在这个所谓的主页面。但在写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入。 - 跳转仅加载一次,用于PC和公务网站 - 页眉 -> 第一页,第二页, 第三页 -> 脚本 # 单页面技术: -AngularJS是一个全面的客户端侧框架。其模板基于双向UI数据绑定。数据绑定是一种自动方法,在模型改变时更新视图,以及在视图改变时更新模型。其HTML模板在浏览器编译。编译步骤创建纯HTML,浏览器将其重新渲染到实时视图。该步骤会在随后的页面浏览重复。在传统的服务器端HTML编程,控制器和模型等概念在服务器进程进行交互以产生新的HTML视图。在AngularJS框架,控制器和模型状态在客户端的浏览器维护,从而使生成新页面不依赖与服务器的交互。 -Ember.js是基于模型-视图-控制器(MVC)软件架构模型的客户端侧JavaScript Web应用程序框架。它允许开发人员在一个框架通过常用的习惯用语和最佳实践来创建可伸缩的单页面应用程序。该框架提供丰富的对象模型、声明性双向数据绑定、计算属性,Handlebars.js提供的自动更新模板,以及一个路由器管理应用程序状态。 -Meteor.js是一个专门为单页应用设计的全栈(客户端-服务器)JavaScript框架。它具有比Angular、Ember或ReactJS更简单的数据绑定特性且使用--Distributed Data Protocol和一个发布/订阅来自动将数据更改传播到客户端,无需开发人员编写任何同步代码。全栈反应确保从数据库到模板的所有层都可以在必要时自动更新。诸如服务器端渲染等生态系统包则解决搜索引擎优化(SEO)等问题。 -Aurelia是一个适用于移动设备、桌面和网页的JavaScript客户端框架。它类似AngularJS,但更新、更符合标准,并采用模块化举措。Aurelia使用下一代ECMAScript编写。 -Vue.js(通常称为Vue)是一个用于构建用户界面的开源渐进式JavaScript框架。 -React(通常写为React.js或ReactJS)是一个构建用户界面的JavaScript函式庫。它由Facebook、Instagram和个人开发者以及企业社区维护。React最大的优势是易于使用——基本上任何熟悉HTML的开发人员都可以创建React应用程序。另一个所称的优势是可能使用相同的技术堆栈来同时创建Web与移动应用程序。有多家公司使用React和Redux库来让开发人员创建复杂但可扩展的Web应用程序。 -Fulcro是一个全栈库,它采用Netflix的Falcor,Facebook的Relay和Om Next对反应性,功能性,数据驱动软件进行改编的数据驱动原则。 -单页面做seo(搜索引擎优化): -根据部分进行优化为每个关键字创建一个<div>或<section>或每个关键字并为其分配一个适当的ID,该页面上的内部链接将链接至ID。 -优化页面速度对于单页网站SEO来说至关重要。 - 做了seo 以后,单页面还是单页面 # 单页面优点: -减小服务器压力。 如果不用单页面(spa),如果每次切换页面的时候,都向服务器发送一个请求,服务器返回一个html文件;但是如果使用了单页面,在切换时,不需要请求服务器,只要通过本地的js来切换即可。并且服务器端就不需要配置路由,完全做到了前后端分离 -增强用户体验,增加app的使用流畅性。 使用spa之后,页面在切换的时候非常流畅,完全没有那种不断刷新的感觉,而是非常快的就有了响应,因为js运行速度很快,所以js在做本地路由的时候,就会非常快。 -单页应用没有页面之间的切换,就不会出现“白屏现象”,也不会出现假死并有“闪烁”现象。 -单页应用相对服务器压力小,服务器只用出数据就可以,不用管展示逻辑和页面合成,吞吐能力会提高几倍。 -良好的前后端分离。后端不再负责模板渲染、输出页面工作,后端API通用化,即同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端。 -单页面缺点: -首次加载耗时比较多。 解决办法:可以采用基于HTTP Chunk 的首屏数据渐进式预加载方案,该方案总体减少了单页应用1.2s的首屏呈现时间。首屏数据渐进式预加载的优化思路也得到了体现: 优化首屏数据加载节点的速度。 预先加载首屏数据,使得多个串行节点并行化。 -SEO问题,不利于百度,360等搜索引擎收录。 解决办法:可以采用prerender服务,它拿到请求够,直接在服务端的一个js engine里,运行这个HTML(就像浏览器做的那样),直到内容动态填完之后,再广播一个事件告诉phantomjs“内容已经好了,可以返回给爬虫了”,这样爬虫就拿到了一份完整的HTML,就和在浏览器里渲染完的一样。目前流行的框架都有对应的服务器渲染框架 -如有造成Css命名冲突。 解决办法:我们可以使用Sass、LESS和Stylus等CSS预处理器,在一定程度上可以解决该问题。 -前进、后退、地址栏、书签等,都需要程序进行管理,页面的复杂度很高,需要一定的技能水平和开发成本高。 # 多页面: -什么是多页面:每一次页面跳转的时候,后台服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用 - 跳转需要刷新所有资源,用于app 或 客户端 - 页眉 -> 第一页 -> 脚本,页眉 -> 第二页 -> 脚本,页眉 -> 第三页 -> 脚本 -多页面优点:给用户提供一个完美的视觉方向,重点是没有很多的菜单,简洁明了的SEO管理。由于可以针对每页一个关键字优化应用程序 -多页面缺点:后端和移动客户端不能同时使用前端和后端开发紧密结合。开发变得相当复杂。开发人员需要为客户端和服务器端使用框架。这导致应用程序开发时间更长。 # 区别: -组成:单页面由一个外壳页面和多个页面组成, 多页面由多个完整页面组成 -css(资源公用):单页面为共用,只需要外壳部分加载,多页面则不共用,每个页面单独加载 -刷新方式:单页面页面局部更改或刷新,多页面整页刷新 -url模式:单页面 a.com/#/pageone 多页面 a.com/pageone.html -用户体验:单页面页面切换快,用户体验良好,多页面加载缓慢,流畅度不够,用户体验较差 -转场动画:单页面容易实现,多页面无法实现 -数据传递:单页面容易,多页面需要依赖url传参,或cookie,localSrorage等 -搜索引擎优化:单页面需要单独方案,实现较为困难,不利于SEO搜索,可利用与SSR优化,多页面实现方法容易 -适用范围:单页面高要求的体验度,追求页面的流畅,多页面追求高度支持搜索引擎的应用 -开发成本:单页面较高,需要专业的框架,多页面较低,但页面重复代码较多 -维护成本:单页面相对容易,双页面相对复杂
卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ 面试题URL.txt │ ├─Javascript │ │ javascript资料(源码,教材,ppt).rar │ │ │ └─javascript资料(源码,教材,ppt) │ 00s.jpg │ 10fdada.gif │ 1102485678850.gif │ 1102513845804.gif │ 1102525271916.gif │ 1102554652413.gif │ 1102556639561.gif │ 9mmnbvc.gif │ adjuggler(1).htm │ adjuggler(2).htm │ adjuggler(3).htm │ adjuggler(4).htm │ adjuggler(5).htm │ adjuggler(6).htm │ adjuggler.htm │ article_count.jsp │ b01.gif │ b01a.gif │ b01d.gif │ b11.gif │ bian1.gif │ biao05.gif │ biaoshi1.gif │ bt724542.gif │ c.gif │ Counter │ counter.gif │ Desktop_.ini │ d_office_photo.html │ end02.gif │ end03.gif │ endin.htm │ feedback.htm │ peizhi1.gif │ Photoshopa.gif │ school.jpg │ schoolzt.gif │ schoolzt1.gif │ style.css │ title.html │ top.gif │ top.js │ UserTrack.htm │ zhuomianbianshen.gif │ ├─JavaScript 面试题 │ 新建 文本文档.txt │ ├─Java基础 │ └─SCJP │ │ 2006_02_01_SCWJD_EXAM.pdf │ │ Assertions.doc │ │ Collections.doc │ │ Desktop_.ini │ │ Fundamentals of the Java Programming Language .txt │ │ getstartedse5_zh_CN.pdf │ │ j2sdk-1_4_2-doc.zip │ │ Java Programming Language (SL-275).txt │ │ langspec-3.0.zip │ │ SCJP Certification Training.htm │ │ SCJP 考纲.doc │ │ SL275_OH_GB.pdf │ │ Sun Certified Programmer for Java 2 Platform 1.4 (CX-310-035)考试提纲.txt │ │ ucertify_prepkit_features.pdf │ │ vmspec.2nded.html.zip │ │ 一些其它网站的java基础精华贴.txt │ │ 新建 文本文档.txt │ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档.txt │ │ │ │ │ ├─Low Level Security in Java.files │ │ │ Desktop_.ini │ │ │ JAVA.85.gif │ │ │ s_code_remote.js │ │ │ │ │ └─SCJP 1_4 认证的初级教程.files │ │ bg-gold.gif │ │ c(1).gif │ │ c.gif │ │ Desktop_.ini │ │ dwcss.js │ │ dwlogo-small.gif │ │ emailfriend2.js │ │ forumwindow.js │ │ grabtitle.js │ │ ibm-logo.gif │ │ icon-email.gif │ │ search.gif │ │ stats.js │ │ │ ├─java │ │ │ Desktop_.ini │ │ │ Java程序员认证模拟题及详细分析.doc │ │ │ question.rar │ │ │ test4.doc │ │ │ 模拟题.rar │ │ │ 经典的104-147模拟题.rar │ │ │ │ │ ├─035 │ │ │ 2003.10.5.15.51.43.TestKing%20310-035%20Edt9.rar │ │ │ Desktop_.ini │ │ │ TestKing 310-035 Edt4.0.pdf │ │ │ TestKing 310-035 Edt4.0.rar │ │ │ │ │ ├─java认证课程 │ │ │ c01-04.doc │ │ │ C05.doc │ │ │ C06.doc │ │ │ C07.doc │ │ │ C08.doc │ │ │ c09.doc │ │ │ c10.doc │ │ │ c11-15.doc │ │ │ Desktop_.ini │ │ │ │ │ ├─question │ │ │ 275test-1.txt │ │ │ 275test-2.txt │ │ │ 275test-3.txt │ │ │ 275test-4.txt │ │ │ 275test.txt │ │ │ answer-1.txt │ │ │ answer-2.txt │ │ │ answer-3.txt │ │ │ answer-4.txt │ │ │ Desktop_.ini │ │ │ 考题_1.doc │ │ │ │ │ ├─参考资料 │ │ │ Desktop_.ini │ │ │ java编程思想文301.pdf │ │ │ java编程思想文302.pdf │ │ │ java编程思想文303.pdf │ │ │ java编程思想文304.pdf │ │ │ java编程思想文305.pdf │ │ │ java编程思想文306.pdf │ │ │ java编程思想文307.pdf │ │ │ java编程思想文308.pdf │ │ │ java编程思想文309.pdf │ │ │ java编程思想文310.pdf │ │ │ java编程思想文311.pdf │ │ │ │ │ ├─培训 │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─培训主讲之题 │ │ │ │ Desktop_.ini │ │ │ │ question.rar │ │ │ │ │ │ │ └─培训教程 │ │ │ Desktop_.ini │ │ │ SL275_OH_GB.pdf │ │ │ │ │ ├─考前预测的三套题 │ │ │ Desktop_.ini │ │ │ Mock Exam - JCHQ - SCJP Exam 2.doc │ │ │ Mock Exam - JCHQ - SCJP Exam 2.pdf │ │ │ Mock Exam - JCHQ - SCJP Exam 3.pdf │ │ │ SCJP_021221_DL.pdf │ │ │ Scjp_14.pdf │ │ │ TestKing SCJP 310-025 v1.pdf │ │ │ the answer for Moxk2.doc │ │ │ Tutorial - Dylan Walsh - Quick SCJP.pdf │ │ │ │ │ ├─考题 │ │ │ 310-035.pdf │ │ │ Desktop_.ini │ │ │ readme.txt │ │ │ │ │ ├─认证资料 │ │ │ Cram Bible - SL 310-022,310-025 SUN Certified Java Programmer Exam.pdf │ │ │ Desktop_.ini │ │ │ Riders - Java 2 Certification Training Guide.pdf │ │ │ SUN - SL-275 Java Programming Language.pdf │ │ │ SUN - SL-315 JavaServer Pages Technology.pdf │ │ │ TestKing - Sun Java Certified Programmer v1.0.pdf │ │ │ │ │ └─难得资料 │ │ Desktop_.ini │ │ Java 基础题.doc │ │ │ ├─java考试 │ │ │ Desktop_.ini │ │ │ Java2程序员考试SCJP 试题解析 [SUN经验交流].htm │ │ │ Java国际认证(SCJP)典型试题1000例 - dearbook_com_cn.htm │ │ │ Java研究组织 - 研究文集 - SCJP 认证.htm │ │ │ Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站-3.htm │ │ │ Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站-4.htm │ │ │ Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站1.htm │ │ │ Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站2.htm │ │ │ Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站5.htm │ │ │ Matrix-与Java共舞 - Java相关技术(SCJP 论证).htm │ │ │ SCJP 1_4 考试心得(1).htm │ │ │ SCJP 1_4 考试心得(3) - 开发者 - ZDNet China.htm │ │ │ SCJP 1_4 考试心得(3) - 开发者.htm │ │ │ SCJP认证考试全接触-国教育在线.htm │ │ │  [SUN经验交流]2.htm │ │ │  [SUN经验交流]3.htm │ │ │  [SUN经验交流]4.htm │ │ │ 文java技术网Java程序员(SCJP)和开发员(SCJD)认证.htm │ │ │ 前卫资源网.htm │ │ │ 昆仑瑞通IT高级技术培训.htm │ │ │ │ │ ├─Java2程序员考试SCJP 试题解析 [SUN经验交流].files │ │ │ │ ad_article_xl_pcjob.js │ │ │ │ ad_art_150500.js │ │ │ │ ad_art_743.js │ │ │ │ ad_art_zl550.js │ │ │ │ ad_it55080.js │ │ │ │ ad_text_pcjob.js │ │ │ │ artbrowse.htm │ │ │ │ art_focus.js │ │ │ │ blank.gif │ │ │ │ bot_login.gif │ │ │ │ bot_search.gif │ │ │ │ commend.gif │ │ │ │ commend1.gif │ │ │ │ commend3.gif │ │ │ │ commend4.gif │ │ │ │ commend6.gif │ │ │ │ cp_main.jpg │ │ │ │ dcleft_bg.gif │ │ │ │ Desktop_.ini │ │ │ │ jobevery.js │ │ │ │ job_menu.js │ │ │ │ menu.html │ │ │ │ menu_diqu_01.gif │ │ │ │ menu_diqu_02.gif │ │ │ │ menu_it.gif │ │ │ │ newleft2.gif │ │ │ │ newlogo1.gif │ │ │ │ newright2.gif │ │ │ │ pcjob200.gif │ │ │ │ pc_but.js │ │ │ │ point.gif │ │ │ │ text.css │ │ │ │ toptitle_01.gif │ │ │ │ toptitle_02.gif │ │ │ │ toptitle_03.gif │ │ │ │ toptitle_left.gif │ │ │ │ toptitle_right.gif │ │ │ │ xgart_bg.gif │ │ │ │ xgart_biao.gif │ │ │ │ │ │ │ └─menu.files │ │ │ Desktop_.ini │ │ │ text.css │ │ │ │ │ ├─Java国际认证(SCJP)典型试题1000例 - dearbook_com_cn.files │ │ │ │ 2up.gif │ │ │ │ 2up01.gif │ │ │ │ 2up02.gif │ │ │ │ 2up03.gif │ │ │ │ 2up04.gif │ │ │ │ 2up05.gif │ │ │ │ 2up06.gif │ │ │ │ 2up07.gif │ │ │ │ 2up08.gif │ │ │ │ 2up09.gif │ │ │ │ add-to-cart.gif │ │ │ │ add-to-scj.gif │ │ │ │ add-to-syh.gif │ │ │ │ ads.htm │ │ │ │ beijing01.gif │ │ │ │ biaoshi.gif │ │ │ │ bookfriend.gif │ │ │ │ bookfriend.js │ │ │ │ box.gif │ │ │ │ buy-both.gif │ │ │ │ Dearbook.css │ │ │ │ Desktop_.ini │ │ │ │ dingdan.gif │ │ │ │ down01.gif │ │ │ │ fun.js │ │ │ │ Functions.js │ │ │ │ index_13.gif │ │ │ │ index_14_1.gif │ │ │ │ I_up01.gif │ │ │ │ line.gif │ │ │ │ logo01.gif │ │ │ │ newbook.gif │ │ │ │ orange-arrow.gif │ │ │ │ pageview1.htm │ │ │ │ plus-sign.gif │ │ │ │ Q_up01.gif │ │ │ │ recommend2vip.gif │ │ │ │ search.gif │ │ │ │ SearchForm.aspx │ │ │ │ shanghai01.gif │ │ │ │ ShoppingCartBrief.aspx │ │ │ │ show_ads.js │ │ │ │ smallTS_750538000401top.jpg │ │ │ │ smallTS_750832175201top.jpg │ │ │ │ smallTS_780163890801top.jpg │ │ │ │ song.css │ │ │ │ stars-1-0.gif │ │ │ │ stars-2-0.gif │ │ │ │ stars-3-0.gif │ │ │ │ stars-4-0.gif │ │ │ │ stars-5-0.gif │ │ │ │ SubSitePromotion.htm │ │ │ │ S_up01.gif │ │ │ │ TopLoginInfo.aspx │ │ │ │ TS_780163890801top.jpg │ │ │ │ tuangou.gif │ │ │ │ T_up01.gif │ │ │ │ W_up01.gif │ │ │ │ │ │ │ ├─SearchForm.files │ │ │ │ Desktop_.ini │ │ │ │ left01.gif │ │ │ │ search.gif │ │ │ │ song3.css │ │ │ │ │ │ │ ├─ShoppingCartBrief.files │ │ │ │ CartBrief.gif │ │ │ │ Desktop_.ini │ │ │ │ Functions.js │ │ │ │ │ │ │ └─TopLoginInfo.files │ │ │ DearBook.css │ │ │ Desktop_.ini │ │ │ │ │ ├─Java研究组织 - 研究文集 - SCJP 认证.files │ │ │ │ article_old.gif │ │ │ │ back_to.gif │ │ │ │ common.js │ │ │ │ Desktop_.ini │ │ │ │ leftad.htm │ │ │ │ logo.gif │ │ │ │ post.gif │ │ │ │ recommend.jsp │ │ │ │ topbanner.htm │ │ │ │ zaxis.css │ │ │ │ │ │ │ ├─leftad.files │ │ │ │ 180x45.GIF │ │ │ │ Desktop_.ini │ │ │ │ zaxis.css │ │ │ │ │ │ │ └─recommend.files │ │ │ Desktop_.ini │ │ │ zaxis.css │ │ │ │ │ ├─Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站-3.files │ │ │ │ 00s.jpg │ │ │ │ 10fdada.gif │ │ │ │ 1102485678850.gif │ │ │ │ 1102513845804.gif │ │ │ │ 1102525271916.gif │ │ │ │ 1102554652413.gif │ │ │ │ 1102556639561.gif │ │ │ │ 9mmnbvc.gif │ │ │ │ adjuggler(1).htm │ │ │ │ adjuggler(2).htm │ │ │ │ adjuggler(3).htm │ │ │ │ adjuggler(4).htm │ │ │ │ adjuggler(5).htm │ │ │ │ adjuggler(6).htm │ │ │ │ adjuggler.htm │ │ │ │ article_count.jsp │ │ │ │ b01.gif │ │ │ │ b01a.gif │ │ │ │ b01d.gif │ │ │ │ b11.gif │ │ │ │ bian1.gif │ │ │ │ biao05.gif │ │ │ │ biaoshi1.gif │ │ │ │ bt724542.gif │ │ │ │ c.gif │ │ │ │ Counter │ │ │ │ counter.gif │ │ │ │ Desktop_.ini │ │ │ │ d_office_photo.html │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ endin.htm │ │ │ │ feedback.htm │ │ │ │ peizhi1.gif │ │ │ │ Photoshopa.gif │ │ │ │ school.jpg │ │ │ │ schoolzt.gif │ │ │ │ schoolzt1.gif │ │ │ │ style.css │ │ │ │ title.html │ │ │ │ top.gif │ │ │ │ top.js │ │ │ │ UserTrack.htm │ │ │ │ zhuomianbianshen.gif │ │ │ │ │ │ │ ├─adjuggler(6).files │ │ │ │ │ 01.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─01.files │ │ │ │ 120X120_iPodmini_color_181104_CN.gif │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─adjuggler.files │ │ │ │ adfshow.htm │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─d_office_photo.files │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─endin.files │ │ │ │ 1089944158376.gif │ │ │ │ 1099324377796.gif │ │ │ │ 1100539723534.gif │ │ │ │ Desktop_.ini │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ style.css │ │ │ │ │ │ │ └─feedback.files │ │ │ Desktop_.ini │ │ │ end02.gif │ │ │ end07.gif │ │ │ end08.gif │ │ │ feedbackCount.jsp │ │ │ │ │ ├─Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站-4.files │ │ │ │ 00s.jpg │ │ │ │ 10fdada.gif │ │ │ │ 1102485678850.gif │ │ │ │ 1102513845804.gif │ │ │ │ 1102525271916.gif │ │ │ │ 1102554652413.gif │ │ │ │ 1102556639561.gif │ │ │ │ 9mmnbvc.gif │ │ │ │ adjuggler(1).htm │ │ │ │ adjuggler(2).htm │ │ │ │ adjuggler(3).htm │ │ │ │ adjuggler(4).htm │ │ │ │ adjuggler(5).htm │ │ │ │ adjuggler(6).htm │ │ │ │ adjuggler.htm │ │ │ │ article_count.jsp │ │ │ │ b01.gif │ │ │ │ b01a.gif │ │ │ │ b01d.gif │ │ │ │ b11.gif │ │ │ │ bian1.gif │ │ │ │ biao05.gif │ │ │ │ biaoshi1.gif │ │ │ │ bt724542.gif │ │ │ │ c.gif │ │ │ │ Counter │ │ │ │ Desktop_.ini │ │ │ │ d_office_photo.html │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ endin.htm │ │ │ │ feedback.htm │ │ │ │ peizhi1.gif │ │ │ │ Photoshopa.gif │ │ │ │ school.jpg │ │ │ │ schoolzt.gif │ │ │ │ schoolzt1.gif │ │ │ │ style.css │ │ │ │ title.html │ │ │ │ top.gif │ │ │ │ top.js │ │ │ │ UserTrack.htm │ │ │ │ zhuomianbianshen.gif │ │ │ │ │ │ │ ├─adjuggler(6).files │ │ │ │ │ 01.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─01.files │ │ │ │ 120X120_iPodmini_color_181104_CN.gif │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─d_office_photo.files │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─endin.files │ │ │ │ 1089944158376.gif │ │ │ │ 1099324377796.gif │ │ │ │ 1100539723534.gif │ │ │ │ Desktop_.ini │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ style.css │ │ │ │ │ │ │ └─feedback.files │ │ │ Desktop_.ini │ │ │ end02.gif │ │ │ end07.gif │ │ │ end08.gif │ │ │ feedbackCount.jsp │ │ │ │ │ ├─Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站1.files │ │ │ │ 00s.jpg │ │ │ │ 10fdada.gif │ │ │ │ 1102485678850.gif │ │ │ │ 1102513845804.gif │ │ │ │ 1102525271916.gif │ │ │ │ 1102554652413.gif │ │ │ │ 1102556639561.gif │ │ │ │ 9mmnbvc.gif │ │ │ │ adjuggler(1).htm │ │ │ │ adjuggler(2).htm │ │ │ │ adjuggler(3).htm │ │ │ │ adjuggler(4).htm │ │ │ │ adjuggler(5).htm │ │ │ │ adjuggler(6).htm │ │ │ │ adjuggler.htm │ │ │ │ article_count.jsp │ │ │ │ b01.gif │ │ │ │ b01a.gif │ │ │ │ b01d.gif │ │ │ │ b11.gif │ │ │ │ bian1.gif │ │ │ │ biao05.gif │ │ │ │ biaoshi1.gif │ │ │ │ bt724542.gif │ │ │ │ c.gif │ │ │ │ Counter │ │ │ │ counter.gif │ │ │ │ Desktop_.ini │ │ │ │ d_office_photo.html │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ endin.htm │ │ │ │ feedback.htm │ │ │ │ peizhi1.gif │ │ │ │ Photoshopa.gif │ │ │ │ school.jpg │ │ │ │ schoolzt.gif │ │ │ │ schoolzt1.gif │ │ │ │ style.css │ │ │ │ title.html │ │ │ │ top.gif │ │ │ │ top.js │ │ │ │ UserTrack.htm │ │ │ │ zhuomianbianshen.gif │ │ │ │ │ │ │ ├─adjuggler(6).files │ │ │ │ │ 01.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─01.files │ │ │ │ 120X120_iPodmini_color_181104_CN.gif │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─d_office_photo.files │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─endin.files │ │ │ │ 1089944158376.gif │ │ │ │ 1099324377796.gif │ │ │ │ 1100539723534.gif │ │ │ │ Desktop_.ini │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ style.css │ │ │ │ │ │ │ └─feedback.files │ │ │ Desktop_.ini │ │ │ end02.gif │ │ │ end07.gif │ │ │ end08.gif │ │ │ feedbackCount.jsp │ │ │ │ │ ├─Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站2.files │ │ │ │ 00s.jpg │ │ │ │ 10fdada.gif │ │ │ │ 1102485678850.gif │ │ │ │ 1102513845804.gif │ │ │ │ 1102525271916.gif │ │ │ │ 1102554652413.gif │ │ │ │ 1102556639561.gif │ │ │ │ 9mmnbvc.gif │ │ │ │ adjuggler(1).htm │ │ │ │ adjuggler(2).htm │ │ │ │ adjuggler(3).htm │ │ │ │ adjuggler(4).htm │ │ │ │ adjuggler(5).htm │ │ │ │ adjuggler(6).htm │ │ │ │ adjuggler.htm │ │ │ │ article_count.jsp │ │ │ │ b01.gif │ │ │ │ b01a.gif │ │ │ │ b01d.gif │ │ │ │ b11.gif │ │ │ │ bian1.gif │ │ │ │ biao05.gif │ │ │ │ biaoshi1.gif │ │ │ │ bt724542.gif │ │ │ │ c.gif │ │ │ │ Counter │ │ │ │ Desktop_.ini │ │ │ │ d_office_photo.html │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ endin.htm │ │ │ │ feedback.htm │ │ │ │ peizhi1.gif │ │ │ │ Photoshopa.gif │ │ │ │ school.jpg │ │ │ │ schoolzt.gif │ │ │ │ schoolzt1.gif │ │ │ │ style.css │ │ │ │ title.html │ │ │ │ top.gif │ │ │ │ top.js │ │ │ │ UserTrack.htm │ │ │ │ zhuomianbianshen.gif │ │ │ │ │ │ │ ├─adjuggler(6).files │ │ │ │ │ 01.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─01.files │ │ │ │ 120X120_iPodmini_color_181104_CN.gif │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─d_office_photo.files │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─endin.files │ │ │ │ 1089944158376.gif │ │ │ │ 1099324377796.gif │ │ │ │ 1100539723534.gif │ │ │ │ Desktop_.ini │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ style.css │ │ │ │ │ │ │ └─feedback.files │ │ │ Desktop_.ini │ │ │ end02.gif │ │ │ end07.gif │ │ │ end08.gif │ │ │ feedbackCount.jsp │ │ │ │ │ ├─Java认证SCJP之精辟总结--国最权威的电脑教程认证信息软件资讯网站5.files │ │ │ │ 00s.jpg │ │ │ │ 10fdada.gif │ │ │ │ 1102485678850.gif │ │ │ │ 1102513845804.gif │ │ │ │ 1102525271916.gif │ │ │ │ 1102554652413.gif │ │ │ │ 1102556639561.gif │ │ │ │ 9mmnbvc.gif │ │ │ │ adjuggler(1).htm │ │ │ │ adjuggler(2).htm │ │ │ │ adjuggler(3).htm │ │ │ │ adjuggler(4).htm │ │ │ │ adjuggler(5).htm │ │ │ │ adjuggler(6).htm │ │ │ │ adjuggler.htm │ │ │ │ article_count.jsp │ │ │ │ b01.gif │ │ │ │ b01a.gif │ │ │ │ b01d.gif │ │ │ │ b11.gif │ │ │ │ bian1.gif │ │ │ │ biao05.gif │ │ │ │ biaoshi1.gif │ │ │ │ bt724542.gif │ │ │ │ c.gif │ │ │ │ Counter │ │ │ │ Desktop_.ini │ │ │ │ d_office_photo.html │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ endin.htm │ │ │ │ feedback.htm │ │ │ │ peizhi1.gif │ │ │ │ Photoshopa.gif │ │ │ │ school.jpg │ │ │ │ schoolzt.gif │ │ │ │ schoolzt1.gif │ │ │ │ style.css │ │ │ │ title.html │ │ │ │ top.gif │ │ │ │ top.js │ │ │ │ UserTrack.htm │ │ │ │ zhuomianbianshen.gif │ │ │ │ │ │ │ ├─adjuggler(6).files │ │ │ │ │ 01.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─01.files │ │ │ │ 120X120_iPodmini_color_181104_CN.gif │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─d_office_photo.files │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─endin.files │ │ │ │ 1089944158376.gif │ │ │ │ 1099324377796.gif │ │ │ │ 1100539723534.gif │ │ │ │ Desktop_.ini │ │ │ │ end02.gif │ │ │ │ end03.gif │ │ │ │ style.css │ │ │ │ │ │ │ └─feedback.files │ │ │ Desktop_.ini │ │ │ end02.gif │ │ │ end07.gif │ │ │ end08.gif │ │ │ feedbackCount.jsp │ │ │ │ │ ├─Matrix-与Java共舞 - Java相关技术(SCJP 论证).files │ │ │ 0.gif │ │ │ bar_12_bg.gif │ │ │ bar_12_left.gif │ │ │ bar_12_right.gif │ │ │ basic.js │ │ │ bg2.gif │ │ │ bg3l.gif │ │ │ bg_dian.gif │ │ │ Desktop_.ini │ │ │ download.gif │ │ │ head_scroll.js │ │ │ i.gif │ │ │ icon_admin.gif │ │ │ icon_puser.gif │ │ │ icon_super.gif │ │ │ icon_user.gif │ │ │ icon_vip.gif │ │ │ joekoe.css │ │ │ jt0.gif │ │ │ jt1.gif │ │ │ jt12.gif │ │ │ jt13.gif │ │ │ jt14.gif │ │ │ matrix.jpg │ │ │ matrix.org.htm │ │ │ menu_bg.gif │ │ │ mouse_on_title.js │ │ │ n.gif │ │ │ open_win.js │ │ │ search_go.gif │ │ │ show_ads.js │ │ │ star5.gif │ │ │ │ │ ├─SCJP 1_4 考试心得(1).files │ │ │ │ 817-grey.gif │ │ │ │ advertisement_e1.gif │ │ │ │ back_041116.gif │ │ │ │ biaoshi.gif │ │ │ │ blank.gif │ │ │ │ blank_041116.gif │ │ │ │ bottom_master.gif │ │ │ │ css.css │ │ │ │ Desktop_.ini │ │ │ │ intel_zdindex.gif │ │ │ │ j_041116a.gif │ │ │ │ j_041116b.gif │ │ │ │ maincolumn_header_talkback.gif │ │ │ │ margin(1).gif │ │ │ │ margin.gif │ │ │ │ menuback_041110.jpg │ │ │ │ newsletter_bar.gif │ │ │ │ planet.css │ │ │ │ powercenter_logo_01.gif │ │ │ │ powercenter_logo_03.gif │ │ │ │ powercenter_logo_0333.gif │ │ │ │ powercenter_logo_05.gif │ │ │ │ rexample.gif │ │ │ │ rightbg.gif │ │ │ │ rnews.gif │ │ │ │ rtech.gif │ │ │ │ save_icon.gif │ │ │ │ search.gif │ │ │ │ test_traffic.htm │ │ │ │ topback_041110.jpg │ │ │ │ traffick.htm │ │ │ │ traffick_temp.htm │ │ │ │ traincert;sz=1x1;ord=1357738383 │ │ │ │ writer.gif │ │ │ │ zdnet-chinaitlab_logo.gif │ │ │ │ zdnew.css │ │ │ │ │ │ │ ├─test_traffic.files │ │ │ │ │ coding;sz=1x1;%20ord=1442909742.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─coding;sz=1x1;%20ord=1442909742.files │ │ │ │ Desktop_.ini │ │ │ │ dot.gif │ │ │ │ │ │ │ ├─traffick.files │ │ │ │ │ adfshow.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─adfshow.files │ │ │ │ adfshow.gif │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ └─traffick_temp.files │ │ │ │ adfshow.htm │ │ │ │ Desktop_.ini │ │ │ │ en;sz=1x1;%20ord=1442909742.htm │ │ │ │ │ │ │ ├─adfshow.files │ │ │ │ Desktop_.ini │ │ │ │ dot.gif │ │ │ │ │ │ │ └─en;sz=1x1;%20ord=1442909742.files │ │ │ Desktop_.ini │ │ │ dot.gif │ │ │ │ │ ├─SCJP 1_4 考试心得(3) - 开发者 - ZDNet China.files │ │ │ │ 817-grey.gif │ │ │ │ advertisement_e1.gif │ │ │ │ back_041116.gif │ │ │ │ biaoshi.gif │ │ │ │ blank.gif │ │ │ │ blank_041116.gif │ │ │ │ bottom_master.gif │ │ │ │ css.css │ │ │ │ Desktop_.ini │ │ │ │ intel_zdindex.gif │ │ │ │ j_041116a.gif │ │ │ │ j_041116b.gif │ │ │ │ maincolumn_header_talkback.gif │ │ │ │ margin(1).gif │ │ │ │ margin.gif │ │ │ │ menuback_041110.jpg │ │ │ │ newsletter_bar.gif │ │ │ │ planet.css │ │ │ │ powercenter_logo_01.gif │ │ │ │ powercenter_logo_0333.gif │ │ │ │ powercenter_logo_05.gif │ │ │ │ rexample.gif │ │ │ │ rightbg.gif │ │ │ │ rnews.gif │ │ │ │ rtech.gif │ │ │ │ save_icon.gif │ │ │ │ search.gif │ │ │ │ test_traffic.htm │ │ │ │ traffick.htm │ │ │ │ traffick_temp.htm │ │ │ │ traincert;sz=1x1;ord=1772633043 │ │ │ │ writer.gif │ │ │ │ zdnew.css │ │ │ │ │ │ │ ├─test_traffic.files │ │ │ │ │ coding;sz=1x1;%20ord=1442909742.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─coding;sz=1x1;%20ord=1442909742.files │ │ │ │ Desktop_.ini │ │ │ │ dot.gif │ │ │ │ │ │ │ ├─traffick.files │ │ │ │ │ adfshow.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─adfshow.files │ │ │ │ adfshow.gif │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ └─traffick_temp.files │ │ │ │ adfshow.htm │ │ │ │ Desktop_.ini │ │ │ │ en;sz=1x1;%20ord=1442909742.htm │ │ │ │ │ │ │ ├─adfshow.files │ │ │ │ Desktop_.ini │ │ │ │ dot.gif │ │ │ │ │ │ │ └─en;sz=1x1;%20ord=1442909742.files │ │ │ Desktop_.ini │ │ │ dot.gif │ │ │ │ │ ├─SCJP 1_4 考试心得(3) - 开发者.files │ │ │ │ 817-grey.gif │ │ │ │ advertisement_e1.gif │ │ │ │ back_041116.gif │ │ │ │ biaoshi.gif │ │ │ │ blank.gif │ │ │ │ blank_041116.gif │ │ │ │ bottom_master.gif │ │ │ │ css.css │ │ │ │ Desktop_.ini │ │ │ │ intel_zdindex.gif │ │ │ │ j_041116a.gif │ │ │ │ j_041116b.gif │ │ │ │ maincolumn_header_talkback.gif │ │ │ │ margin(1).gif │ │ │ │ margin.gif │ │ │ │ menuback_041110.jpg │ │ │ │ newsletter_bar.gif │ │ │ │ planet.css │ │ │ │ powercenter_logo_01.gif │ │ │ │ powercenter_logo_03.gif │ │ │ │ powercenter_logo_0333.gif │ │ │ │ powercenter_logo_05.gif │ │ │ │ rexample.gif │ │ │ │ rightbg.gif │ │ │ │ rnews.gif │ │ │ │ rtech.gif │ │ │ │ save_icon.gif │ │ │ │ search.gif │ │ │ │ test_traffic.htm │ │ │ │ traffick.htm │ │ │ │ traffick_temp.htm │ │ │ │ traincert;sz=1x1;ord=1683304671 │ │ │ │ writer.gif │ │ │ │ zdnet-chinaitlab_logo.gif │ │ │ │ zdnew.css │ │ │ │ │ │ │ ├─test_traffic.files │ │ │ │ │ coding;sz=1x1;%20ord=1442909742.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─coding;sz=1x1;%20ord=1442909742.files │ │ │ │ 15-1x1dot.gif │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ ├─traffick.files │ │ │ │ │ adfshow.htm │ │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ │ │ └─adfshow.files │ │ │ │ adfshow.gif │ │ │ │ Desktop_.ini │ │ │ │ │ │ │ └─traffick_temp.files │ │ │ │ adfshow.htm │ │ │ │ Desktop_.ini │ │ │ │ en;sz=1x1;%20ord=1442909742.htm │ │ │ │ │ │ │ ├─adfshow.files │ │ │ │ Desktop_.ini │ │ │ │ dot.gif │ │ │ │ │ │ │ └─en;sz=1x1;%20ord=1442909742.files │ │ │ Desktop_.ini │ │ │ dot.gif │ │ │ │ │ ├─SCJP认证考试全接触-国教育在线.files │ │ │ aa.gif │ │ │ blank.gif │ │ │ Desktop_.ini │ │ │ index_12.gif │ │ │ index_it_03.gif │ │ │ index_it_06.gif │ │ │ it-pei-xun.png │ │ │ page.css │ │ │ search.js │ │ │ │ │ ├─ [SUN经验交流]2.files │ │ │ │ ad_article_xl_pcjob.js │ │ │ │ ad_art_150500.js │ │ │ │ ad_art_743.js │ │ │ │ ad_art_zl550.js │ │ │ │ ad_it55080.js │ │ │ │ artbrowse.htm │ │ │ │ art_focus.js │ │ │ │ blank.gif │ │ │ │ bot_login.gif │ │ │ │ bot_search.gif │ │ │ │ commend.gif │ │ │ │ commend1.gif │ │ │ │ commend3.gif │ │ │ │ commend4.gif │ │ │ │ commend6.gif │ │ │ │ cp_main.jpg │ │ │ │ dcleft_bg.gif │ │ │ │ Desktop_.ini │ │ │ │ jobevery.js │ │ │ │ job_menu.js │ │ │ │ menu.html │ │ │ │ menu_diqu_01.gif │ │ │ │ menu_diqu_02.gif │ │ │ │ menu_it.gif │ │ │ │ newleft2.gif │ │ │ │ newlogo1.gif │ │ │ │ newright2.gif │ │ │ │ pcjob200.gif │ │ │ │ pc_but.js │ │ │ │ point.gif │ │ │ │ text.css │ │ │ │ toptitle_01.gif │ │ │ │ toptitle_02.gif │ │ │ │ toptitle_03.gif │ │ │ │ toptitle_left.gif │ │ │ │ toptitle_right.gif │ │ │ │ xgart_bg.gif │ │ │ │ xgart_biao.gif │ │ │ │ │ │ │ └─menu.files │ │ │ Desktop_.ini │ │ │ text.css │ │ │ │ │ ├─ [SUN经验交流]3.files │ │ │ │ ad_article_xl_pcjob.js │ │ │ │ ad_art_150500.js │ │ │ │ ad_art_743.js │ │ │ │ ad_art_zl550.js │ │ │ │ ad_it55080.js │ │ │ │ artbrowse.htm │ │ │ │ art_focus.js │ │ │ │ blank.gif │ │ │ │ bot_login.gif │ │ │ │ bot_search.gif │ │ │ │ commend.gif │ │ │ │ commend1.gif │ │ │ │ commend3.gif │ │ │ │ commend4.gif │ │ │ │ commend6.gif │ │ │ │ cp_main.jpg │ │ │ │ dcleft_bg.gif │ │ │ │ Desktop_.ini │ │ │ │ jobevery.js │ │ │ │ job_menu.js │ │ │ │ menu.html │ │ │ │ menu_diqu_01.gif │ │ │ │ menu_diqu_02.gif │ │ │ │ menu_it.gif │ │ │ │ newleft2.gif │ │ │ │ newlogo1.gif │ │ │ │ newright2.gif │ │ │ │ pcjob200.gif │ │ │ │ pc_but.js │ │ │ │ point.gif │ │ │ │ text.css │ │ │ │ toptitle_01.gif │ │ │ │ toptitle_02.gif │ │ │ │ toptitle_03.gif │ │ │ │ toptitle_left.gif │ │ │ │ toptitle_right.gif │ │ │ │ xgart_bg.gif │ │ │ │ xgart_biao.gif │ │ │ │ │ │ │ └─menu.files │ │ │ Desktop_.ini │ │ │ text.css │ │ │ │ │ ├─ [SUN经验交流]4.files │ │ │ │ ad_article_xl_pcjob.js │ │ │ │ ad_art_150500.js │ │ │ │ ad_art_743.js │ │ │ │ ad_art_zl550.js │ │ │ │ ad_it55080.js │ │ │ │ artbrowse.htm │ │ │ │ art_focus.js │ │ │ │ blank.gif │ │ │ │ bot_login.gif │ │ │ │ bot_search.gif │ │ │ │ commend.gif │ │ │ │ commend1.gif │ │ │ │ commend3.gif │ │ │ │ commend4.gif │ │ │ │ commend6.gif │ │ │ │ cp_main.jpg │ │ │ │ dcleft_bg.gif │ │ │ │ Desktop_.ini │ │ │ │ jobevery.js │ │ │ │ job_menu.js │ │ │ │ menu.html │ │ │ │ menu_diqu_01.gif │ │ │ │ menu_diqu_02.gif │ │ │ │ menu_it.gif │ │ │ │ newleft2.gif │ │ │ │ newlogo1.gif │ │ │ │ newright2.gif │ │ │ │ pcjob200.gif │ │ │ │ pc_but.js │ │ │ │ point.gif │ │ │ │ text.css │ │ │ │ toptitle_01.gif │ │ │ │ toptitle_02.gif │ │ │ │ toptitle_03.gif │ │ │ │ toptitle_left.gif │ │ │ │ toptitle_right.gif │ │ │ │ xgart_bg.gif │ │ │ │ xgart_biao.gif │ │ │ │ │ │ │ └─menu.files │ │ │ Desktop_.ini │ │ │ text.css │ │ │ │ │ ├─文java技术网Java程序员(SCJP)和开发员(SCJD)认证.files │ │ │ bar.htm │ │ │ cool.gif │ │ │ Desktop_.ini │ │ │ heard1.jpg │ │ │ heard2.jpg │ │ │ print.gif │ │ │ smalllogo.gif │ │ │ style.css │ │ │ __chazhao.gif │ │ │ │ │ ├─前卫资源网.files │ │ │ │ ad.htm │ │ │ │ Desktop_.ini │ │ │ │ error.htm │ │ │ │ image--dian.gif │ │ │ │ mainready.htm │ │ │ │ menu.htm │ │ │ │ min.gif │ │ │ │ soft--sanjiao--di--bottom.gif │ │ │ │ soft--sanjiao--di--top.gif │ │ │ │ soft--sanjiao--di.gif │ │ │ │ soft--sanjiao-w.gif │ │ │ │ soft--zhuan--2.gif │ │ │ │ soft--zhuan--3.gif │ │ │ │ soft--zhuan--4.gif │ │ │ │ soft--zhuan--5.gif │ │ │ │ soft--zhuan--6.gif │ │ │ │ soft--zhuan--7.gif │ │ │ │ │ │ │ ├─ad.files │ │ │ │ counter.htm │ │ │ │ Desktop_.ini │ │ │ │ logo.gif │ │ │ │ stat.js │ │ │ │ │ │ │ ├─mainready.files │ │ │ │ Desktop_.ini │ │ │ │ gif-12.gif │ │ │ │ image--dian.gif │ │ │ │ moveobj.js │ │ │ │ │ │ │ └─menu.files │ │ │ Desktop_.ini │ │ │ image--dian.gif │ │ │ min.gif │ │ │ │ │ └─昆仑瑞通IT高级技术培训.files │ │ a_r02_c11.gif │ │ book4.gif │ │ css1.css │ │ Desktop_.ini │ │ LASTPOST.gif │ │ pic_ecp.jpg │ │ slice_ecp.jpg │ │ sun.gif │ │ sunyouhui.gif │ │ title_ecp.gif │ │ top_graypic_shan.gif │ │ top_logo.gif │ │ top_v1.gif │ │ │ ├─SCJP Certification Training_files │ │ blebul1a.gif │ │ blebul2a.gif │ │ blebul3a.gif │ │ blegtext.gif │ │ blesepa.gif │ │ Desktop_.ini │ │ logo_michael-thomas.jpg │ │ MM.gif │ │ │ ├─SCJP-模拟环境 │ │ Desktop_.ini │ │ Whizlabs_SCJP_考試模擬器-310-035-(v4.0)-可以注册.zip │ │ │ └─自己搜集的资料 │ AlexZhao_javaprecisely-online.pdf │ Assertions.doc │ Collections.doc │ Desktop_.ini │ getstartedse5_zh_CN.pdf │ Java Programming Language (SL-275).txt │ langspec-3.0.zip │ SL275_OH_GB.pdf │ Sun Certified Programmer for Java 2 Platform 1.4 (CX-310-035)考试提纲.txt │ ucertify_prepkit_features.pdf │ vmspec.2nded.html.zip │ 新建 文本文档.txt │ 考纲.doc │ ├─java认证课程 │ c01-04.doc │ C05.doc │ C06.doc │ C07.doc │ C08.doc │ c09.doc │ c10.doc │ c11-15.doc │ ├─SCJP试题 │ SCJP试题详解.pdf │ ├─SQL 面试题 │ SQL (3).txt │ 新建 文本文档 (2).txt │ 新建 文本文档.txt │ ├─常见面试题目 │ │ ~$基本算法.doc │ │ 几个Java笔试编程的题目,大家看看 Java - J2SE - 基础类 - CSDN社区 community_csdn_net.mht │ │ 几种常用的模式.htm │ │ 在 Java 应用设计模式 -- Singleton.htm │ │ 基本算法.doc │ │ 工厂模式.html │ │ 算法.doc │ │ 装饰模式.html │ │ 责任链模式.html │ │ 适配器模式.html │ │ 递归算法与递归程序.htm │ │ │ └─在 Java 应用设计模式 -- Singleton_files │ ajax1.js │ blue_rule.gif │ c.gif │ cl-bullet.gif │ c_002.gif │ detection.js │ dropdown.js │ dw.gif │ dwcss14.js │ em.gif │ emailfriend2.js │ fig1.gif │ grabtitle.js │ ibm-logo.gif │ ibmcommon.js │ left-nav-corner.gif │ main.css │ print.css │ printer.gif │ r1v14.css │ rl-bullet.gif │ screen.css │ search.gif │ searchcount.js │ stats.js │ table.css │ u_bold.gif │ ├─数据库 │ MySQL数据库SQL语法参考.txt │ SQL基础.txt │ SQL语句大全.txt │ SQL语句性能调整原则.txt │ ├─权威经典面试题 │ ├─JAVA面试题 │ │ │ Java.net面试不求人.doc │ │ │ JAVA代码编写的30条建议 .txt │ │ │ java面试笔试题大汇总.doc │ │ │ java面试笔试题大汇总(一).txt │ │ │ Java面试题.doc │ │ │ java面试题.htm │ │ │ Java面试题及答案.doc │ │ │ JAVA面试题集.doc │ │ │ JSP面试题.doc │ │ │ 程序员面试之core java面试30题.txt │ │ │ │ │ ├─Java面试题集锦 │ │ │ 最全的JAVA面试题(一).txt │ │ │ 最全的JAVA面试题(七).txt │ │ │ 最全的JAVA面试题(三).txt │ │ │ 最全的JAVA面试题(九).txt │ │ │ 最全的JAVA面试题(二).txt │ │ │ 最全的JAVA面试题(五).txt │ │ │ 最全的JAVA面试题(八).txt │ │ │ 最全的JAVA面试题(六).txt │ │ │ 最全的JAVA面试题(十).txt │ │ │ 最全的JAVA面试题(十一).txt │ │ │ 最全的JAVA面试题(十二).txt │ │ │ 最全的JAVA面试题(四).txt │ │ │ │ │ └─面试、笔试题大全 │ │ │ java面接.doc │ │ │ ThreadLocal.txt │ │ │ 线程同步.txt │ │ │ 面接大全.pdf │ │ │ │ │ └─面试 │ │ ├─C++笔试题 │ │ │ └─C++笔试题 │ │ │ (1)C,C++经典问题,及面试笔试题 .txt │ │ │ (2)cc++.txt │ │ │ (3)笔试题2.doc │ │ │ (4)笔试题.doc │ │ │ (5)想成为嵌入式程序员应知道的0x10个基本问题.txt │ │ │ (6)网络.操作系统.数据库.txt │ │ │ (7)如果你觉得你够牛就回答这几个问题.txt │ │ │ (8)以上文档的明显错误.txt │ │ │ c,c++笔试.txt │ │ │ CC++笔试题系列.txt │ │ │ IT职场外企面试最爱提的问题TOP10 .txt │ │ │ memset.memmove.strcmp.txt │ │ │ TC使用.txt │ │ │ 介绍自己的优缺点有技巧 .txt │ │ │ 多线程编程之一——问题提出.txt │ │ │ 多线程编程之三——线程间通讯.txt │ │ │ 多线程编程之二——MFC的多线开发.txt │ │ │ 多线程编程之四——线程的同步.txt │ │ │ 排序.txt │ │ │ 最常问问题和最佳答案.txt │ │ │ 求职信 .txt │ │ │ 深入分析Windows和Linux动态库应用异同 .txt │ │ │ 用VC++5.0 定 制 和 调 用 动 态 链 接 库 .txt │ │ │ 聘面谈记录切忌随心所欲.txt │ │ │ 英语面试.txt │ │ │ 范式间区别.txt │ │ │ 金山_人力资源试题库_软件工程.doc │ │ │ 金山问题.txt │ │ │ 面试常见37个问题.doc │ │ │ 面试常见问题解析 .txt │ │ │ 面试应答最忌讳的是什么.doc │ │ │ │ │ ├─Java 笔试题 │ │ │ └─Java 笔试题 │ │ │ 28215271_java笔试题大集合及答案(另附各大公.rar │ │ │ java vishi2.doc │ │ │ java笔试题1.txt │ │ │ ⑴125条常见的java面试笔试题大汇总.txt │ │ │ ⑵java面试笔试题大汇总 ~很全面.txt │ │ │ ⑶java面试笔试题大汇总.txt │ │ │ 华为Java笔试题.txt │ │ │ 某公司java笔试题.(超难).txt │ │ │ │ │ ├─软件测试 │ │ │ └─软件测试 │ │ │ 单元测试、集成测试、系统测试、验收测试、回归测试.txt │ │ │ 白盒测试.txt │ │ │ 软件测试.doc │ │ │ 软件测试面试题.txt │ │ │ 金山的软件测试.txt │ │ │ 黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别.txt │ │ │ │ │ └─高质量CC++编程(完整) │ │ 高质量CC++编程(完整).doc │ │ │ └─企业试题 │ │ java面接.doc │ │ java面试笔试题大汇总.doc │ │ JAVA面试题集.doc │ │ ThreadLocal.txt │ │ UNIX系统命令.doc │ │ 上海税友软件开发岗位要求.doc │ │ 上软日文简历模版.doc │ │ 企业常用问答题.doc │ │ 俞雷.doc │ │ 华为面试题.doc │ │ 南京瑞钥.doc │ │ 培训机构试题(税友软件)-2009.doc │ │ 复件 web考题.doc │ │ 富士通面试题.doc │ │ 常用面试题.doc │ │ 广信联面试题.doc │ │ 文思创新面试题.doc │ │ 新电面试题.doc │ │ 泽讯程信息面试题目.txt │ │ 精通Oracle.10g.Pl.SQL编程.pdf │ │ 系统命令.doc │ │ 线程同步.txt │ │ 英语面试.doc │ │ 面接大全.pdf │ │ │ ├─java面试题库 │ │ (转) java入门与加深 -- 2_命令篇 - Java,J2EE.mht │ │ (转) java入门与加深 -- 3_I-O篇 - Java,J2EE.mht │ │ (转) java入门与加深 -- 4_关键字篇 - Java,J2EE.mht │ │ (转) java入门与加深 -- 5_面向对象篇 - Java,J2EE.mht │ │ (转) java入门与提高 -- 6_java_util篇 - Java,J2EE.mht │ │ Java入门与加深 -- 1_基础篇(Java入门系列) - Java,J2EE.mht │ │ JAVA认证考试:全面详解Java基础知识(一)-国考试资源大全1.mht │ │ JAVA认证考试:全面详解Java基础知识(一)-国考试资源大全2.mht │ │ java面向对象编程-国考试资源大全-ExamLink_com.mht │ │ java面向对象编程-国考试资源大全1.mht │ │ java面向对象编程-国考试资源大全2.mht │ │ java面试打印.doc │ │ Java面试题(最新最全Java面试题汇总) - Java,J2EE.mht │ │ java面试题集.txt │ │ 每个Java初学者都应该搞懂的六个问题-国考试资源大全.mht │ │ │ ├─南京亚信 │ │ 照片 001.jpg │ │ 照片 002.jpg │ │ 照片 003.jpg │ │ 照片 004.jpg │ │ 照片 005.jpg │ │ 照片 006.jpg │ │ 照片 007.jpg │ │ 照片.jpg │ │ │ ├─欧索日桥简历模版 │ │ 欧索日桥入职标准履歴書.doc │ │ │ └─面试+笔试 │ ├─C++笔试题 │ │ └─C++笔试题 │ │ (1)C,C++经典问题,及面试笔试题 .txt │ │ (2)cc++.txt │ │ (3)笔试题2.doc │ │ (4)笔试题.doc │ │ (5)想成为嵌入式程序员应知道的0x10个基本问题.txt │ │ (6)网络.操作系统.数据库.txt │ │ (7)如果你觉得你够牛就回答这几个问题.txt │ │ (8)以上文档的明显错误.txt │ │ c,c++笔试.txt │ │ CC++笔试题系列.txt │ │ IT职场外企面试最爱提的问题TOP10 .txt │ │ memset.memmove.strcmp.txt │ │ TC使用.txt │ │ 介绍自己的优缺点有技巧 .txt │ │ 多线程编程之一——问题提出.txt │ │ 多线程编程之三——线程间通讯.txt │ │ 多线程编程之二——MFC的多线开发.txt │ │ 多线程编程之四——线程的同步.txt │ │ 排序.txt │ │ 最常问问题和最佳答案.txt │ │ 求职信 .txt │ │ 深入分析Windows和Linux动态库应用异同 .txt │ │ 用VC++5.0 定 制 和 调 用 动 态 链 接 库 .txt │ │ 聘面谈记录切忌随心所欲.txt │ │ 英语面试.txt │ │ 范式间区别.txt │ │ 金山_人力资源试题库_软件工程.doc │ │ 金山问题.txt │ │ 面试常见37个问题.doc │ │ 面试常见问题解析 .txt │ │ 面试应答最忌讳的是什么.doc │ │ │ ├─Java 笔试题 │ │ └─Java 笔试题 │ │ 28215271_java笔试题大集合及答案(另附各大公.rar │ │ java vishi2.doc │ │ java笔试题1.txt │ │ ⑴125条常见的java面试笔试题大汇总.txt │ │ ⑵java面试笔试题大汇总 ~很全面.txt │ │ ⑶java面试笔试题大汇总.txt │ │ 华为Java笔试题.txt │ │ 某公司java笔试题.(超难).txt │ │ │ ├─软件测试 │ │ └─软件测试 │ │ 单元测试、集成测试、系统测试、验收测试、回归测试.txt │ │ 白盒测试.txt │ │ 软件测试.doc │ │ 软件测试面试题.txt │ │ 金山的软件测试.txt │ │ 黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别.txt │ │ │ └─高质量CC++编程(完整) │ 高质量CC++编程(完整).doc │ ├─正在看的 │ 5.13面试题.doc │ Java 方向就业岗位和技能要求.doc │ java 面试题 (2).txt │ JAVA相关基础知识.doc │ JS 面试题.txt │ Servlet 生命周期.ppt │ servlet小知识.txt │ 备忘.doc │ ├─看过的 │ CSS 题目.txt │ java 经典面试题 (3).txt │ java 面试题 (1).txt │ 合格程序员应该具备的12种能力.txt │ 应聘时漂亮的回答.txt │ 简历编写提醒.txt │ 编码规范.txt │ ├─算法 │ 算法.txt │ 算法ebook(10部算法经典著作的合集).chm │ ├─页面技术面试题 │ 新建 文本文档.txt │ └─项目文档参考 ├─01项目计划 │ OA 开发基本环境配置.doc │ OA开发计划(1.0).doc │ OA项目任务书(1.0).doc │ ├─02需求分析 │ OA系统需求文档.doc │ ├─03设计与实现 │ │ Java(JSP)代码规范.doc │ │ OA include文件说明.doc │ │ OA 权限代码.doc │ │ OA公共资源预约,文书档案-数据库表定义.doc │ │ OA系统数据库设计规约.doc │ │ OA系统设计报告(1.0).doc │ │ 会议管理-数据库表定义.doc │ │ 信息互递-数据库表定义.doc │ │ 公文管理-数据库表定义.doc │ │ 日程任务-数据库表定义.doc │ │ │ ├─数据库表详细设计说明(Html) │ │ │ db.htm │ │ │ │ │ └─db_files │ │ │ Blue_Theme.css │ │ │ db.htm │ │ │ db1.htm │ │ │ db_toc.htm │ │ │ Header_Blue.html │ │ │ i_blank.gif │ │ │ i_colpse.gif │ │ │ i_corner.gif │ │ │ i_expand.gif │ │ │ i_normal.gif │ │ │ menutree.js │ │ │ │ │ └─Header_Blue_files │ │ arches.png │ │ │ └─文档管理模块源代码 │ ├─java │ │ FM_Right.java │ │ FM_Statistic.java │ │ ModelOAFile.java │ │ ModelOAFolder.java │ │ OAFile.java │ │ OAFileSearch.java │ │ OAFolder.java │ │ │ └─web │ browser.js │ browser.jsp │ doSaveInfo.jsp │ doSaveRight.jsp │ File.js │ File.jsp │ Folder.js │ Folder.jsp │ GetRightXML.jsp │ list.jsp │ MoveToCata.jsp │ recycle.js │ recyclebin.jsp │ Right.js │ RightListXML.jsp │ search.js │ search.jsp │ searchResult.jsp │ _FolderTree.jsp │ ├─04软件测试 │ OA办公自动化测试工作总结(1.0).doc │ OA办公自动化测试计划(1.0).doc │ └─05后期制作 安博教育办公自动化系统安装手册.doc 教育行政办公自动化系统用户手册.doc
第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开发了。虽然这些都是基本概念,但是在今后的开发,会起到非常重要的作用。
卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ 面试题URL.txt │ ├─Javascript │ │ javascript资料(源码,教材,ppt).rar │ │ │ └─javascript资料(源码,教材,ppt) │ 00s.jpg │ 10fdada.gif │ 1102485678850.gif │ 1102513845804.gif │ 1102525271916.gif │ 1102554652413.gif │ 1102556639561.gif │ 9mmnbvc.gif │ adjuggler(1).htm │ adjuggler(2).htm │ adjuggler(3).htm │ adjuggler(4).htm │ adjuggler(5).htm │ adjuggler(6).htm │ adjuggler.htm │ article_count.jsp │ b01.gif │ b01a.gif │ b01d.gif │ b11.gif │ bian1.gif │ biao05.gif │ biaoshi1.gif │ bt724542.gif │ c.gif │ Counter │ counter.gif │ Desktop_.ini │ d_office_photo.html │ end02.gif │ end03.gif │ endin.htm │ feedback.htm │ peizhi1.gif │ Photoshopa.gif │ school.jpg │ schoolzt.gif │ schoolzt1.gif │ style.css │ title.html │ top.gif │ top.js │ UserTrack.htm │ zhuomianbianshen.gif │ ├─JavaScript 面试题 │ 新建 文本文档.txt │ ├─Java基础 │ └─SCJP │ │ 2006_02_01_SCWJD_EXAM.pdf │ │ Assertions.doc │ │ Collections.doc │ │ Desktop_.ini │ │ Fundamentals of the Java Programming Language .txt │ │ getstartedse5_zh_CN.pdf │ │ j2sdk-1_4_2-doc.zip │ │ Java Programming Language (SL-275).txt │ │ langspec-3.0.zip │

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值