第5章 网页制作技术 5.1 HTML语言简介【综合应用】 5.1.1 HTML语言 超文本标记语言HTML(Hyper Text Markup Language)是用于编写网页文件、对网页文件的各构成要素(包括文本、图形、声音、图像、视频等对象)进行标记的一种(网页)编程语言。 须注意的是:1、网页文件中的各构成要素(包括文本、图形、声音、图像、视频等对象)本身须由其他软件制作获取。2、HTML标记的网页文件须经浏览器来解读并展示效果。 5.1.2 HTML语言 HTML对网页要素的标记采用如下格式: <element 属性=参数>对象(内容)</element> 或 <element> 其中“element”为对象类型,不分大小写;“属性=参数”为对该对象属性的说明。 (一)、HTML文件的基本结构 一个HTML文档是由一系列的组成元素和他们的标签组成,HTML用标签来规定元素的属性和它在文件中的位置。HTML超文本文档分文档头和文档体两部分,在文档头里,对这个文档进行了一些必要的定义,文档体中才是要显示的各种具体信息。HTML的扩展名应是htm或html。 下面是一个最基本的html文档的代码: <HTML>----------------------------------------html文档开始标签 <HEAD>--------------------------------------头部开始标签 <TITLE>一个简单的HTML示例-------------------标题开始 </TITLE>------------------------------------标题结束 </HEAD>-------------------------------------头部结束标签 <BODY>----------------------------------------正文开始 <CENTER>----------------------------------------居中开始 <H1>欢迎光临我的主页-----------------------------标题开始 </H1>-------------------------------------------标题结束 <BR>-------------------------------------------换行标记 <HR>-------------------------------------------插入一条水平线 <FONT SIZE=7 COLOR= red>----------------------文字开始 这是我第一次做主页 </FONT>----------------------------------------文字结束 </CENTER>----------------------------------------居中结束 </BODY>---------------------------------------正文结束 </HTML>---------------------------------------html文档结束标签 (二)、基本标记 文件标记 ●表示该标记属围堵标记,即需要关闭标记如</标记>。 ○表示该标记属空标记,即不需要关闭标记。 标记 类型 译名或意义 作用 备注 <html> ● 文件声明 让浏览器知道这是html文件 <head> ● 开头 提供文件整体资讯 <title> ● 标题 定义文件标题,将显示于浏览顶端 <body> ● 本文 设计文件格式及内文所在 标记 类型 译名或意义 作用 备注 <!--注解--> ○ 说明标记 为文件加上说明,但不被显示 <p> ○ 段落标记 为字、画、表格等之间留一空白行 <br> ○ 换行标记 令字、画、表格等显示于下一行 <hr> ○ 水平线 插入一条水平线 <center> ● 居中 令字、画、表格等显示于中间反对 <pre> ● 预设格式 令文件按照原始码的排列方式显示 <div> ● 区隔标记 设定字、画、表格等的摆放位置 <nobr> ● 不折行 令文字不因太长而绕行 <wbr> ● 建议折行 预设折行部位 排版标记 备注栏说明: IE表示该标记只适用于Internet Explorer。 NC表示该标记只适用于Netscape Communicator。 反对表示该标记不为W3C所赞同,通常这标记是IE或NC自订,且己为众所支持,只是HTML标准中有其它同功能或更好的选择。 字体标记 标记 类型 译名或意义 作用 备注 <strong> ● 加重语气 产生字体加粗bold的效果 <b> ● 粗体标记 产生字体加粗的效果 <em> ● 强调标记 把文本定义为强调的内容 <i> ● 斜体标记 字体出现斜体效果 <tt> ● 打字字体 courier字体,字母宽度相同 <u> ● 加上底线 加上底线 反对 <h1> ● 一级标题标记 变粗变大加宽,程度与级数反比 <h2> ● 二级标题标记 将字体变粗变大加宽 <h3> ● 三级标题标记 将字体变粗变大加宽 <h4> ● 四级标题标记 将字体变粗变大加宽 <h5> ● 五级标题标记 将字体变粗变大加宽 <h6> ● 六级标题标记 将字体变粗变大加宽 <font> ● 字形标记 设定字形、大小、颜色 反对 <basefont> ○ 基准字形标记 设定所有字形、大小、颜色 反对 <big> ● 字体加大 令字体稍为加大 <small> ● 字体缩细 令字体稍为缩细 <strike> ● 画线删除 为字体加一删除线 反对 <code> ● 程式码 字体稍为加宽如<tt> <kbd> ● 键盘字 字体稍为加宽,单一空白 <samp> ● 范例 字体稍为加宽如<tt> <var> ● 变数 斜体效果 <cite> ● 传记引述 斜体效果 <blockquote> ● 引述文字区块 缩排字体 <dfn> ● 述语定义 斜体效果 <address> ● 地址标记 斜体效果 <sub> ● 下标字 下标字 <sup> ● 上标字 指数(平方、立方等) 清单标记 标记 类型 译名或意义 作用 备注 <ol> ● 顺序清单 清单项目将以数字、字母顺序排列 <ul> ● 无序清单 清单项目将以圆点排列 <li> ○ 清单项目 每一标记标示一项清单项目 <menu> ● 选单清单 清单项目将以圆点排列,如<ul> 反对 <dir> ● 目录清单 清单项目将以圆点排列,如<ul> 反对 <dl> ● 定义清单 清单分两层出现 <dt> ○ 定义条目 标示该项定义的标题 <dd> ○ 定义内容 标示定义内容 图形标记 <img src=“图形文件名”> 标记 类型 译名或意义 作用 备注 <img> ○ 图形标记 用以插入图形及设定图形属性 超链接标记 跳转至另一个文件或网址或段落 1)、<a href=“文件名”>第一个文件</a> 2)、<a href=“http://www.whsw.cn”>武汉生物工程学院</a> 3)、<a name=“段落标记名”> </a> <a href=“段落标记名”>目标文字</a> 声音、影像文件可通过上面第一种超链接引入网页文件 标记 类型 译名或意义 作用 备注 <a> ● 链接标记 加入链接 <base> ○ 基准标记 可将相对url转绝对及指定连结目标 表格标记 标记 类型 译名或意义 作用 备注 <table> ● 表格标记 设定该表格的各项参数 <caption> ● 表格标题 做成一打通列以填入表格标题 <tr> ● 表格列 设定该表格的列 <td> ● 表格栏 设定该表格的栏 <th> ● 表格标头 相等于<td>,但其内之字体会变粗 标记 类型 译名或意义 作用 备注 <form> ● 表单标记 决定单一表单的运作模式 <textarea> ● 文字区块 提供文字方盒以输入较大量文字 <input> ○ 输入标记 决定输入形式 <select> ● 选择标记 建立pop-up卷动清单 <option> ○ 选项 每一标记标示一个选项 表单标记 单行:<Input type=“text”name=“名称” size=“宽度” value=“缺省值”> 密码:<Input type=“password”name=“名称” size=“宽度”> 单选按钮:<Input type=“radio”name=“名称” value=“选中时的值”checked>选项说明 复选按钮:<Input type=“checkbox”name=“名称” value=“选中时的值”checked>选项说明 提交按钮:<Input type=“submit”value=“在按钮上显示的信息”> 复原按钮:<Input type=“reset”value=“在按钮上显示的信息”> 多行:<textarea name=“名称” row=“行数” col=“列数”></textarea> 框架标记 标记 类型 译名或意义 作用 备注 <frameset> ● 框架设定 设定框架 <frame> ○ 框窗设定 设定框窗 <iframe> ○ 页内框架 于网页中间插入框架 ie <noframes> ● 不支援框架 设定当浏览器不支援框架时的提示 影像地图与多媒体 标记 类型 译名或意义 作用 备注 影像地图 <map> ● 影像地图名称 设定影像地图名称 <area> ○ 连结区域 设定各连结区域 多媒体 <bgsound> ○ 背景声音 于背景播放声音或音乐 ie <embed> ○ 多媒体 加入声音、音乐或影像 其他标记 标记 类型 译名或意义 作用 备注 <marquee> ● 走动文字 令文字左右走动 ie <blink> ● 闪烁文字 闪烁文字 nc <isindex> ○ 页内寻找器 可输入关键字寻找于该一页 反对 <meta> ○ 开头定义 让浏览器知道这是html文件 <link> ○ 关系定义 定义该文件与其他url的关系 stylesheet <style> ● 样式表 控制网页版面 <span> ● 自订标记 独立使用或与样式表同用 5.2 WEB页面设计【综合应用】 5.2.1 网页设计的原则 1)、符合用户的需求; 2)、有效使用资源; 3)、一致的、美观的外观; 4)、有自己的风格、LOG; 5)、页面不太花哨、图片不宜太多、太大; 6)、制作网页前应有明确的目的、搞清楚需完成的任务及要达到的要求并尽可能地收集材料; 7)、制作网页时应考虑浏览时的不同情况,如显示的颜色、分辨率、HTML标准、浏览器各类及版本等。 5.2.2. 网页设计的方法 1)、使用任何一种文字处理软件新建由HTML标记组成的文本文档将它保存为HTM或HTML文件; 2)、使用专用的网页制作软件Frontpage、Dreamweaver新建由HTML标记组成的文本文档将它保存为HTM或HTML文件; 5.2.3 Dreamweaver的使用 Dreamweaver是Macromedia公司开发的专业的网页制作软件,允许我们在无须编写代码的情况下设计网页,它与Fireworks、Flash一起被Macromedia公司合称为Dream Team或网页三剑客。 1).工作环境 文档窗口工作模式:设计、代码、拆分 “插入”面板:含8个子面板(常用、布局、表单、数据、Spry、InContextEditing、文本和收藏夹) “属性”面板:可以在此面板上对当前被选中的页面元素进行检查和编辑。 2).创建本地站点 单击“站点”菜单中的“管理站点”/在弹出的“站点管理”窗口中点“新建”按钮/“弹出菜单”中选择“站点”/输入“本地网站的名字和根目录”/“保存”,然后在“站点管理”窗口单击“完成”。 3).设置页面属性 修改/页面属性或网页编辑区单击右键选择页面属性对话框,之后在分类列表框下选择 外观 链接 标题 标题/编码 跟踪图像 进行相应的设置 4).编辑文本 在设计模式直接进行 5).插入图片、表格、表单等 插入/图像 6).建立链接 (1)到其他HTML文件:属性面板链接文本框输入要链接的文件名或在本地文件夹中查找选择要链接的文件名。 (2)到其他网站:属性面板链接文本框输入要链接的网站URL地址。 (3)到邮箱地址:属性面板链接文本框输入mailto:收件人邮箱地址。 (4)定义锚记:插入/命名锚记 到锚记:属性面板链接文本框输入#锚记名。 5.2.4 Flash的使用 (一)、.Flash的特点 (1)矢量图形系统 使用Flash创建的元素是用矢量来描述的。与位图图形不同的是,矢量图形可以任意缩放尺寸而不影响图形的质量。 (2)交互性:可以在画面里进行控制和操作。 (3)流式播放技术 流式播放技术使得动画可以边下载边播放,即使后面的内容还没有下载到硬盘,用户也可以开始欣赏动画。 (4)Flash动画文件容量小 通过关键帧和组件技术的使用使得所生成的动画(.swf)文件非常小,几K字节的动画文件已经可以实现许多令人心动的动画效果,使得动画可以在打开网页很短的时间里就得以播放。用户只要为自己的浏览器安装一次插件(Flash Plug-in),以后就可以直接观看动画。 (二)、认识与使用Flash 界面认识: 1)、舞台 2)、时间轴:左边为图层及叠放顺序,右边为帧数及关键帧 3)、属性面板 4)、库面板:媒体素材和元件库 5)、工具面板:工具栏、查看栏、颜色栏、选项栏 (三)、元件和实例 元件是经一次创建后在库中集中管理、可供不同的地方多次使用的对象。 实例是元件在动画中的一次具体的应用(使用)。 对元件的修改会影响到该元件的每一个应用实例,但对实例的修改不会影响到元件和其他实例。 元件的创建:在确定舞台上没有任何东西被选取的情况下执行【插入】|【新建元件】命令,或者按快捷键Ctrl+F8,可打开【创建新元件】对话框,在对话框中输入元件名称,选择元件的类型(图形元件、按钮、影片剪辑),单击【确定】,即可进入新元件编辑模式。在元件编辑场景中,选择椭园工具钮,在场景中画一个圆,然后单击主场景切换按钮切换至主场景即完成新建元件。 实例的应用:打开库选择需要的面板按住左键拖往场景中。 (四)、创建动画 动画原理:内容基本相同的图像帧在连续的一段时间内依次在不同的位置出现(消失)即构成动画。 创建动画:须在场景区制作出图像帧实例,然后对该帧进行“时间轴”上的动作设置。 在前面创建了圆球实例基础上,默认场景中第1帧为关键帧,将鼠标放在20帧右键插入关键帧; 放映头拖到第20帧位置,用箭头工具将圆球从偏左位置拖到偏右位置; 放映头移到第1帧位置,右键单击选择“创建传统补间”命令,在第2帧和第20帧间变成了一个箭头; 控制/播放。 (五)、将动画添加到网页 创建的动画扩展名为.fla,它只能在Flash中播放,若需在浏览器中播放,需将它导出为swf文件,方法为:文件菜单导出子菜单导出影片命令。 然后在网页中加入以下代码: <OBJECT WIDTH=400 HEIGHT=200> <PARAM NAME=movie VALUE=“flash1.swf”> <EMBED src= =“flash1.swf” WIDTH=400 HEIGHT=200 ></EMBED> </OBJECT> 5.2.5 网页的浏览 发布后可通过浏览器浏览。 5.3 JavaScript语言【应用】 5.3.1 JavaScript Javascript是一种由Netscape的LiveScript发展而来的介于Java和Html之间、基于对象和事件驱动并具有较好安全性的客户端脚本语言,在HTML基础上,使用Javascript可以开发交互式Web网页、实现在Web页面中链接多个对象。 Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。 运行用Javascript编写的程序需要能支持Javascript语言的浏览器。Netscape公司Navigator3.0以上版本的浏览器都能支持Javascript程序,微软公司Internet Explorer3.0以上版本的浏览器基本上支持Javascript。 特点: 1)、简单性:是一种解释性语言,不须编译即可执行,开发和使用操作均很简单; 2)、动态性:可以在客户端接受用户的输入并作出响应,无须经过服务器。这种响应是以事件驱动的方式进行的。 3)、跨平台性:依赖于浏览器本身,与服务器和客户端的操作环境无关。不同的浏览器对它的执行可能会有细节上差别。 5.3.2 JavaScript的引入 通过JavaScript引入标记,在Html文档中任意位置处均可插入JavaScript代码,通常更多在<Head>标记对中插入。格式如下: <script language=“JavaScript”> …… </script> 注意,JavaScript区分大小写。 <HTML> <HEAD> <TITLE>一个简单的HTML示例</TITLE> <script language=“JavaScript”> var first=windows.prompt(“请输入姓名:”,“ ”); document.write(“欢迎进入JavaScript世界”+first+“。<br>”); </script> </HEAD> <BODY> <H1>大家好</H1> </BODY> </HTML> 5.3.3 JavaScript的数据与运算 (一)、数据类型 JavaScript有六种数据类型。其中主要的类型有:number、string、object以及Boolean类型,其他两种类型为null和undefined。 String字符串类型:字符串是用单引号或双引号来说明的。(使用单引号来输入包含引号的字符串。)如:“The cow jumped over the moon.” number数值数据类型:JavaScript支持整数和浮点数。整数可以为正数、0或者负数;浮点数可以包含小数点、也可以包含一个“e”(大小写均可,在科学记数法中表示“10的幂”)、或者同时包含这两项。 Boolean逻辑类型:可能的Boolean值有true和false。这是两个特殊值,不能用作1和0。 Object类型:除了上面提到的各种常用类型外,对象也是JavaScript中的重要组成部分,这部分将在后面章节详细介绍。 Null数据类型:null值就是没有任何值,什么也不表示。 Undefined数据类型:一个为undefined的值就是指在变量被创建后,但未给该变量赋值以前所具有的值。 (二)、变量 变量是JavaScript中脚本中值可以改变的量,一个变量可以是一个数字,文本或其它一些东西。 1)变量命名 长度是任意的,区分大小写,遵循以下规则: (1).第一个字符必须是一个字母(大小写均可)、或一个下划线(_)或一个美元符($)。 (2).后续的字符可以是字母、数字、下划线或美元符。 (3).变量名称不能是保留字。 2)变量声明与作用域 JavaScript是一种对数据类型变量要求不太严格的语言,所以不必声明每一个变量的类型,变量声明尽管不是必须的,但在使用变量之前先进行声明是一种好的习惯。可以使用var语句来进行变量声明。如:varmen=true;//men中存储的值为Boolean类型。 变量的作用域是指变量起作用的范围,根据变量作用域的不同,变量可分为全局变量和局部变量。全局变量定义在所有函数之外,起作用范围是当前文件中的所有JavaScript脚本及函数;局部变量是定义在某一个函数体中,只对该函数有效的变量。 (三)、运算符和表达 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=); 算术运算符(+,-,*,/,++,--,%); 比较运算符(>,<,<=,>=,==,===,!=,!==); 逻辑运算符(||,&&,!)、条件运算(?:); 位移运算符(|,&,<<,>>,~,^); 字符串运算符(+)。 可能很多人不知道"==="是什么。 在这里,我为大家解释一下,在JavaScript中,“==="是全同运算符。 等同运算符的比较规则: 当两个运算数的类型不同时:将他们转换成相同的类型, 1)一个数字与一个字符串,字符串转换成数字之后,进行比较。 2)true转换为1、false转换为0,进行比较。 3)一个对象、数组、函数与一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。(先使用valueOf,如果不行就使用toString) 4)其他类型的组合不相等。 想两个运算数类型相同,或转换成相同类型后: 1)2个字符串:同一位置上的字符相等,2个字符串就相同。 2)2个数字:2个数字相同,就相同。如果一个是NaN,或两个都是NaN,则不相同。 3)2个都是true,或者2个都是false,则相同。 4)2个引用的是同一个对象、函数、数组,则他们相等,如果引用的不是同一个对象、函数、数组,则不相同,即使这2个对象、函数、数组可以转换成完全相等的原始值。 5)2个null,或者2个都是未定义的,那么他们相等。 而“===”是全同运算符,全同运算符遵循等同运算符的比较规则,但是它不对运算数进行类型转换,当两个运算数的类型不同时,返回false;只有当两个运算数的类型相同的时候,才遵循等同运算符的比较规则进行比较。 例如:null==undefined会返回真,但是null===undefined就会返回假! 表达式 运算符和操作数的组合称为表达式,通常分为四类:赋值表达式、算术表达式、布尔表达式和字符串表达式。 5.3.4事件驱动及事件处理 (一)、事件处理程序 JavaScript是基于对象(object-based)的语言。其基本特征,就是采用事件驱动(event-driven)。 鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(EventDriver)。 而对事件进行处理程序或函数,我们称之为事件处理程序(EventHandler)。 事件处理程序通常由函数完成,其格式如下: Function事件处理名(参数表) { 事件处理语句集; …… } (二)、事件驱动 JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的。它主要有以下几个事件: (1)单击事件onClick 当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。单击事件通常在下列基本对象中产生: button(按钮对象) checkbox(复选框)或(检查列表框) radio(单选钮) reset buttons(重要按钮) submit buttons(提交按钮) 例:可通过下列按钮激活change()文件: <Form> <Input type="button" Value=“ ”mso-spacerun:'yes';font-family:宋体;font-size:10.5000pt;mso-font-kerning:1.0000pt;">()"> </Form> 在onClick等号后,可以使用自己编写的函数作为事件处理程序,也可以使用JavaScript中内部的函数。还可以直接使用JavaScript的代码等。例: <Input type="button" value=" " onclick=alert("这是一个例子"); (2)onChange改变事件 当利用text或texturea元素输入字符值改变时发该事件,同时当在select表格项中一个选项状态改变后也会引发该事件。 例: <Form> <Input type="text" name="Test" value="Test"mso-spacerun:'yes';font-family:宋体;font-size:10.5000pt;mso-font-kerning:1.0000pt;">(’this.test)"> </Form> (3)选中事件onSelect 当Text或Textarea对象中的文字被加亮后,引发该事件。 (4)获得焦点事件onFocus 当用户单击Text或textarea以及select对象时,产生该事件。此时该对象成为前台对象。 (5)失去焦点onBlur 当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocas事件是一个对应的关系。 (6)载入文件onLoad 当文档载入时,产生该事件。onLoad一个作用就是在首次载入一个文档时检测cookie的值,并用一个变量为其赋值,使它可以被源代码使用。 (7)卸载文件onUnload 当Web页面退出时引发onUnload事件,并可更新Cookie的状态。 (8)onmouseover事件 onmouseover事件会在鼠标指针移动到指定的对象上时发生。 5.3.5 基于对象的JavaScript语言 JavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。 虽然JavaScript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大JavaScript的应用范围,增强编写功能强大的Web文档。 无论是已有(内置)的或是新建的对象(自定义),它们在使用时都必须先创建一个实例。通常每一个对象都会有自己的属性与方法。 对象中包含的变量称“属性”;对象中包含的对属性进行操作的函数称“方法”;“属性”和“方法”都是对象的成员;对象是对某一个事物的描述,是抽象的概念;对象实例是具体的个例。 定义对象格式,在JavaScript中定义自己的对象有两种方法。 1)、使用Object对象(O为大写):varobj=new Object(); 2)、定义构造函数,然后通过构造函数声明对象。 functionObject(属性表) {This.prop1=prop1 This.prop2=prop2 …… This.meth1=Functionname1 This.meth2=Functionname2 …… } 为对象创建实例。 1)、动态对象: 必须使用new关键字创建实例,使用“对象实例名.成员名”访问成员(属性和方法)。 2)、静态对象: 直接使用“对象名.成员名”访问成员。 创建实例的方法: Var obj=new objName(参数列表); 建立数组对象例子: Function intArray() {This.length=intArray.argument.length; For(var i=0,i<this.length;i++) This=intArray.argument;} Var newArray=new intArray(’a’,’b’,’c’,’d’) 5.4 XML【应用】 可扩展标记语言(Extensible Markup Language,XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是标准通用标记语言(SGML)的子集,非常适合Web传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 5.4.1 更多XML介绍 (一)、XML是86年作为一个标准提出来的SGML的优化子集,是弥补HTML缺陷、为HTML扩展更多功能的一个新的标记语言系统,98年2月出版1.0版。 (二)、HTML重在描述信息的布局,而没有考虑信息的含义,且有限的标记难以满足日益发展有WEB应用的需要;而XML重在描述信息本身,且具有可扩展性。 (三)、XML提供描述不同数据的标准格式,eg:约会记录,购买订单、数据库记录等,可一致而正确地解码、管理和显示信息。 (四)、XML提供表示数据的文件格式、描述数据结构的计划,以及用语义信息扩展和注释HTML的机制。 (五)、XML文件由解析器来处理。 IE5.0以上浏览器均可用来浏览XML文档 5.4.2 XML文档结构 XML文档是指用XML创建的文档,扩展名为:“.xml”,它是纯文本文档,可用Notepad等编辑工作创建和修改。 基本构成。包含三个部分:XML文档声明;关于文档类型的定义;用XML标记创建的内容。 XML文档的结构 序言码 序言码是XML文档的第一部分。序言码包括:XML声明、处理指令和架构声明,例如:<?xml version=”1.0” encoding=”gb2312”?> 处理指令PI 处理指令是用来给处理XML文档的应用程序提供信息的,XML分析器把这些信息原封不动地传给应用程序,有应用程序来解释这个指令,遵照它所提供的信息进行处理。格式如下:<?处理指令名处理指令信息?>如:<?xml-stylesheet type=”text/xsl” href=”book.xsl”?> 根元素:根元素是XML文档的主要部分,它包含文档的数据以及描述数据结构的信息。例如: <document xmlns=”http://www.w3.org/2001/XMLSchema-instance”> …… </document> 根元素中的信息存储在两种类型的XML结构中:元素和属性。XML文档中使用的所有元素和属性都嵌套在根元素中。 元素:元素是XML文档的基本构成单元,它用于表示XML文档的结构和XML文档中包含数据。元素包含开始标记、内容、和结束标记。由于XML区分大小写,所以开始标记和结束标记必须完全匹配。 属性:属性是使用与特定元素关联的对应“名称—值”的XML构造。例如: <books> <book bookcategory=”Computer”amount=”500”remain=”200”discount=”8.0”> </book> </books> CDATA节 在CDATA标记下,所有的标记。实体引用都被忽略,而被XML处理程序当作字符数看待。 CDATA的形式如下: <![CDATA[文本内容]]> CDATA的文本内容不能出现字符串“]]>”,另外,CDATA不能嵌套。 注释:XML文档可以包含注释,也可以没有。注释并不由XML分析程序进行处理,但用于在文档的 XML源代码中提供必要的说明。注释以“<!--”开始,以“-->”结束。 XML举例说明 <?xml version=”1.0” encoding=”gb2312”?> <!DOCtype fieldlist SYSTEM “fieldlist.dtd”> <fieldlist> <myfile> <title>QUICK start OF XML</title> <author>wei</author> </myfile> </fieldlist> 其中第一行<?xml version="1.0"?>就是一个XML文档的声明,第二行说明这个文档是用filelist.dtd来定义文档类型的,第三行以下就是内容主体部分。 XML文档中有关的术语: (一)、Element(元素): 元素在HTML我们已经有所了解,它是组成HTML文档的最小单位,在XML中也一样。一个元素由一个标识来定义,包括开始和结束标识以及其中的内容,就象这样:<author>ajie</author>,唯一不同的就是:在HTML中,标识是固定的,而在XML中,标识需要你自己创建。 每个XML文档必须至少包含一个根元素,即是在声明之后的第一个元素,其他元素都是这个根元素的子元素。 (二)、Tag(标识) 标识是用来定义元素的。在XML中,标识必须成对出现,将数据包围在中间。标识的名称和元素的名称是一样的。例如这样一个元素: <author>ajie</author> 其中<author>就是标识。 (三)、Attribute(属性): 属性是对标识进一步的描述和说明,一个标识可以有多个属性,例如font的属性还有size。 在这段HTML代码:<font color=“red”>word</font>。color就是font的属性之一。 XML中的属性与HTML中的属性是一样的,每个属性都有它自己的名字和数值,属性是标识的一部分。举例: <author sex=“female”>ajie</author> XML中属性也是自己定义的,我们建议你尽量不使用属性,而将属性改成子元素,例如上面的代码可以改成这样: <author>ajie <sex>female</sex> </author> 原因是属性不易扩充和被程序操作。 4.Declaration(声明) 在所有XML文档的第一行都有一个XML声明。这个声明表示这个文档是一个XML文档,它遵循的是哪个XML版本的规范。一个XML的声明语句就象这样: <?xmlversion="1.0"?> 5.DTD(文件类型定义) DTD是用来定义XML文档中元素,属性以及元素之间关系的。通过DTD文件可以检测XML文档的结构是否正确。但建立XML文档并不一定需要DTD文件(当所有标识均严格遵守XML规范时)。 DTD文件的定义方法如下: <!DOCTYPE type-of-doc SYSTEM/PUBLIC "dtd-name">,其中,"!DOCTYPE"是指你要定义一个DOCTYPE; "type-of-doc"是文档类型的名称,由你自己定义,通常于DTD文件名相同; "SYSTEM/PUBLIC"这两个参数只用其一。SYSTEM是指文档使用的私有DTD文件的网址,而PUBLIC则指文档调用一个公用的DTD文件的网址。 "dtd-name"就是DTD文件的网址和名称。所有DTD文件的后缀名为".dtd"。 Well-formed XML(良好格式的XML) 一个遵守XML语法规则,并遵守XML规范的文档称之为“良好格式”。如果你所有的标识都严格遵守XML规范,那么你的XML文档就不一定需要DTD文件来定义它。 良好格式的文档必须以一个XML声明开始,例如: <?xml version=“1.0”standalone=“yes”encoding=“UTF-8”?> 其中你必须说明文档遵守的XML版本,目前是1.0;其次说明文档是“独立的”,它不需要DTD文件来验证其中的标识是否有效;第三,要说明文档所使用的语言编码。默认的是UTF-8,如果使用中文,你需要设置为GB2312。 良好格式的XML文档必须有一个根元素,就是紧接着声明后面建立的第一个元素,其它元素都是这个根元素的子元素,属于根元素一组。良好格式的XML文档的内容书写时必须遵守XML语法。 Valid XML(有效的XML) 一个遵守XML语法规则,并遵守相应DTD文件规范的XML文档称为有效的XML文档。注意我们比较"Well-formed XML"和"Valid XML",它们最大的差别在于一个完全遵守XML规范,一个则有自己的"文件类型定义(DTD)"。 将XML文档和它的DTD文件进行比较分析,看是否符合DTD规则的过程叫validation(确认)。这样的过程通常我们是通过一个名为parser的软件来处理的。 通常一个XML会用到两个辅助文件: 1)、文件类型定义:用于定义文档中的元素以及这些元素如何展现。 2)、样式表:定义如何打印和显示文档的内容。 5.4.3 XML语法 (一)、XML语法规则 XML的文档和HTML的原代码类似,也是用标识来标识内容。创建XML文档必须遵守下列重要规则: 规则1:必须有XML声明语句 声明是XML文档的第一句,其格式如下: <?xml version="1.0"standalone="yes/no"encoding="UTF-8"?> 声明的作用是告诉浏览器或者其它处理程序:这个文档是XML文档。声明语句中的version表示文档遵守的XML规范的版本;standalone表示文档是否附带DTD文件,如果有,参数为no;encoding表示文档所用的语言编码,默认是UTF-8。 规则2:是否有DTD文件 如果文档是一个“有效的XML文档”(见上一章),那么文档一定要有相应DTD文件,并且严格遵守DTD文件制定的规范。DTD文件的声明语句紧跟在XML声明语句后面,格式如下: <!DOCTYPE type-of-doc SYSTEM/PUBLIC “dtd-name”>,其中,“!DOCTYPE”是指你要定义一个DOCTYPE; “type-of-doc”是文档类型的名称,由你自己定义,通常于DTD文件名相同; “SYSTEM/PUBLIC”这两个参数只用其一。SYSTEM是指文档使用的私有DTD文件的网址,而PUBLIC则指文档调用一个公用的DTD文件的网址。 "dtd-name"就是DTD文件的网址和名称。所有DTD文件的后缀名为".dtd"。 规则3:注意你的大小写 在XML文档中,大小写是有区别的。<P>和<p>是不同的标识。注意在写元素时,前后标识大小写要保持一样。例如:<Author>ajie</Author>,写成<Author>ajie</author>是错误的。 规则4:给属性值加引号 在HTML代码里面,属性值可以加引号,也可以不加。例如:<font color=red>word</font>和<font color="red">word</font>都可以被浏览器正确解释。 但是在XML中则规定,所有属性值必须加引号(可以是单引号,也可以是双引号),否则将被视为错误。 规则5:所有的标识必须有相应的结束标识 在HTML中,标识可能不是成对出现的,而在XML中规定,所有标识必须成对出现,有一个开始标识,就必须有一个结束标识。否则将被视为错误。 规则6:所有的空标识也必须被关闭 空标识就是标识对之间没有内容的标识。比如<br>,<img>等标识。在XML中,规定所有的标识必须有结束标识,针对这样的空标识,XML中处理的方法是在原标识最后加/,就可以了。例如:<br>应写为<br/>;<IMG src= "cool.gif">应写为<IMG src= "cool.gif" /> (二)、元素的语法 元素由一对标识以及其中的内容组成。元素的名称和标识的名称是一样的。标识可以用属性来进一步描述。在XML中,没有任何保留字,所以你可以随心所欲的用任何词语来作为元素名称。但是也必须遵守下列规范: 1).名称中可以包含字母、数字以及其它字母; 2).名称不能以数字或“_”(下划线)开头; 3).名称不能以字母xml(或XML或Xml..)开头 4).名称中不能包含空格 5).名称中间不能包含":"(冒号) 为了使元素更容易阅读理解和操作,我们还有一些建议: 1).名称中不要使用"."。因为在很多程序语言中,"."是作为对象的属性,例如:font.color。同样的原因"-"也最好不要用,必须使用的,以"_"代替; 2).名称尽量简短。 3).名称的大小写尽量采用同一标准。 4).名称可以使用非英文字符,比如用中文。但是有些软件可能不支持。(IE5目前是支持中文元素的。) 另外,补充一点关于属性的说明。在HTML中,属性可以用来定义元素的显示格式,比如:<font color="red">word</font>将把word显示为红色。而在XML中,属性只是对标识的描述,与元素内容的显示无关。例如同样一句:<font color="red">word</font>,并不会将word显示为红色。(那么,有网友会问:如何在XML中将文字显示为红色呢?这就需要使用CSS或者XSL,我们在下面详细讲述。 (三)、注释的语法 注释是为了便于阅读和理解,在XML文档添加的附加信息,将不会被程序解释或则浏览器显示。 注释的语法如下: <!--这里是注释信息--> 可以看到,它和HTML中的注释语法是一样的,非常容易。养成良好的注释习惯将使你的文档更加便于维护,共享,看起来也更专业。 (一)、CDATA的语法 CDATA全称character data,翻译为字符数据。我们在写XML文档时,有时需要显示字母,数字和其它的符号本身,比如"<",而在XML中,这些字符已经有特殊的含义,我们怎么办呢?这就需要用到CDATA语法。语法格式如下: <![CDATA[这里放置需要显示的字符]]> 例如: <![CDATA[<AUTHOR sex="female">ajie</AUTHOR>]]> 在页面上显示的内容将是"<AUTHOR sex="female">ajie</AUTHOR>" 5.4.4 XSL介绍 XML无固定标记、可扩展,是它的一个优势,但也正由于这点使得它不能被浏览器自动解析,使我们没有一个标准的办法来显示XML文档。它要能够在浏览器端正确地显示,可以有两种办法:CSS和XSL,而XSL更适于XML。 XSL之于XML,就像CSS之于HTML。它是指可扩展样式表语言(EXtensible Stylesheet Language)。这是一种用于以可读格式呈现XML数据的语言。 XSL包括三部分: XSLT,是一种用于转换XML文档的语言,提供一个转换XML文档的方法。 XPath,是一种用于在XML文档中导航的语言、一种可以过滤和选择XML数据的语言,提供一个定义XML部分与模式的方法。 XSL-FO,是一种用于格式化XML文档的语言,提供一个格式化XML文档的方法。 XSL的转换: XSL样式表本身也是一个XML文档,其开头以一个XML声明开始并应包含一个特殊元素stylesheet,用来声明这是一个样式表文件。如: <xsl:stylesheet xmlns:xsl=“http://www.w3.org/1999/xsl/Format”> <xsl:stylesheet xmlns:xsl=“http://www.w3.org/TR/WD-xsl”> XSL元素的前缀是xsl。元素stylesheet中必须至少包含一个元素template。XSL处理器使用元素template显示文档的元素层次中的某个分支,这个分支元素由match定义。 如:<xsl: template match=“/”>模板匹配整个XML文档。每个XSL文档中必须包含一个用于“/” XSL样式表的元素类型有两类:一类直接包含内容,另一类指定从关联XML文档合并而来的内容。 直接包含内容使用表示HTML的元素的XSL元素指定内容,如: <DIV style=“font-size:14”>Merry Christmas!</DIV> 用于合并XML数据最简单的元素是value of,这个元素的select属性用于指定合并到XSL文档中的那部分XML数据,如: <xsl value of select=“BOOK/AUTHOR”/> 须注意的是,合并到XSL文档中的XML文档必须包含一个处理命令 <?xml-stylesheet type=“text/xsl” href=“XSL文档名”?> 5.5 动态网页技术【应用】 5.5.1 WEB数据库 (一)、分布式数据库的定义:是指物理上分布、逻辑上系统结构集中的数据库。它通过两阶段提交(2PC)协议来提供透明的数据访问和事务管理。具有可用性、可扩充性好及有利于改善性能、有利于自治管理。 (二)、网络数据库的架构: B/S:Brower/Server C/S:Client/Server B/S中客户机通过浏览器与服务器交互,服务器中数据库可以是Oracle、Sybase、Informix、SQL Server等。 其最大的优点就是可以在任何一个能上网的地方进行操作而不用安装任何专门的软件,客户端零维护,也无须使用培训。 C/S中需要有专门的客户端软件访问服务器,服务器可以是高性能PC、工作站或小型机,采用的数据库同样可以是Oracle、Sybase、Informix、SQL Server等。 其优点是客户端的处理能力较强,很多工作不必提交服务器直接在客户端处理,客户端响应速度较快。缺点是客户端需专用软件、升级维护比较烦琐、多受限于较小范围的局域网而难以扩展至大型企业广域网或互联网、软硬件的组合及集成能力有限。 (三)、WEB数据库的开发和发布 Web数据库通常指在互联网中以Web查询接口方式访问的数据库资源,其结构是后台采用数据库管理系统存储数据信息,对外提供包含表单的Web页面作为访问接口,查询结果也以包含数据列表的Web页面形式返回给用户。 实现Web数据库应用一般可以用两种方法:一是在WEB服务器端提供中间件来连接WEB服务器和数据库服务器;二是利用客户端应用程序直接访问数据库。 在第一种方法中,中间件负责管理WEB服务器和数据库服务器间的通信并提供应用程序服务,它能够直接或调用外部程序(脚本代码)来访问数据库,提供与数据库相关的动态页面。最基本的中间件技术有:通用网关接口(CGI)和应用程序编程接口(API)。 而客户端应用包括JavaApplet、ActiveX、Plug in等,其中最典型的是Java Applet。 (四)、ODBC 开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务,ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 使用ODBC访问数据库前须通过控制面板中的ODBC数据源管理器建立ODBC数据源,进入ODBC数据源管理器后可创建三种不同的数据源类型:用户User、系统System、文件File(.dsn)。 5.5.2 ASP介绍 ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是“.asp”,现在常用于各种动态网站中。 跟Java Script、VB Script程序不一样的是Asp是在服务器端执行的,只是把执行结果传回客户端,而JavaScript、VB Script是在客户端执行。Asp脚本是通过<% %>嵌入的。 (一)、Asp的特点| 1)、集成于HTML中,无须编译或连接; 2)、使用普通的文本编辑器; 3)、与浏览器无关(Browser Independence),用户端只要使用可执行HTML代码的浏览器,即可浏览 ASP所设计的网页内容。ASP所使用的脚本语言(VBScript、JScript)均在Web服务器端执行,用户端的浏览器不需要能够执行这些脚本语言; 4)、Asp源程序不会传至用户浏览器利于保密; 5)、可通过ActiveX服务器元件来扩充功能; 6)、面向对象。 (二)、2.Asp的运行环境 服务器上须搭建WEB服务器: NT4.0Windows2000Server IIS4.0 Windows98、Windows2000professionalPWS4.0 客户机上,只要能运行浏览器即可。 (三)、Asp的对象 1)、Response对象:用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据以HTML的格式发送到用户端的浏览器,它与Request组成了一对接收、发送数据的对象,是Asp实现动态的基础。 Response的常用方法之Write方法: 该方法把数据发送到客户端浏览器,如: <%Response.write "Hello,world!"%> 在页面中也可以使用“=”来替代Response.write。如: <%=date()%>相当于<%Response.write ""&date() &""%>,将在页面上显示当前日期。 Response的常用方法之Redirect方法: 该方法使浏览器可以重新定位到另一个URL上,这样,当客户发出Web请求时,会被重新定位到相应的页面,须注意的是应在没有任何其他信息输出到浏览器之前。 Response的常用方法之End方法: 该方法用于告知Active Server当遇到该方法时停止处理ASP文件。如果Response对象的Buffer属性设置为True,则End方法即把缓存中的内容发送到客户端并清除缓冲区。所以要取消所有向客户的输出名,可以先清除缓冲区,然后利用End方法实现操作。P175例从略,又如: <%Response.buffer=true On error resume next Err.clear if Err.number<>0 then Response.Clear Response.End end if%> 2)、Request对象:用于接受所有从浏览器发往服务器的信息。从浏览器传递信息到服务器有GET和POST等二种方法。GET方法传递过来的信息保存在QueryString集合中,POST方法传递过来的信息保存在Form集合。 Request对象的数据集合: (1)QueryString用于接收通过参数传来的数据。QueryString集合获取URL的问号后面的文本传递给Web服务器的值。通过使用GET方法或手工将表单的值添加到URL,表单的值可以被附加在请求的URL之后 (2)Form集合接收通过使用POST方法的表单发送到HTTP请求正文中的表单元素的值。 <HTML><BODY><FORM method="POST" action="Output1.asp"> <P>姓名:<INPUT type="text" name="Name" size="10"></P> <P>性别:<SELECT name="Sex" size="1"> <option value="帅哥">帅哥</option> <option value="美女">美女</option> </SELECT></P> <P>电子邮件信箱:<INPUT type="text" name="E-mail" size="30"</P> <P><INPUT type="submit" value="确定"> <INPUT type="reset" value="取消"></P> </FORM></BODY></HTML> <HTML> <BODY> <P>您的姓名是:<%=Request.Form("Name")%>。</P> <P>您是一位<%=Request.Form("Sex")%>!</P> <P>您的E-mail地址是:<%=Request.Form(3)%>。</P> </BODY> </HTML> <HTML> <BODY> <H3>欢迎访问,请选择您的操作</H3> <HR> <A HREF="Output3.asp?User=管理员&userlevel=1">管理员</A> <A HREF="Output3.asp?User=普通用户&userlevel=2">普通用户</A> <%="<A HREF='Output3.asp?User=未注册用户&userlevel=3'>未注册用户</A>"%> </BODY> </HTML> <% user=Request.QueryString("user") level=Request.QueryString("userlevel") Response.Write user & ":您好!您的权限级别为:" & level %> <% If Request.QueryString("ok")<>"确定" then %> <HTML><BODY> <FORM method="GET" action="4_3_3io2.asp"> <h4 align="center">欢迎访问,请输入您的用户名和密码</h4> <P align="center">用户名:<INPUT type="text" name="Username" size="10"></P> <P align="center">密 ; ;码:<INPUT type="password" name="Userpass" size="10"></P> <P align="center"><INPUT name="ok" type="submit" value="确定"> <INPUT type="reset" value="取消"> </FORM></BODY></HTML> <% Else name=Request.QueryString("Username") pass=Request.QueryString("Userpass") If name<>"" then Response.Write "<P>欢迎访问!</P>" Response.Write "<P>您输入的用户名是:" & name & "</P>" Response.Write "<P>您输入的密码是:" & pass & "</P>" Else Response.Write "<P>对不起,请重新输入!" Response.Write "<a href='4_3_3io2.asp'>上一页</a>" End If End If %> 3)、Server对象 Sever对象提供对服务器上的方法和属性访问,其中大多数方法和属性是为实用程序提供服务的。 语法如下: Server.Property|Method 其中Property表示Server对象属性,Method表示Server对象的方法。 (1)MapPath:MapPath方法能把相对或虚拟路径映射成物理路径。语法:Server.MapPath(Path) (2)HTMLEncode:HTMLEncode方法是对指定的字符串应用HTML编码。语法如下: Server.HtmlEncode(String): 其中String指定要编码的字符串,它应当是HTML标记才有意义。当从服务器端向浏览器输出HTML标记时,浏览器就将其解释为HTML标记。 (3)URLEncode:URLEncode方法将指定的字符串进行URL编码,语法如下: Server.URLEncode(Str): 其中Str指定要编码的字符串。 Session对象: 由于HTTP是一种无状态的协议,因此无法得知用户的浏览状态。在ASP中,是通过Session对象记录用户的相关信息,用来作为用户再次对服务器访问时作确认。 当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或被放弃后,服务器将终止该会话。当用户在应用程序的Web页之间跳转时,存储在 Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。 Session和Application类似但只能被一个连接者访问。 其使用方法: 变量存入Session Session(“变量名称”)=变量名称 Set Session(“变量名称”)=变量名称 还原回来 变量名称=Session(“变量名称”) Set变量名称=Session(“变量名称”) Application对象: Application对象是一个应用程序级的对象,它包含的数据可以在整个Web站点中被所有用户使用,并且可以在网站运行期间持久地保存数据。 其使用方法: 变量存入Application Application(“变量名称”)=变量名称 SetApplication(“变量名称”)=变量名称 还原回来 变量名称=Application(“变量名称”) Set变量名称=Application(“变量名称”) (四)、通过ASP访问数据库 建立一个ACCESS数据库student.mdb后,访问该数据库的ASP页面程序有两种方法,一是使用ADO对象,插入如下程度代码: 1)、建立Connection对象conn <%set conn=Server.CreateObject(ADODB.Connection)%> 2)、通过调用conn.open打开数据库 <%conn.open Driver={Microsoft Access Driver(*.mdb)};dbq=“&Server.MapPath(“student.mdb”)%> 3)、建立Recordset对象rs,并取得student表中的信息。 <%set rs=conn.excute(”student”)%> 4)、将Recordset内容输出到浏览器 这里需要用到Fields集合对象及其相关属性name、value、type。 <table border=1> <tr> <%for i=0 to rs.fields.count-1 response.write“<td>”&rs.fields(i).name&</td>”next%> </tr> 接下来,一次输出显示一行记录,重复执行若干次完成全部记录的输出,通过Movenext、MovePrevious、MoveFirst、MoveLast、AbsolutePosition=N等命令改变当前数据记录的位置,通过Fields的value属性取得当前记录当前字段的值。 <%while not rs.eof response.write “<tr>” for i=0 to rs.fields.count-1 response.write “<td>” &rs.fields(i).value&”</td>”> next response.write “</tr>” rs.MoveNext Wend%> </table> 若要访问的数据库是SQL数据库,则conn.open处应修改为:<%conn.open “Driver={SQL Server}; Server=数据库服务器的IP地址;uid=访问数据库的用户名;pwd=用户密码;database=数据库名称”%> 以上是通过ADO直接访问数据库的方法,另有一种方法是通过ODBC访问数据库,先通过ODBC管理器添加数据源,系统DSN/添加/创建新数据源/选择数据源类型mdb/完成,打开“ODBC MICROSOFT ACCESS”安装窗口,在“数据源名”文本框输入数据源名,然后“选择”该数据源对应的源文件即具体的MDB文件,最后确定。 设定DSN后,可使用如下格式打开ODBC数据库。 <%conn.open “DSN=ODBC数据源名称;UID=访问数据库的用户名;PWD=用户密码”%> 5.5.3 PHP介绍 (一)、简介 PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格类似于C语言,被广泛的用在交互WEB站点的建设。 与ASP的相同点:都是在在服务器端执行,处理结果传回浏览器;不同点:PHP源代码免费开放,具有很好有平台兼容性。 在实际应用中,PHP除控制WEB页面显示内容之外,还可以发送HTTP报头、设置cookies、管理用户身份,对用户浏览页面重定向、强大的数据库支持能力。 (二)、PHP4的安装 1)、安装运行WEB服务器; 2)、在WEB服务器上安装PHP的扩展; 3)、下载PHP4软件包; 4)、解压到C:\PHP下; 5)、将php.ini-recommended复制到C:\windows目录下并改名为:php.ini; 6)、编辑php.ini,将extension_dir=“./”改为extension_dir=“C:\php\extensions”; 7)、将c:\php、c:\php\dlls下的所有dll文件复制到c:\windows\system32文件夹下 控制面板/管理工具/打开Internet信息服务窗口/在默认WEB站点上单击右键选择属性菜单打开相应窗口/打开主目录选项卡/单击应用程序设置下“配置”钮/添加/在“可执行文件”中输入“c:\windows\system32\php4isapi.dll”,在扩展名中输入:“*.php”,单击确定; 打开“ISAPI筛选器”选项卡,单击“添加”按钮,在“筛选器名称”中输入“PHP”,在可执行文件中输入“c:\windows\system32\php4isapi.dll”,单击确定; 选中“文档”选项卡,单击“添加”,在默认文档名中输入“index.php”,单击“确定”并将其提高至最高级。 5.5.4 JSP介绍 JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 JSP的技术特点 (一)、将内容的生成和显示进行分离 用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。 在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。 (二)、可重用组件 绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 (三)、采用标识 Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 (四)、由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为Java Servlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。 (五)、作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。 运行平台与插件安装 JSP的运行平台有两种:一是自身支持JSP的平台,如WebLogic;二是在不支持JSP的平台上安装JSP引擎的插件,如:在IIS、Apache等服务器上安装Tomcat、Resin等。
|