基于网页的虚拟现实(共9篇)
基于网页的虚拟现实 篇1
当前,越来越多的网站发布在互联网中,网站提供各式各样的信息和服务,对于广大的网民来说,会经常在互联网中搜索所需信息,搜索引擎已经成为在广阔的网络中获取所需信息的最重要途径和工具;对各个网站来说,在搜索引擎中的收录量和排名,直接影响着网站的宣传和运营。搜索引擎在互联网中的地位、对人们的日常生产产生巨大影响。SEO(搜索引擎优化)越来越重要。
1 SEO介绍
1.1 SEO
SEO即搜索引擎优化,网站的SEO是指针对搜索引擎使网站内容较容易被搜索引擎取得并接受。搜索引擎在抓取该网站的资料后进行比对及运算,最后将PR值(Page Rank)较高的网站放在网络上其他使用者在搜索时会优先看到的位置,证明网站的重要程度,进而促使搜索者可以得到正确且有帮助的资讯。搜索引擎优化通过对网站结构、网页文字、网页标签、网站的链接等进行合理规划部署使搜索引擎更容易抓取网站的内容,使网站在搜索引擎中具有较强的自然排名竞争优势。其本质是优化网站,让搜索引擎蜘蛛程序更好的阅读与抓取。
1.2 搜索引擎的工作原理
搜索引擎能够获得网站网页资料,并建立数据库以提供查询的系统。这个便是通过所谓的爬行器(crawler)或叫爬行蜘蛛(spider)来进行的,这些爬行器其实是用计算机语言编制的程序,用以在互联网中不分昼夜的访问各个网站。爬行器能够扫描一定IP地址范围内的网站,并沿着网络上的链接从一个网页到另一个网页,从一个网站到另一个网站采集网页资料。它为保证采集的资料最新,还会回访已抓取过的网页。
搜索引擎并不会取回整个页面的信息,搜索引擎只会取得每个页面最有价值的信息,一般如:标题、描述、关键词等。因此,如果想网站大部分网页信息都被搜索引擎带走,就不要把网页设计得太长,内容太多。而是应该多设计一些页面,页面布局要合理,页面内容相应少些,网页之间的链接设置好。这样,对于搜索引擎来说,既能够快速阅读,又能够带走一个网页几乎所有的信息。
搜索引擎是从上到下、从左到右访问网站信息的,而且搜索引擎访问的是代码,和网页做得如何美观无关。所以在建立网站的时候,关键内容在网页中的位置非常重要,网页布局相当重要。
搜索引擎为搜索到的网页根据自己的标准对网页进行评价,在用户搜索时会按评价的高低顺序显示给用户,将其认为最好的推荐在首位,较次的排列在其后,依次类推。
1.3 SEO的影响
网站优化的基本思想是通过对网站功能、结构、布局、内容等关键要素的合理设计,使得网站的功能和表现形式达到最优效果,更好的起到企业宣传的作用。SEO考虑的不仅是在搜索引擎的中排名,更重要是要为用户获取信息和服务提供方便,引擎优化的最高目标是为了用户,SEO可以让更多的用户更快的找到他想找的东西。可以让相关的关键词排名靠前,满足用户需求,更加方便网络了解很少甚至不懂网络的人寻找到需要的网络知识。
良好SEO可以让网站排名自然靠前,从而增加网站浏览量,增加可信度,增加网站的曝光率,促进网站宣传和业务发展。还能使网站更实用,可访问性更强,而且对搜索引擎更友好。
良好的SEO可以让企业更好的宣传自己,扩大企业知名度,让更多的人知道公司和产品,从而购买企业的产品,提高效益。
2 网页布局
网页布局方式有很多,比如表格布局、布局表格布局、框架布局、模板和库布局以及DIV+CSS布局。DIV+CSS是目前网页布局的主流。
2.1 采用表格布局页面特点
利用表格布局可以轻松地将整个页面划分成需要的各个块,如若某个块中的内容需要再划分,可以通过嵌套表格来实现。整体思路明了,易于操作。
表格中的每个块可单独调整,表格块与块之间的关系清晰。但是用表格设计的网页代码相对复杂,维护和升级困难。比如,当页面制作完成后,希望调整表格中各块的位置,这样则需要重新制作一个页面。并且,利用表格布局的页面当嵌套层次较多时,浏览速度较慢。
2.2 采用CSS+DIV布局的网页具有以下特点
用DIV+CSS布局的网页内容和样式相分离,代码精简,页面代码大大的缩减,结构清晰,页面浏览速度提高。这种布局将设计部分剥离出来放在一个独立样式文件中,样式可以定义在样式表文件中,置于网页文件之外,以链接的方式引入页面使用,真正做到内容与样式的分离。
布局灵活,易于维护和改版。可以使许多网页的风格格式同时更新,不用再一页一页地更新。DIV+CSS布局可以将站点上所有的网页风格都使用一个CSS文件进行控制,只要简单的修改几个CSS文件,那么整个站点的所有页面都会随之发生改动。
提高网页浏览速度。利用表格排版的页面在下载时必须等整个表格的内容都下载完毕之后才会一次性显示出来,而利用DIV+CSS排版的页面在下载时,各个子块可以分别下载显示,从而提高页面的下载速度。
3 网页布局优化
3.1 鉴于SEO的传统布局方式分析
1)网页采用框架布局
使用框架布局的页面,框架将浏览器窗口划分为若干个区域,每个区域用于分别显示不同的网页,可以非常方便地完成导航。但由于框架是由框架集和框架组成,使用框架的页面由多个网页搭配而成的,搜索引擎把框架中的页面看成是独立的页面进行索引,搜索引擎只能访问其中的一页,这样其他网页被忽略了。网站的框架结构对搜索引擎来讲是一个索引的盲点,不便于网页的收录,这对用框架布局的网站来说是相当不利的。
2)网页采用表格布局
使用表格布局的页面,一般为了达到一定的页面表现效果,多会采用多层表格嵌套来划分页面结构。但是,当spider爬行页面时,遇到多层表格嵌套,就会跳过嵌套的内容或直接放弃整个页面。如果嵌套的表格中的内容是核心内容,spider跳过了这一段,而没有抓取到页面的核心,会把这个页面作为相似页面,这样会影响网站的排名和域名信任度。
3.2 DIV+CSS布局方式的优势
网页布局方面,最适合搜索引擎的网页结构是小、静态、没有框架、格式一致的网页。用DIV+CSS布局的网页,页面代码精简,代码精简可以提高spider爬行效率,spider可以在最短时间内爬完整个页面,这样可以提高收录质量。另一方面,由于爬行效率高,会受到spider青睐,对收录数量也有一定的好处。
用DIV+CSS布局的网页容易向W3C标准靠拢,网站是否符合W3C标准是搜索引擎给网页排名和一个影响因素。并且,网站源代码简洁,标签使用少,这样使网站内容完全裸露在搜索引擎的蜘蛛面前,便于抓取内容,增大关键内容的页面的比重,从而为排名因素增加比重。
用DIV+CSS布局可很容易做到关键内容先被蜘蛛读取。大多站点都采用左中右三栏式,而页面的主要内容一般都处于中间一栏,蜘蛛抓取页面内容是按照从上而下,从左至右的顺序进行的,如果你在左栏内容较多,页面主要内容权值就会下降。但是用DIV+CSS布局,可以把主要内容先写在前面,再写左栏、右栏内容,然后通过CSS定位达到预设效果。
方便调整网站结构布局。对于常用的表格布局,若想改下布局是相当麻烦的,用CSS+DIV布局,如果网页结构设计的合理,可以用CSS很轻松的改变网站的显示效果,因其达到了结构和内容、行为的分离。Spider亦关注网站更新,如果网站结构定期发动,自然搜索引擎蜘蛛会对其产生吸引力。
4 结论
基于XTHML标准的DIV+CSS布局方式,使网页样式与内容分离,结构简单,较表格布局减少了页面代码,提高了页面加载速度,便于网站维护和更新。这些对于Spider爬行都是非常有利的,利于搜索引擎优化。
参考文献
[1]范彦忠.SEO技术研究[J].计算机应用与软件,2010,1.
[2]薛晓霞,王晓红,王磊.基于搜索引擎优化的企业网站设计策略研究[J].生产力研究,2009,12.
[3]卢秉亮,朱健,张磊,郞勇,王磊.Internet搜索引擎精确检索算法及实现[J].微处理机,2007,2.
基于网页的虚拟现实 篇2
引言
随着互联网的发展,网络上的文本信息越来越容易复制,由此产生了大量的重复网页和镜像文档,这一方面增加了网络爬虫的负担,另一方面降低了用户体验。因此,越来越多的学者关注重复网页检测这一领域。
对于重复网页可以定义为内容完全重复和近似重复,对于完全重复的网页可以计算其MD5值,通过比较网页问MD5值是否相等即可作出判断。因此,本文只讨论近似重复网页的检测。大量重复网页的产生基本上是通过用户,如一些新闻文章、热门事件及经典文章等,也就是说一般重复网页改动比较小,如加入引文信息、插入广告导航等。
本文把相似网页的比较转换成二元分类问题,即两张网页相似标记为+1(相似),否则标记为-1(小相似)。SVM(Support Vector Machine)算法在文本分类中取得了较好的效果。因此,本文采用SVM算法对每对网页分类,通过训练数据的学习得到分类判别函数,由判别函数对新的数据进行计算。
1相关研究
目前,对重复网页检测问题已经提出了很多解决方案:有基于字符串比较的方法,即按小同粒度提取指纹,有基于词频统计的方法,还有基于聚类的方法等。
Border提出将文本中连续的n个term序列作为文本的一个特征,称之为二shingleo M-Theobald等人提出的SpotSig算法,以停用词作为先行词,提取其后的k个词形成一个个特征,使用Jaccard计算相似度。
哈工大张刚等人把句号作为一个提取位置,分别在句号两边L/2长的词串构成网页的一个特征。清华大学吴平博等人提取每个句子中首尾字符作为特征串。彭渊等人提出将两篇文档的最长公共子序列(LCS)作为特征码。
2算法实现过程
2. 1特征码提取
网页通常由以下几部分组成:标题、正文内容、链接和广告等。正文是原始网页中真正描述主题的部分。本文采用通用网页正文抽取算法州提取网页的正文内容,网页中其余部分当作噪音过滤掉。
从长段落中提取特征码,可以减少一些次要特征,使计算更简洁。长段落定义:段落的长度要大于设定的阈值或以句号、问号、感叹号分割得到的句子数大于设定的阈值。
提取出长段落后,以逗号、句号、感叹号和问号分割得到每个句子,提取每个句子首尾各L/2个字作为特征码;把各个特征码按序组成特征串,该特征串代表了该篇文档。
2. 2相似度计算
在比较特征串差异性的基础上得到网页的相似度。目前,比较文本之问差异算法主要有两大类:一类是基于最短编辑距离算法;一类是基于最长公共子串算法。最短编辑距离算法是以字符串八变成另一个字符串B的过程中,通过插入字符、删除字符、替换字符等操作的次数表示两个字符串的差异,数值越小字符串的差异越小算法表示字符串八和字符串B的.最长公共子串长度,数值越大字符串的差异越小。
通用的做法是根据以上计算出的相似度数值,作一些规范化处理后与阈值比较。但是在现实中阈值的设定往往是依靠经验来设置的,因此很难设定准确,这样就有误差。本文采用了监督学习算法,通过学习得到的判别函数来判断文档是否相似,避免了人为设定阈值带来的风险。
2. 3支持向量机(SVM )
2. 3. 1 SVM简介
支持向量机是一种二元分类模型,它的基本模型是定义在特征空间上的问隔最大的线性分类器。在重复网页检测应用中,我们把每对网页中计算出的特征定义如过程中,通过插入字符、删除字符、替换字符等操作的次数表示两个字符串的差异,数值越小字符串的差异越小算法表示字符串八和字符串B的最长公共子串长度,数值越大字符串的差异越小。
通用的做法是根据以上计算出的相似度数值,作一些规范化处理后与阈值比较。但是在现实中阈值的设定往往是依靠经验来设置的,因此很难设定准确,这样就有误差。本文采用了监督学习算法,通过学习得到的判别函数来判断文档是否相似,避免了人为设定阈值带来的风险。
2. 3. 2操作流程
SVM在重复网页检测应用中的大致流程,主要分为训练阶段和测试阶段。训练阶段主要从预先给定的数据集中学习并建立分类器,得到判别函数。因此,训练数据的好坏对于分类器的性能至关重要。测试阶段用来分类未知结果的数据集,可以判断出文档集中与输入文档重复的文档,即把文档集中每个文档与输入的文档使用判别函数计算
2. 4算法描述
本文算法大致分为3大步:提取特征串、衡量指标和构造分类器。
3结语
基于VRML的立体网页实现 篇3
一个典型的虚拟现实系统主要有以下五大部分组成:虚拟世界、Computer、虚拟现实软件 (包括建模软件、VR软件和虚拟环境数据) 、输入设备及输出设备。如图1所示:
虚拟现实系统对计算机的内存、CPU速度、显卡等处理图形的能力方面的硬件有一定要求, 建议采用Pentium4以上的计算机, 主频2G以上、内存128M以上、显卡64M以上、硬盘10G以上。
虚拟现实技术具有三个突出特性:即沉浸性 (Immersion) 、交互性 (Interactivity) 和想象性 (Imagination) 。沉浸性指用户感觉到好像完全置身于虚拟世界之中一样, 被虚拟世界所包围。交互性即用户在虚拟现实世界中所感受到的信息, 经过大脑的思考和分析, 形成自己想要实施的动作或策略, 通过输入界面反馈给系统。想象性指用户从定性和定量综合集成的环境中得到感性和理性上的认识, 进而使人能深化概念、产生新意和想象, 最大限度发挥人类的创造性和想象力。
1 VRML概述
VRML (Virtual Reality Modeling Language) 是一种虚拟现实建模语言, 它的基本目标是建立因特网上的交互式三维多媒体。VRML与二维、三维图像技术、动画技术和多媒体技术的结合, 在Web环境中创建虚拟城市、虚拟校园、虚拟图书馆以及虚拟商店。专家已经预言, 在未来十年, 三维网页将取代现在的二维网页成为主要的网页模式。
VRML是一种面向对象语言, 它的“对象”叫做节点, 节点是VRML中的最基本单位, 每个节点还包含子节点和描述节点属性的字段, VRML中有以下节点:shape and geometry (几何节点) 、Appearance (外观节点) 、Grouping (群节点) 、Environment (环境节点) 、Animation and Interaction (动态交互节点) 和Others (其他节点) 。
VRML中的每个节点一般都有两种事件, 即一个“入事件”和一个“出事件”。“入事件”请求节点改变它自己某个域的值, 而“出事件”则是请求别的节点改变它的某个域值。路由是产生事件和接受事件的节点之间的连接通道。
VRML的交互和动画执行都是事件驱动的, 如图2所示为VRML的执行模式。
VRML场景可以接受两种事件驱动:从路由语句传过来的入事件和由外部程序 (Java) 接口写入的直接事件。路由其实是一条传递消息的路径, 从某个节点的出事件域 (EventOut) 传出的信息传递到某个节点的入事件域 (EventIn) 。场景中传感器节点通常定义了触发事件, 它通过路由发送到场景图中其他节点的入事件域。Script节点的处理过程就是用Javascript或Vrmlscript语法编写的脚本程序。Script节点还可以通过url域引入Java程序 (.class文件) 进行事件处理。Script节点把处理的结果作为出事件传递数据, 继续路由到其他需要该数据的节点, 比如传递给节点实体改变它的位置、形状, 由外部程序接口写入的直接事件不需要路由传递可以直接作用于场景, 但其他执行过程都是一样的。若需要外部程序的响应, 该程序应该有能够读取节点出事件域数据的接口。
2 应用VRML创建立体网页的过程
1) 源程序的编写。
VRML源文件是一种ASCII码的描述语言, 可以使用一般计算机中都具有的文本编译器编写VRML源程序, 保存为*.wrl为后缀名的文件格式就行, 这种方法设计的效率不高。VRML专用编辑器一般采用VrmlPad, VrmlPad自带压缩功能将文件进行压缩, 具体操作步骤是:单击“File”->“Save As”菜单, 在弹出的“Save As”对话框中选中“Compress”选项, 单击“Save”按钮之后, 即可完成VRML文件的优化压缩。3DS MAX、DXF等图形软件可以导出VRML文件, 命令export, 保存为*.wrl后缀名的文件。
2) VRML文件的发布。
VRML文件运行无误后, 就可以发布到网络上, 一般它与HTML一起使用, 主要有两种方法, 一是在网页的HTML源文件中加入“…”标签;二是使用超链接方法, 通过A href 属性将VRML文件和相应的文字或图片相链接。
3) 观看。
用户要观看VRML文件的内容, 还需要应用VRML浏览器, VRML浏览器分为两种:一种是IE3.0或Netscape Navigator3.0以上版本, 这些浏览器自带了VRML浏览器;另一种就通过在普通浏览器中安装VRML浏览器插件。
通过以上几个步骤, 你就可以创建立体网页与网站了。
3 VRML实例分析
本文所用到的工具有, VrmlPad编辑器、浏览器IE和Cortona浏览器插件等。虚拟现实的最大特点就是它的交互能力, 使用户能随心所欲地操纵、控制VRML环境中的物体。传感器便是VRML中提供用户与虚拟世界中的物体进行交互的机制。VRML中要实现动画就要使用到插补器节点与时间传感器节点, 但这些节点只能产生相对规则的动画, 对于复杂的动画就显得比较局限, Script节点解决了这个问题, 它可以嵌入Java等脚本语言, 赋予脚本节点动作, 让动画角色进行复杂的动作。
下面的实例实现了简单的人机交互, 在VRML浏览器界面可以看到一个不停转动的风车, 点击风车, 它停止转动, 再次点击风车又继续转动。程序中用到了TouchSensor触感器, 用于感知用户点击鼠标动作, OrientationInterpolator朝向插补器, 控制方位变换, 使风车沿着KeyValue所设的方向旋转, TimeSensor时间检测器, 控制风车的断与续。由于篇幅有限源程序的关键代码在这里就不在列出。
在虚拟世界中, 一些VRML节点会因为环境的变化或响应用户动作而产生事件。为了保证虚拟世界的真实性, 各节点不能孤立地响应外界的变化, 事件的路由 (ROUTE) 提供了一种机制, 可以让发生事件的节点通过路由传递事件到相关节点, 从而使虚拟世界保持一致。该实例的路由可以用图3表示:
TouchSensor节点创建了一个检测用户动作、并将其转化后输出, 以触发一个动画的检测器, 它是用来检测用户触摸事件的检测器。当用户的鼠标点击被感知的三维对象时, 将引发一个isActive事件, 检测器被激活, touchTime事件出口将系统的当前时间发送给Script节点的入事件域touchTime, 经过JavaScript脚本语言处理后, 产生一个布尔型出事件enabled_changed, 传递到时间检测器TimeSensor, 作为改变时间检测器的信号。TimeSensor的初始状态是处于开启的, 并且不断地运行。当用户第一次点击鼠标后, TimeSensor内的enabled值变成FALSE, 时间检测器则停止运行。上面的程序中, 就是使用JavaScript程序不断地控制TimeSensor节点中的enabled字段的值, 使其在断和续之间不断循环。在每个cycleInterval周期的开始, 时间传感器发出fration_changed事件 (值为0) , 一个周期内, 浏览器允许传感器产生一个事件时 (通常每帧一次) , fration_changed的值从0增加到1, 1表明当前周期已完成, 新的周期开始。OrientationInterpolator节点用来描述一系列在动画中使用的旋转值。该节点不创建任何造型, 在一组SFRotation值之间进行插值, 通过使用该节点, 可以使造型旋转。OrientationInterpolator节点中的Key域的值指定了一张浮点时刻关键值列表, 与从TimeSensor接受到的set_fraction对应。时刻值一般在0.0和1.0之间取值。keyValue域的值指定了一个旋转关键值的列表。每一个旋转关键值是一个4个值的组。前三个值指定了一个旋转轴的X、Y和Z分量, 第四个值指定了旋转轴的一个旋转角度。当入事件set_fraction接受到一个时刻值时, OrientationInterpolator节点根据关键时刻列表和与其对应的关键旋转值列表, 计算出一个关键旋转值子列表, 并通过value_changed事件出口输出新算出的旋转列表。该旋转列表中的值经过路由传递到实体风车的叶, 风车就按该旋转列表所规定的方向进行转动。
4 结论
虚拟现实建模语言VRML的设计源于虚拟现实技术。与其他在Web中实现虚拟现实环境的实现技术相比, 在构建Web虚拟场景方面, VRML具有很强的能力。并且, 可以嵌入Java、JavaScript等语言, 其表现能力得到极大的扩充, 不仅仅限于虚拟的三维场景, 还能实现动画, 更为重要的是, 它能够实现人机交互, 形成更为逼真的虚拟环境。
VRML的出现及其发展改变了网络的二维平面世界, 实现真正的三维立体网络世界、动态交互与智能感知, 是计算机网络、多媒体技术与人工智能等技术的完美结合, 已成为把握未来网络、多媒体及人工智能的关键技术。
参考文献
[1]吴启迪.系统仿真与虚拟现实[M].北京:化学工业出版社, 2002.10.
[2]严子翔.VRML虚拟现实网页语言[M].北京:清华大学出版社, 2001.8.
[3]申蔚, 夏立文.虚拟现实技术[M].北京:北京希望电子出版社, 2002.9.
[4]韦有双, 杨湘龙, 王飞.虚拟现实与系统仿真[M].北京:国防工业出版社, 2004.1.
[5]胡小强.虚拟现实技术[M].北京:北京邮电大学出版社, 2005.7.
[6]赛博科技工作室.VRML与JAVA编程技术[M].北京:人民邮电出版社, 2002.1.
[7]白忠建, 敬万均.VRML教学演示系统[J].计算机应用, 2000增刊, 20 (8) :250-252.
[8]唐军芳, 赵方.基于VRML的多媒体课件制作[J].浙江树人大学学报, 2006, 6 (1) :13-16.
[9]洪炳熔, 蔡则苏, 唐好选.虚拟现实及其应用[M].北京:国防工业出版社, 2005.5.
基于网页的虚拟现实 篇4
摘 要:Web开发技术是Internet应用的一个重要方面,而JSP又是Web开发的最先进的技术,是当前Web开发人员的首选技术。但是由于JSP对Web开发人员要求较高,所以许多一般的Web开发人员还不能够使用这一项先进的技术。讨论基于模板和标签库的JSP网页自动生成工具的设计和实现,提出具体的设计思想和实现方法。
关键词:JSP;自动生成;Web开发;标签;标签库;模板
目录:
引言…………………………………………………………………..2
1系统设计目标和使用的主要技术……………………………….4
1.1设计目标………………………………………………………4
1.2主要技术………………………………………………………4
1.2.1模板技术………………………………………………….4
1.2.2标签库技术……………………………………………….4
2系统的组成和实现……………………………………………….6
2.1系统组成………………………………………………………6
2.2系统的实现……………………………………………………7
2.2.1模板库和标签库的实现………………………………….7
2.2.2系统开发环境…………………………………………….11
3结束语…………………………………………………………….11
引言
随着WWW(World Wide Web)的普及,动态网页技术也急速发展。从原来的CGI(Common Gateway In-terface)到ASP(Active Server Page),都从某种程度上满足了网页开发人员对动态网页开发技术的需求。但是不管是CGI还是ASP都存在一定的局限性,如CGI对服务器资源的耗费,ASP只能同Microsoft IIS一起使用等,这些都限制了这些技术的使用范围,极大地阻碍了它们的推广。广大的页面开发人员都热切地盼望一种统一的页面开发技术,该技术应该具有的特点:①与操作平台无关,能够在任何Web或应用程序服务器上运行;②将应用程序逻辑和页面显示分离;③提供代码重用,简化开发基于Web的交互式应用程序的过程。
JSP(Java Server Page)技术就是被设计用来满足这样的要求的。JSP是由Sun MicroSystem公司于1999年6月推出的新的网页开发技术,它是基于Java Serv-let以及整个Java体系的Web开发技术,是Servlet2.1API的扩展。利用这一技术,可以建立先进、安全和跨平台的动态网站。
Java是未来的主流开发技术,具有很多优势。JSP则是Java在Internet/Intranet Web上的重要应用技术,得到了广泛的支持和承认,它可以和各种Java技术完好地结合在一起,从而实现非常复杂的应用。
作为一种基于文本的、以显示为中心的开发技术,JSP提供了Java Servlet的所有好处。为了做到逻辑功能和显示功能分开,JSP已经可以和JavaBeans、Enterprise JavaBeans(EJB)和Servlet一起工作。JSP的开发人员可以通过使用JavaBeans、EJB和Servlet来完成大部分与网站逻辑相关的工作,而仅仅把显示的工作交给JSP页面来完成。内容和显示逻辑分开的好处在于,更新页面外观的人员不必懂得Java代码,而更新Java类的人员也不必是设计网页的行家。这就可以用带Java类的JSP页面来定义Web模板,以建立一个具有相似外观的页面组成的网站。Java类完成数据提供,在模板中就没有Java代码,这意味着这些模板可以由一个HTML编写人员来维护。
JSP作为当前主流的网页开发技术,具有如下特点。
1)将内容的生成和显示进行分离:使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终的页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和JavaBeans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
2)强调可重用的组件:绝大多数JSP页面依赖于可重用的、跨平台的组件来完成应用程序所要求的更为复杂的处理。得益于Java的操作平台无关性,开发人员能够很方便共享和交流执行普通操作的组件,或者使得这些组件为更多的使用者所使用。基于组件的方法加速了总体的开发过程,极大地提高了项目整体开发的效率。
虽然JSP功能强大,但是它要求网页开发人员对Java要相当熟悉。而现在Java程序员还比较少,对一般的网页开发人员来说,JSP的语法还是比较难于掌握的。所以,就需要有一种网页开发工具,为一般的网页开发人员提供常用的JSP应用,让只懂得一般页面开发技术(HTML)的开发人员也能够使用JSP的强大功能。
1 系统设计目标和使用的主要技术
1.1 设计目标
本系统的设计目标是为只懂得HTML但完全不了解JSP的一般网页开发人员提供一个网页开发工具,使他们能够根据系统文档,通过标签使用JSP的常用功能,最后生成一个只包含静态HTML和JSP标签的动态JSP
网页。
1.2 主要技术
本系统在设计时,主要考虑使用模板和JSP标签的技术来实现。
1.2.1 模板技术
模板技术被广泛地应用于各种开发和应用系统中。它预先生成一些常用的框架结构,使用户可以根据自己的需要方便地从模板库中选择模板,而不用自己重新去搭建,节省了用户的开发时间,方便了用户的使用。在本系统中,将页面按照功能类型进行分类,归纳出常用的页面类型,生成模板库。
1.2.2 标签库技术
在JSP中,动作是可以创造与访问程序语言对象和影响输出流的元素。JSP定义了六个标准的动作。除了这六个标准动作以外,用户可以定义自己的动作来完成特定的功能。这些动作被称为客户化动作,它们是可重用的程序模块。通过这些动作,程序员就可以在JSP页面中把页面的显示功能也部分地封装起来,使整个页面更加简洁和易于维护。在一个JSP页面中,这些客户化动作是通过客户化标签来调用的。而标签库(Tag Library)就是客户化标签的集合。
JSP标签库是一种通过JavaBeans生成基于XML的脚本的方法。它是JSP的最大特点之一。通过标签库,能够无限制地扩展JSP应用,完成任何复杂的应用需求。
JSP标签库具有以下特点。
1)易于使用:JSP中的标签和一般的HTML标记外表上是完全一样的,使用起来和普通的HTML标记一样方便。
2)易于代码重用:标签库中的每一个标签都能完成一定的功能。一旦定义好了一个标签库,只需要把这个标签库包装成一个Jar文件,那么以后只要在别的系统中使用这个标签库就行了,而不用重新开发代码,极大地提高了系统开发效率,降低了开发成本。
3)易于代码维护:所有的`应用逻辑都封装在标签处理器和JavaBeans中,所有的标签都集中在一个标签库中。如果需要更新代码或者需要修改一个网页上的功能,只需要修改相应的标签即可。通过这种统一维护方式,不用在每个网页上去作修改,极大地减少了维护的工作量,节约了维护成本。
4)易于系统扩充:如果需要向系统中添加新的功能,只需要定义一个新的标签来完成这一功能即可,无需对系统的其它方面作任何改动。标签库可以继承JSP规范各方面的特性。这样就可以无限制地扩展和增加JSP的功能,而不需要等待下一版本JSP的出现。
2 系统的组成和实现
2.1 系统组成
本系统主要由四个部分组成,见图1。
1)数据库连接部分:本系统支持常用的几个数据库,包括Oracle、Sybase、MSSQLServer、MySQL和DB2,根据用户选择的数据库类型和用户提供的数据库名称、用户名、密码使用JDBC同数据库相连。
2)系统基本表生成部分:和数据库连接以后,根据同数据库相连的用户名生成两个系统基本表TC-Tables和TC-Columns,TC-Tables表包含在该数据库中属于该用户的所有的表的英文名称、中文名称和一些属性,如是否可修改、是否可查询等;TC-Columns表包含在该数据库中属于该用户的所有的表的所有列的中英文名称和其它一些属性。如是否可显示、是否可查询等。这两个系统基本表在整个系统的开发过程中提供用户所使用数据库的基本信息。
3)模板选择和网页生成部分:该部分是系统的核心部分。它包含了两个子模块。
①模板选择部分:系统为用户提供模板选择界面,让用户根据需要从模板库中选择所要使用的模板。
②模板处理部分:根据用户选择的模板,系统调用指定的模板处理模块对这个模板进行处理。当处理程序遇到模板中的标签时,就为用户提供交互界面,让用户为指定的标签输入参数,并由系统验证用户输入的标签的有效性。最后由系统完成JSP页面的生成。
4)网页预览和修改部分:网页生成出来以后,系统为用户提供了一个网页预览窗口和代码查看修改窗口。通过这个预览窗口,用户可以预览一下生成出来的JSP页面的效果。如果用户对页面的静态方面的效果不太满意,用户可以通过代码查看修改窗口修改代码中的HTML代码。如果用户对页面的静态效果有进一步的要求,系统还为用户提供了一个调用DreamWeaver编辑器的接口,用户可以使用它来对生成出来的JSP页面的静态效果进行进一步的修改和完善。
2.2 系统的实现
2.2.1 模板库和标签库的实现
标签库的规划和设计在整个系统设计中至关重要,它关系到了代码重用的程度和系统运行的效率。它的规划应该遵循以下原则。
1)在标签中应该尽量少的包含静态的HTML。对于一般用户来说,标签是透明的。用户不能够查看和修改标签。如果在标签中包含了过多的静态HT-ML语句,将影响用户对页面的静态效果的修改和完善,限制标签的使用。
2)尽量提高代码的重用度。在对JSP应用进行分类是尽量把公用的JSP应用提取出来,形成标签。而不用在每个标签中都重复实现该应用。这样在以后要对该应用进行修改和完善时,只需对这一个标签进行修改即可,易于代码的维护。
3)方便用户的使用。在设计标签库时,应该充分考虑到用户的使用情况,使用户能够很容易和方便地理解和使用标签。
①标签库的定义:定义一个标签库,必须首先定义一个标签库描述文件(TLD)。这是一个基于XML的脚本文件,在这个文件中定义了XML的版本、所使用的编码、标签库的版本、所使用的JSP的版本、标签库的名称和这个库中所包含的所有的标签的定义和参数描述,包括标签的名称,标签所对应的Java类,标签的描述信息等。
②标签的实现:一个标签就是一个特殊的Java
类,这个类必须继承TagSupport类,这个类是在javax.servlet.jsp.tagext包中定义的。在标签类中,包含了这个标签的参数初始化方法(Set/Get)、标签的主体处理方法(Handler)以及供下一级标签调用的方法等。
③模板的实现:一个模板就是一个含有标签引用的JSP文件。为了在模板中引用所定义的标签,必须首先引入标签库。
<%@taglib uri=“tag.tld”prefix=“ctag”%>
其中uri指定标签库描述文件的路径;prefix指定引用标签时所使用的前缀。
在模板中引用指定的标签时,使用引入标签库时所指定的前缀,指定标签的名称;为标签的参数赋值。
2.2.2 系统开发环境
本系统主体程序开发使用的是Borland公司的JBuilder 6.0,模板开发使用是Microsoft公司的Front-Page2000,标签库
开发使用的是UltraEdit编辑器,JDK采用的是JDK1.4。系统测试环境是JRun3.0。
3 结束语
Java是未来开发语言的主流,而Java在Web上的主要应用JSP也必将成为未来Web开发的主流技术。本系统采用了JSP的最大特点之一的标签库,使一般的Web开发人员也能够方便地使用JSP强大的动态页面功能,开发出技术先进的JSP动态Web页面。由于本系统采用Java语言进行开发,所以可以在任何支持图形化界面的操作系统下运行,实现了完全的与平台无关。本系统易于扩充和完善。在以后可以考虑为用户提供接口,使用户可以自己扩充模板库和标签库,进一步增强系统的功能。
参考文献
[1] Cay S.Horstmann,Gary Cornell.Java 2核心技术(CoreJava 2)[M].北京:机械工业出版社.
[2] Bruce Eckel.Java编程思想(Thinking in Java)[M].北京:机械工业出版社.
[3] Joseph L.Weber.Java 2编程详解(Using Java 2)[M].北京:电子工业出版社.
基于云的网页漏洞检测分析 篇5
系统特色
Web Trideamon漏洞检测系统继承了分布式计算快速高效的特点,进一步利用云计算思想使之在安全和实时性上有所提高,可跨平台运行,并与用户的操作系统无关,提供了简单的漏洞扫描插件,及开发者各种开发接口,具有很好的扩展性。
本系统本着功能完整、设计实现高效、用户使用简单的目的,采用自上而下的模块间调用和系统调用,软件在可用性、性能和执行效率上都有了很大的提高。此外,在网页浏览器上提供了帮助文档,用户可以很快的掌握本系统的使用方法。
系统架构与实现
1系统总体架构
系统由三类服务端构成:前台用户端,后台服务端和后台工作端,对应于三大块程序:前台用户界面服务、后台服务端守护程序,后台工作端守护程序。可以看出,系统的各部分都是以服务的形式运行的,这样即使只有一台主机,也能通过同时开启前台用户端、后台服务端、后台工作端来临时作为单机的Web漏洞扫描软件工作。
2前台架构与实现
前台使用了Jsp+Servlet+Hibernate实现了经典的MVC架构,由Jsp负责视图层,负责显示数据以及获得用户输入参数,由Servlet负责控制器层,负责与后台服务器交互发送接收信息,由Hibernate负责模型层,负责存取用户数据和历史数据。通过这样的架构,使得代码简单且易于维护,只需要简单修改视图层的Jsp页面即可添加新的插件,实现后台和前台插件的一致。
3模块化架构与实现
本系统后台的服务端与工作端皆继承于一个基础的守护进程模板:Trident Daemon,这个守护进程结构如图1,通过此结构很好地实现了可扩展性支持。
Trident Daemon关键代码如下:
在以上代码中,存放于Admin Res中的pluginlist是实现插件调用的关键结构,一旦有插件调用请求,Dispatcher Thread就会查找pluginlist并执行相应的模块:
以上代码展示了Dispatcher Thread查找插件、判断权限,赋予资源的全过程。
分布式架构与实现
计算网站所需工作端个数流程如图2
关键代码如下:
通过任务分配、以及工作端数量限制完成在服务端的分布式算法。
通信架构与实现
图4为系统的简化模型,为了完成系统内的通信,需要处理是前台和后台通信以及后台服务端、工作端间的的通信、工作端与工作端间的通信。
开发中,所有的通信都是通过一种固定结构来完成的,如图6,func为调用的插件名称,msg为一个保留的识别段,用于数据确认等,param是为插件提供的额外参数,大部分系统调度都是通过插件的形式实现的。
通过socket和json两重封装,实现了系统内部的数据通信,为了方便服务端解析,在开发过程中也用http来封装提交往前台的数据,这样为前台的开发提供了便利(见图7)。
结语
基于统计的网页净化模板生成算法 篇6
关键词:网页净化,信息提取,单边子树
目前基于网页的应用和研究越来越多,各种Web应用,如搜索引擎、Web数据挖掘等,都把网页作为数据源来处理,在处理过程中发现网页中很多数据反复出现,而这些数据又不是在应用中需要的,它们的出现为研究带来了极大的阻碍。对网页单独研究后发现,网页可以根据版面和数据划分为主题内容和噪音内容,前者为Web应用提供收敛后的数据源,有助于提高应用和研究的效率,后者主要由广告、版权说明和导航条构成,是妨碍应用和研究的脏数据。在Web应用之前消除页面的噪音内容,只保留主题内容,从而提高应用和研究的效率。基于此的一个研究领域,Noisy Information Elimination,发展起来,国内学者称之为“HTML页面净化”[1]或者“Web页面区域划分和主题区域搜索”[2]。
要对大量网页实现高效净化,最好的方法是能够生成一个网站的模板,这个模板可用于该网站内所有网页的净化工作。在文献[3]中这种方法称为多模型网页去燥方法,常见的此类方法有文献[4,5,6]。通过对网页观察发现:网页的主题内容包含的文字数量远远大于其它噪音区域的文字数量,也就是说文字数量越多的区域越有可能是主题内容所在的区域。基于此,提出一种基于文字统计的网页净化模板生成算法,可以准确生成各类网站的净化模板。
1基于统计的网页净化模板生成算法
1.1算法基础
1.1.1内容块树
DOM全称是Document Object Model (文档对象模型),定义了一组与平台和语言无关的接口,以便程序和脚本能够动态访问和修改XML文档内容、结构及样式。XML创建了标识,而DOM的作用就是告诉程序如何操作和显示这些标识。HTML是一种表示语言,它定义了一套标签来刻画网页显示时的页面布局,HTML网页结构最常用的表示方法是构造网页的标签树。格式化后的HTML网页就是一个标准的XML文档,通过DOM这种标签树构造工具将网页中的标签按照嵌套关系整理成树状结构,即将网页标签称树内的节点,嵌套的网页标签称该节点下的子节点。网页被转换为由HTML节点构成的标签树,也就是DOM树。
HTML标签按照功能可以划分为两类:一种是规划网页布局的标签,也叫容器标签,这类标签把网页从视觉上划分为若干个内容块,常用的容器标签有table、tr、td、p.div、span等;另一种是描述标签,如a、img等[1]。提取网页DOM标签树中的容器标签,去除描述标签,构成一个网页的DOM树变种,在文献[7]中称之为内容块树,网页中的重要内容就存在于内容块树中的某个内容块中。
1.1.2单边子树UST&重要单边子树PUST&站点重要单边子树SPUST
单边子树UST (Unilateral SubTree)是对网页重要内容区域进行结构化描述的一条DOM树,是网页去除噪音内容,只保留需要的重要内容之后的内容块树。定义如下。
定义1内容块树的同级节点中,只保留字数最多的一个节点,当多个节点字数一样且字数最多,则从其中随机抽取一个节点保留,由此构成的一个内容块树叫做单边子树UST。
同级节点是指拥有同一个父节点的所有子节点,节点字数是指节点去除内部HTML标签之后所包含的文字字数。图1中一个网页的内容块树转变为UST,图中Tablel和Table2都是Table标签,在同名标签后面加上数字以方便区分。左图是内容块树,所有元素节点基于容器标签生成,每个节点带有一个属性为该节点里面的所有非标签文字的字数总和;右图是经过内容块树的同级节点字数比较后生成的UST,图中Root只是表示树根,不是元素节点,图中的二级节点是两个Table元素节点,其中Table2包含字数2200,大于它的其它同级元素节点所包含的字数,所以这个Table元素节点被保留,同理,三级节点中Span元素节点包含的字数大于同级节点Divl包含的字数,则Span元素节点被保留,以此类推,最终得出右图的UST。
重要单边子树PUST (Primary Unilateral SubTree)是多个网页的内容块树训练然后合并的结果,是多个UST基于统计得到的另一个UST。PUST基于统计生成,是一组UST依据统计得出的最优化UST。其定义如下:
定义2一组UST合并得到一个DOM树,这个DOM树的同级节点中只保留出现次数最多的节点,这些节点构成的一个内容块树叫做重要单边子树PUST。
选取一组网页生成一组相应的USTs,如图2(a)所示。这组USTs合并后得到一个DOM树,见图2(b),该树的每个元素节点有两个属性:合并过程中该节点出现的次数,该节点包含字数的平均值。在这个DOM树的所有同级节点中进行比较,出现次数最多的保留,由此得到一个UST,这个UST就是需要的重要单边子树PUST,见图2(c)。站点重要单边子树SPUST (Site Primary Unilateral SubTree)是站点所有网页的重要内容在DOM树中的体现,是在PUST的基础上进一步优化得到的。其定义如下。
定义3 PUST中除Body节点外的所有节点与其父节点的字数对比,当某个比值低于一个阈值的时候,认为这个节点的父节点所包含的内容是且仅是网页的重要内容。
如图2(b)PUST所示,其所有节点与父节点的字数比为:Table2/Body=0.8,Span/Table2=0.89,Div2/Span=0.18。给阈值λ赋值0.3。因为Div2节点与其父节点的比值0.18远远低于预定义阈值λ,那么Div2的父节点,也就是Span节点所包含的内容是且仅是网页的重要内容。由此得到站点的SPUST,就是在图2(b) PUST的基础上去掉Div2以及其子节点后剩余的其它节点所构成的DOM树。
1.2算法
通过对大量网页研究发现网页的主要内容可以基于以下假设得到:
(1)网页内容块树的同级节点中包含字数最多的节点重要性最高;
(2)网页对应DOM树的重要内容节点如果有子节点,包含最多字数的子节点与该节点之间的比值必然低于一个阈值λ。
基于假设(1)可以提取一个网页的重要内容并生成相应的UST,基于假设(2)可以在PUST的基础上剔除重要内容区域对应节点下面的子节点,得到完整的重要内容节点,并生成SPUST。
算法分为三步完成:
(1)从网站的待处理网页中取一组作为训练集,参考文献[7],由这组网页生成相对应的一组内容块树;
(2)训练这些内容块树,通过算法1生成每个内容块树的UST;
(3)合并这一组UST,通过算法2计算得到PUST,从PUST的叶子节点开始,比较子节点和父节点包含文字字数,当比值低于一个阈值λ时,删除子节点,由此最终得到网站的SPUST。
通过上述三步得到的SPUST作为一个网站的网页净化模板树,该网站下所有网页生成的内容块树仅保留SPUST对应的节点,从而最终得到这些网页的重要内容所属节点,实现网页净化。
从网站中提取一组网页作为训练集,在其内容块树的基础上生成UST的算法如下:
合并一组UST并得到重要单边子树的算法如下:
2结束语
算法成功的评判标准是针对特定的网站能够生成正确SPUST,从而实现该网站的网页净化。选取50家网站,其中包括一些知名BBS论坛,每个网站下载100个网页作为对应网站的训练集。通过实验证明,对包含大量文字描述的网页,特别是文字新闻网页和BBS论坛,算法可以准确地生成站点的网页净化模板。但是因为本方法基于主题内容文字描述较多的假设,所以对一些主题内容区域文字描述较少的网页,特别是图片新闻网页,其净化效果不理想,这需要进一步完善算法,使其具有更强的适用性。
参考文献
[1]张志刚,陈静,李晓明.一种HTML网页净化方法.情报学报,2004;23(4):387-393
[2]胡飞.基于标记树的WEB页面区域划分方法.计算机科学, 2005:08:182-185
[3]毛先领,何靖,闫宏飞.网页去噪音:研究综述.计算机研究与发展,2010;47(12):2025-2036
[4] Gibson D,Punera K,Tomkins A.The volume and evolution of Web page templates.Proc of the 14th Int Conf on World Wide Web.New York:ACM,2005:830-839
[5] Yi L,Liu B,Li X.Eliminating noisy information in Web pages for data mining.Proc of the 9th ACM SIGKDD Int Conf on Knowledge Discovery and Data Mining.New York;ACM,2003:296-305
[6] Yi L,Liu B.Web page cleaning for Web mining through feature weighting.Proc of the 18th Int Joint Conf on Artificial Intelligence (IJCAI-03).San Francisco:Morgan Kaufmann,2003:43-50
基于网页的虚拟现实 篇7
控制字符是在网页当中插入的, 但是在浏览网页时看不到的字符。在实际网页源代码中控制字符是存在的, 包括一些空白位和特殊字符。在ASCII码字符中一共存在33个控制字符, 它们的ACSII编码分别是0-31和127, 其中1-8和14-31是特殊字符, 0是null空值, 32是空白符。如:DEL (删除) 、BS (退格) 、BEL (振铃) 、LF (换行) 、CR (回车) 、FF (换页) 等;通信控制专用字符:SOH (文头) 、EOT (文尾) 、ACK (确认) 等;ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符。它们当中没有特定的图形显示, 但会依不同的应用程序, 而对文本显示有不同的影响。将所有控制字符定义为一组:Si={i=[0-31]}。
如果普通的字符可以转换为控制字符中的一个, 那么就可以将秘密信息嵌入所操作的网页中。控制字符在ASCII字符集中最大的编码是32, 但是其他可见字符则大于这个值, 字母和数字在ASCII中就都在后面, 数字“1”是49, 字母“a”是97。因此, 秘密信息需要转换成控制字符才能进行隐藏。
下面定义一个转换阀值, R=M-T
其中M是控制字符S的ASCII编码, T是转换阀值, 通过这一转换阀值将秘密信息的二进制位进行转换, R就是秘密信息经过转换后的ASCII编码。
假设R被随机的分为两段代码, 即R1和R2, R=R1+R2。
那么, 通过转换阈值T和控制字符的两段代码R1和R2, 可以对秘密信息进行隐藏了。网页信息隐藏技术分为两个阶段, 即网页的发送和接收, 在网页发送前将秘密信息嵌入其中, 当浏览器从网络接收到网页后, 将秘密信息提取出来, 详细过程如图1-1所示:
二、算法的设计
1、字符转换算法的设计
需要隐藏的秘密信息需要使用相应的方法转换成隐藏字符, 普通字符选择的范围是大写的字母A-Z, 小写的字母a-z, 数字0-9, 以及空格, 所以秘密信息可以是一串带有空格的字符。
具体应用举例如下:字母z的ASCII十进制编码是122, 所以M=122, T=60, R=62。这时候R需要分成两个31, 其对应的控制字符则是单元分隔符。而空白键则可以直接嵌入。
在秘密信息转换完成之后, 就进入了信息的嵌入和提取过程。秘密信息S的ASCII代码描述为如下公式:
转换阀值T, 可以描述为如下公式:
那么转换结果, 可以按如下公式获取:
另外, 在通过提取算法的执行得到ASCII代码的过程中:
在秘密信息提取的阶段, T可做如下定义:
2、嵌入算法的设计
嵌入算法的作用是这样的, 将需要隐藏的秘密信息嵌入到一个网页当中, 生成另外一个新的网页。
输入内容:秘密信息S=s1s2s3…sn, 原始网页为WEB1, 该网页可以嵌入信息的数量为n。
输出内容:生成一个带有秘密信息的网页WEB2。
秘密信息的嵌入算法如下:
(1) 将秘密信息S按照公式 (n1) 转换为ASCII代码M (M=m1m2m3…mn) ;
(2) 通过公式 (n2) 和 (n3) 得到R的值R (R={ri (i=0, 1, 2, …, n) }) ;
(3) i赋值为0;按照顺序从H中读取一个代码ri;
(4) 从网页WEB1中读取一行L;检查L这一行中存在的标记语言, 如果存在就继续往下执行, 不存在返回步骤;
(5) 重新读取一行;计算ri1和ri2的值, 通过ri1和ri2的值确定ri=ri1+ri2;
(6) 从</Ti>到</Tiri1ri2>更新行L中的标记, 这里的<Ti>是HTML标记语言中的一种标记;同时i赋值为i=i+1, 返回步骤 (4) 循环执行, 直到全部完成, 继续往下;获得新的网页WEB2。
通过此算法后, WEB1和WEB2两个网页在浏览器中显示是完全一样的, 没有任何区别, 用户在查看网页时, 不能察觉到隐藏信息的存在。
3、提取算法的设计
当接收端在通过网络从服务器中接收到网页WEB2后, 需要将秘密信息从网页中提取出来。在提取秘密信息时需要进行字符重组和信息融合。
提取算法的作用就是将秘密信息从网页中提取出来。
输入内容:携带有秘密信息的网页WEB2,
输出内容:秘密信息S。
秘密信息的提取算法如下:
(1) i赋值为0;从网页WEB2中读取一行L‘;
(2) 检查L‘这一行中存在的标记语言, 如果存在就继续往下执行, 不存在返回重新读取一行;
(3) 从标记语言</Tiri1ri2>中分离出ri1和ri2, 并去除标记中ri1和ri2的值;
(4) 通过计算ri=ri1+ri2, 得到ri的值;依照前面的公式 (n4) 和 (n5) , 得到ASCII代码mi;从ai的ASCII代码得出字符si;
(5) i赋值为i=i+1, 如果到了网页WEB2的末尾, 往下执行步骤 (6) , 不是末尾则返回步骤 (2) 继续读取;
(6) 提取算法全部完成后, 得到完整的秘密信息字符串S=s1s2s3…sn;
三、算法程序的实现与分析
1、算法程序的实现
算法的实现是通过C#编程来实现的, 图1-2显示了基于控制字符的网页信息隐藏技术主界面。
首先定义两个函数, 分别是asc () 和rasc () , 函数asc () 的作用是将秘密信息的字符转换为ASCII代码十进制, rasc () 作用相反, 将十进制数字转换为相应的ASCII字符。
2、隐藏算法性能的分析
这里主要从隐藏的容量和隐藏误码率来分析该网页信息隐藏算法的性能。
(1) 字符隐藏效果的计算
字符隐藏效果指的是, 字符在嵌入到提取的过程中, 反映字符精确性的指标, 主要指的是有没有产生误码。假设秘密信息S的ASCII代码代码是A=a1a2a3…an, 在经过传输后, 通过提取算法将秘密信息提取后的信息为A′=a′1a′2a′3…a′n, 隐藏字符误码率Q如下公式所示:
(2) 隐藏容量的计算
在基于控制字符的网页信息隐藏方法中, 每一个可用的超文本标记都可以隐藏一个字符, 如果在网页WEB1中可用的超文本标记的数量为n, 那么信息隐藏的容量V就是:
当然这个隐藏的容量只是一个理论值, 在具体的使用过程中, 是不可能利用网页中所有的超文本标记来进行信息隐藏的。另外, 每一个字符都可以被转为一个8位的二进制位, 就现存的基于标记的嵌入方法而言, 一个标记可以隐藏两个字符, 那么通过信息隐藏容量的计算, 基于控制字符的网页信息隐藏方法的隐藏容量是其他同类隐藏方法的4倍。
四、结语
本文通过三方面来探讨基于“控制字符”网页信息的隐藏技术, 对于“控制字符”网页信息的隐藏技术原理进行详细描述, 同时对隐藏技术的算法设计全面剖析, 最后通过算法程序来进行验证隐藏技术算法。
参考文献
[1]孙圣和, 陆哲明等, 数字水印技术及应用[M]北京.科学教育出版社, 2004.
[2]姚晓枝基于两种不同载体的信息隐藏方法研究[D]上海.复旦大学, 2008.
基于视觉热区的网页内容抽取方法 篇8
随着Internet的快速发展,网络上丰富的信息在给互联网用户带来便利的同时,也给用户带来困惑。用户即使通过搜索引擎,想在海量的信息库中快速准确找到自己需要的信息也不是一件容易的事情。原因在于网页除了正文内容外还掺杂了很多用户不需要的噪声数据,如导航链接、广告链接、版权信息以及与网页主题相关不大的推荐链接等。这些噪声数据的存在,影响了用户对主题内容的判断。因此,如何从包含大量噪音内容的网页中将正文信息精确、完整地提取出来成为众多研究者研究的课题。
1 相关研究与技术
在Web信息抽取领域,已经有大量的研究工作。Lixto[1]提供包装器编程语言与可视化平台帮助用户构建抽取程序。包装器归纳方法采用有监督学习来从一组手工标注的正例和负例中学习抽取规则,样例系统如IDE[2]。这两种方法,需要人的主观经验才能达到较为理想的效果,自动抽取正文内容程度不高。文献[3]利用DOM树提取网页信息,这是本文构成正文信息块的基础。微软亚洲研究院提出的VIPS(Vision-based Page Segmentation)算法[4]利用背景颜色、字体颜色和大小、边框、逻辑块和逻辑块之间的间距等视觉特征,通过制定相应的规则把页面分成了各个视觉信息块。但各视觉特征的权重不好把握。文献[5]计算出每个标签的位置信息,对页面进行分割,从该文可知标签位置信息是网页视觉的一个重要特征。文献[6,7]均充分利用网页的布局特征作为主题信息块抽取的重要依据,这种从网页布局角度出发,对Html标签进行分析的思想值得本文借鉴。
网页设计者在设计网页时一般把重要内容放在网页中心位置附近的区域,即网页视觉热区,次要与无关内容一般远离网页视觉热区,这也符合网页用户的阅读习惯。因此本文在文献[3,4]的基础上,充分借鉴文献[5,6,7]的思想,利用网页的布局特征和网页视觉热区来提取网页正文信息。
2 网页视觉热区抽取模型
2.1 网页布局技术
网页布局主要分为表格布局和CSS布局。表格布局利用html中的<table>标签和图片对网页进行布局,把页面结构和表现混杂在一起。采用CSS布局采用<div>标签,能实现Html网页结构与外观分离,使站点的访问及维护更加容易。虽说W3C推荐使用CSS布局,但由于表格布局使用较早,许多网站仍采用该技术。因此可推出网页信息块必然存在于<table>标签和<div>标签之间,在视觉上为一矩形区域,这是形成本文候选正文信息块的基础。
2.2 候选正文信息块
位于在<table>标签或<div>标签之间可能成为网页正文信息的区域,可利用文献[3]的DOM树获取<table>和<div>节点,这些节点可构成候选正文信息块。
2.3 网页视觉热区和网页视觉热区焦点
(1) 网页视觉热区
网页访问者在访问网页时,注意力必然集中在网页中某一区域,该区域被称为网页视觉热区。根据经验,网页视觉热区处于网页中间区域。
(2) 网页视觉焦点
即网页视觉热区的中心点。
(3) 数学定义
若网页的高度h与宽度w,根据经验可给出网页视觉热区焦点坐标为(w/2,h/2),视觉热区宽度为2w/3,高度为2h/3。网页视觉热区和网页视觉焦点如图1所示。
2.4 正文信息块数学抽取模型
设网页视觉热区hot焦点坐标为(x0,y0),视觉热区宽度为w0,高度为h0,则左上角点坐标为(x0-w0/2,y0-h0/2),右下角点坐标为(x0+w0/2,y0+h0/2)。设候选正文信息块Ci左上角点坐标为(xi,yi),候选正文信息块宽度wi,高度为hi,则右下角点坐标为(xi+wi,yi+hi)。 设视觉热区与候选正文信息块相交区域左上角点坐标为(minx,miny),右下角点坐标为(maxx,maxy),可以推出:
minx=max(x0-w0/2,xi) (1)
miny=max(y0-h0/2,yi) (2)
maxx=min(x0+w0/2,xi+wi) (3)
maxy=min(y0+h0/2,yi+hi) (4)
根据式(1)至式(4),推导出视觉热区与候选正文信息块相交区域面积为:
当minx>maxx或miny>maxy
area(hot,Ci)=0
否则:
area(hot,Ci)=(maxx-minx)×(maxy-miny) (5)
给出候选正文信息块重要度函数sig(hot,ci)=area(hot,Ci)/(w0×h0),sig(hot,ci)是该候选正文信息块和视觉热区相交面积与整个视觉热区面积的比,越大说明该候选正文信息块相对于视觉热区越重要,可作为正文信息的判别依据。
3 网页正文信息抽取算法
步骤1 输入网页,形成DOM树。候选正文信息集合C初始为空。
步骤2 利用DOM提供的属性offsetHeight和offsetWidth得出网页的高度h与宽度w,网页视觉热区hot焦点坐标为(w/2,h/2),视觉热区宽度为2w/3,高度为2h/3。利用文献[3]提取DOM树所有<table>标签和<div>标签所包含的区域加入到候选正文信息集合C中。
步骤3 根据DOM提供的属性offsetLeft、offsetTop、offsetWidth和offsetHeight,可推出新增的候选正文信息块Ci的左上角点坐标与右下角点坐标,根据第2.4节的数学模型计算出候选正文信息集合C中新增加的每个候选正文信息块重要度函数sig(hot,ci)=area(hot,Ci)/(w0×h0),当sig(hot,ci)=0将该候选正文信息块从候选正文信息集合C中直接删除,当sig(hot,ci)=1,说明候选正文信息块完全包含视觉热区,若其所包含的子标签均为段落标签(如 <p> 、 <br>等)则不需对该候选正文信息块进行分解,直接到步骤5,否则转到步骤4。
步骤4 提取需要进行分解的候选正文信息块的第一层所有子标签,将这些子标签所包含的区域加入到候选正文信息集合C中,转到步骤3。
步骤5 对候选正文信息集合C中的所有候选正文信息块按sig(hot,ci)的大小进行降序排列,sig(hot,ci)越大说明该候选正文信息块越重要。
4 基于视觉热区的网页内容抽取系统的实现
本文利用脚本语言Java Script结合DOM来实现基于视觉热区的网页内容抽取。具体实现如下:
实现步骤1输入待抽取的网页,获取网页的高度与宽度,确定视觉热区的焦点坐标、高度与宽度。网页高度h:document.body.offsetHeight
网页宽度w:document.body.offsetWidth
网页视觉热区hot焦点坐标为(w/2,h/2),视觉热区宽度为2w/3,高度为2h/3。
实现步骤2获取所有<table>标签和<div>标签,并将其加入到候选正文信息集合C中,计算出这些元素(从开始标签到结束标签的所有内容)的左上角点坐标与右下角点坐标。实现函数如下:
实现步骤3利用式(1)-式(5)计算出每个候选正文信息块重要度函数sig(hot,ci)。 接下来的实现步骤同本文第3节的步骤4-步骤5,最后抽取sig(hot,ci)值最大的候选正文信息块作为本网页的正文信息。
5 实验结果
随机抽取北京大学、清华大学、南京大学、南京师范大学等高校网站里的100篇网页进行测试。先根据本文算法获得的网页正文信息,然后通过人工判断抽取的正文信息质量,分为三个等级:(1)优:通过本文算法获取网页的正文信息与人的视觉判断一致; (2)满意:通过本文算法获取网页的正文信息基本与人的视觉判断一致,但多余或缺少部分信息;(3)差:通过本文算法获取网页的正文信息与人的视觉判断完全不一致,获得的是网页的噪音信息。并且使用准确率作为实验的性能测试参数,具体实验结果如表1所示。
从表1中可以看出,本文算法准确率达到了(71+23)/100=94%,说明本算法具有较高的抽取准确率和可用性。
与其他网页内容抽取方法相比,如文献[4,5,6,7]均需要大量的网页元素的特征,且这些网页元素特征量化主观性较强,不好把握。本文方法最大的优势在于只需网页元素的位置信息,数据计算量较小。只要先确定网页视觉焦点和网页视觉热区宽度与高度,然后利用DOM提供的属性获取每个候选正文信息块左上角点坐标和右下角点坐标,根据本文的候选正文信息块重要度函数就可以快速地计算出每个候选正文信息块的重要度,选取重要度最大的作为正文信息块。
6 结 语
本文对网页布局特征和网页视觉热区的正文信息抽取方法进行了研究,得出以下结论:
(1) 网页用户在访问网页时,注意力的焦点必然集中在网页中某一区域,该区域称为网页视觉热区。正文信息块必然占有视觉热区最大的一块区域,这是本文的出发点。
(2) 利用文献[3]得到候选正文信息块,在此基础上利用网页布局特征,将候选正文信息块事先确定的视觉热区相交,给出候选正文信息块重要度函数,通过该函数抽取正文信息。
实验结果表明本文算法的有效性,但视觉热区选择具有主观性,如何使视觉热区能根据不同网页自动调整,这需要进一步研究。
摘要:对网页抽取进行研究,提出一种新的网页正文信息提取方法,它利用网页布局特征与网页视觉热区来确定网页正文信息。首先选取网页的一部分区域作为网页视觉热区,通过文档对象模型得到候选正文信息块,在此基础上,给出候选正文信息块重要度函数确定网页正文信息。实验结果表明,该方法具有良好的性能。
关键词:布局特征,视觉热区,文档对象模型,候选正文信息块,重要度函数
参考文献
[1]Baumgartner R,Flesca S,Gottlob G.Visual web information extractionwith Lixto[C]//Proc.of the Intl.Conf.on Very Large Data Bases(VLDB’01),2001:119-128.
[2]Zhai Y,Liu B.Extracting Web Data Using Instance-Based Learning[C]//Proc.of the 6th Intl.Conf.on Web Information Systems Engi-neering(WISE’05),2005:318-331.
[3]Gupta S,Kaiser G,Neistadt D,et al.DOM-based Content Extraction ofHTML Documents[C]//proceedings 12th International World WideWeb Conference,2003.
[4]Cai D,Yu S,Wen J R,et al.VIPS:A vision-based page segmentation al-gorithm[R].Microsoft Technical Report,MSR-TR-2003-79.2003:10.
[5]陈翰生,曾剑平,张世永.一种基于位置信息的Web页面分割方法[J].计算机应用与软件,2009,26(7):155-159.
[6]韩先培,刘康,赵军.基于布局特征与语言特征的网页主要内容块发现[J].中文信息学报,2008(1).
基于网页的虚拟现实 篇9
关键词:网页界面,视觉导向,导向设计
用户界面设计是网页设计的重要组成部分。界面设计有以下几个基本的准则:界面的一致性、友好性、互动性。
1 网页界面设计中的视觉导向设计要素
1.1 页面布局的合理与统一
网页界面的布局设计没有一定的绝对的方式, 主要是从网站性质的开发需要、网站所表现的内容以及想要传达的信息考虑, 考虑适合表现、传播、开发等因素确定一种能够体现网站内容及主题的布局形式。
一般网站的网页布局设计方法是上左右式布局。这种布局的特征是通常在网页界面的上方设置为网站标志 (LOGO) 和主要的菜单导航条, 中部左侧为点击出现的细分栏目导航条和较主要的栏目及小广告等, 中部右侧为内容区域, 下方为网站相关版权信息。而电子商务、政府网站、教育机构比较喜欢的网页布局一般是上左中右布局或称为3分栏布局, 同上左右布局不同的是中间部分为内容区域, 右侧则是该网站较重要的内容导航区域, 或是登录、搜索区域、小广告等。
除页面布局合理统一外, 还要考虑页面尺寸的大小对用户浏览的影响。影响网页页面尺寸的因素有2个, 一个是显示器大小及分辨率, 另一个是用户使用的浏览器。目前常见的主流显示器的尺寸基本上在1 024×768及1 440×900之间。通常情况下, 页面以一屏能显示为好, 左右最好不拖动, 上下拖动一般不超过三屏, 目前一般常用的尺寸是:分辨率在800×600的情况下, 页面宽度应保持在778以内, 高度视版面内容决定, 全屏在778×432;分辨率在1 024×768的情况下, 页面宽度应保持在1 002以内, 高度视版面内容决定, 全屏在1 002×600。
除此之外, 还要考虑页面的整体设计对用户的心理影响。不同的形态会带给人们不同的视觉感受、心理感受, 如几何形体具有规整、秩序、严肃、稳定、单纯等特征, 有机形体有着勃勃生机、膨胀、优美、弹性等特征, 无规则形体则会有着具有人情味、温暖感、情趣性等特征, 矩形有有规则、稳定的感觉, 圆形代表着柔和、团结、温暖、安全等, 三角形代表着力量、权威、牢固、侵略等, 菱形代表着平衡、协调、公平。
1.2 界面元素的统一
网页界面中文字是较为主要的元素, 各级界面的文字的字体、字号、颜色、行距、字间距、排列方式等要统一, 如主要标题文字、二级标题文字、需要提醒的文字、具有超链接的文字、正文、标注文字、段落文字、公告文字等。其中必须重视的是文字必须是准确的, 文字的导向要考虑文字在不同的状态下出现的不同要求, 如具有超链接的文字最起码都具备正常、鼠标经过、鼠标点击的3个基本状态;静态的文字, 字体可以相对复杂、颜色可以多变、字号可以相对较小等, 动态的文字, 如在动画或在多媒体中出现或文字本身具有动态的效果, 文字字体就要简洁醒目, 字号要偏大, 文字内容要言简意赅。
1.3 元素功能性的统一
在网页界面设计中, 各种元素所承载的这些功能都必须有相同的操作方法。通过对这些元素的功能性的统一, 使用户在熟练使用了一个网页界面后, 切换到另外一个网页界面就能够很轻松的推测出各种功能, 让浏览过程变得轻松自然, 方便易用。
网页中的元素主要是图形和文字。在网页界面的设计当中, 我们往往不是做一两个界面, 而是有几十个甚至上百个的不同层级的界面, 我们就必须要把握住图形功能性表达统一。同时要注意避免与已经既有的、既定概念的图形标志混淆使用。如已经行业标准化、国家标准化、国际标准化的图标符号, 向公共信息图形符号、交通标志、安全标志、包装标志、环境保护标志、家用电器及办公设备、危险品等级图形标志、残疾人用图形符号。
网页界面中另外一个承载功能较多的就是文字元素了。在界面设计中, 必须要考虑让同个词语或同个字、同个句子所具备的功能是相同的。还有就是要把点击过或正在浏览的超链接与未点击过和未浏览过的超链接区分开来, 如可用不同的字体、字号及颜色等;图形链接可考虑采取不同的图形或者变为不可用状态、添加相关的提示等, 这样才有助于浏览用户理解整个网页。
2 网页界面设计中的视觉导向设计方法
2.1 直接使用静态文字、图形、图片等元素进行导向
这是最简单的一种视觉导向设计方法。其方法是在网页中需要的地方添加静态文字、图形、图片等元素, 并在该元素上添加页面的链接地址, 在用户浏览时鼠标指针在添加了链接的元素上变为手形, 单击后即可进入需要的网页。
这种导向设计方法简单, 适用范围广泛, 常用于网页当中的大量题目链接中, 如新闻标题、图片新闻、相关链接等处。
2.2 使用Dreamweaver的导航条来制作导向
网页中的导航条也是很重要的一种导向元素, Dreamweaver提供了插入导航条的功能, 利用该功能可以制作具有动感的导航条。
这种导航条通常具有4种状态——状态图像、鼠标经过时图像、按下图像和按下时鼠标经过图像, 其中“状态图像”是网页在被打开后的初始图像, “鼠标经过时图像”是浏览者将鼠标移动到导航条上时所显示的图像, “按下图像”是指鼠标按下时显示的图像, “按下时鼠标经过图像”是指鼠标点击后当鼠标再次移动到这个部位上时显示的图像。用这种方法制作导航条时通常和图形图像的编辑制作软件结合使用, 常用的方法是用图形图像编辑软件制作出大小相同、颜色不同的几类不同的图像 (依据导航条的数目而定) 。
一般地, 每部位只设一到两种状态的图像。因为图像太多了, 会影响网页页面的访问、浏览的速度。通常, 这种导航条横向放置在网页中LOGO的下方。
2.3 使用“行为”来使不同的导航在点击时出现不同的属性
另一种称为“行为”的机制, 可以帮助你构建页面中的交互行为。行为, 就是在网页中进行一系列动作, 通过这些动作实现用户与页面的交互。利用Dreamweaver的行为, 你不需要书写一行代码, 就可以实现丰富的动态页面效果, 达到用户与页面的交互。
Dreamweaver提供了一个“改变属性”的行为, 通过这个行为可以动态地改变对象属性, 比如图像的大小、文字的背景色等。如一段文字在静态时可以设计为一种背景色, 当鼠标移动到这段文字是时改变其背景色。
具体操作方法是:在“代码”窗口中, 为对象添加“DIV”标签, 单击行为面板中的加号按钮, 从弹出的菜单中选择“改变属性”命令, 设置“改变属性”对话框中的“对象类型”、“命名对象”、“属性选择”即可。
2.4 使用行为面板添加弹出式菜单导航
Dreamweaver提供了一个“显示弹出式菜单”的行为, 利用该行为可以添加弹出式的导航。
具体操作方法是:在“设计”窗口中, 选择需要添加弹出式子菜单对象, 单击行为面板中的加号按钮, 从弹出的菜单中选择“显示弹出式菜单”命令, 单击“显示弹出式菜单”对话框中的“继续”按钮后进行相关的设置即可。
参考文献
[1]曾广雄.中文Dreamweaver网页制作实例教程[M].北京:研究出版社, 2008:206.
[2]周奇.新编网页设计与制作教程[M].北京:研究出版社, 2008:185.
【基于网页的虚拟现实】推荐阅读:
基于网页07-25
基于学生生活现实06-11
基于虚拟仪器技术的激光接收器测试系统08-08
基于混合式绘制技术的分布式虚拟环境系统12-11
打开网页玩的网页游戏10-10
传奇的网页游戏09-21
网页的制作教案11-09
网页设计的学习08-01
网页制作的技术因素05-24
网页设计的色彩运用08-01