Web编程(精选3篇)
Web编程 篇1
1 概述
在互联网应用得到普及的今天, 网络上的文本资源十分丰富。为了增加网站的点击率, 网站管理人员通常会把这些文献资料以网页的形式保存在网站上供使用者浏览, 而不会提供直接的下载。为了能够离线阅读或者对文献资料做其他处理, 有时需要把这些资料下载下来保存在文本文件里。用VC++编程实现了Web文本资料的采集, 指定程序一个网址, 它就能够获取这个页面上的所有链接;并且把这些链接所指向的页面内容下载到指定的文件夹中。
2 功能实现
本程序的可视界面如图1所示, 使用这个程序时, 首先在地址栏中输入要采集的网页地址;然后点击“定位网页”命令按钮, 就会在对话框中间的Web浏览器中显示该网页;之后再指定保存文本文件的文件夹, 可以直接输入文件夹路径, 也可以通过“浏览”按钮来选择;最后点击“采集网页文本”命令按钮, 程序能够自动获得这个页面上的所有链接;把这些链接所指向的页面内容下载到指定文件夹中, 并且在最下面的列表控件中显示“链接名称”和“链接路径”。
3 Web文本资料采集的编程
(1) 打开VC6.0, 利用MFC AppWizard建立一个基于对话框的应用程序, 在工程名称中填入wle。在对话框中放置如图1所示的各个控件, 在表1中, 按照从左到右, 从上到下的顺序对这些控件的类型、ID、标题、相关变量、作用等作了具体的介绍。
(2) 在该工程的源文件wleDlg.cpp中添加3个头文件和一个全局变量:
(3) 打开类向导, 编辑对话框类CWleDlg的消息WM_INITDIALOG, 在return TRUE;之前添加下面几行代码:
(4) 给标题为“定位网页”的命令按钮添加单击消息, 代码如下:
(5) 给标题为“浏览”的命令按钮添加单击消息, 代码如下:
(6) 给标题为“采集网页文本”的命令按钮添加单击消息, 代码如下:
(7) “采集网页文本”命令按钮的单击消息中用到了函数saveHttpFile (strURL, newFile) , 所以要在“采集网页文本”命令按钮的单击消息之前先定义或声明函数int saveHttpFile (CString&strURL, CString&newFile) , 它的代码为:
4 结语
从文献资料网站confucius2000 (www.confucius2000.com) 、天涯在线书库 (www.tianyabook.com) 、梦远书城 (www.my285.com) 3个网站上选取了4种文献作为采集对象进行实验。实验结果显示, 4种文献的200多个网页全部被正确抓取, 用户使用网页清洗工具对这些文本再进行网页清洗后就能得到需要的文本资料。
参考文献
[1]陈小荷.现代汉语自动分析——Visual C++实现[M].北京:北京语言文化大学出版社, 2000.
[2]D.S.Malik著, 晏海华, 等, 译.C++编程——数据结构与程序设计方法.北京:电子工业出版社, 2003.
[3]梁水王家胜.视频学Visual C++.北京:人民邮电出版社, 2009.
Web编程 篇2
随着社会的发展,企业应用需求不断发展变化,同时也对软件各方面性能提出了越来越高的要求,软件编程方式经历了从最初的面向机器、到面向过程、再到面向对象,这些编程方法学的不断发展可以创建更加复杂的软件系统。面向对象编程相比传统编程模式在构建Web系统时显出了它的强大功能,成为了当前主流的编程。面向对象编程通过分析抽象出一系列具有一定属性与行为的实例,并通过这些实例之间的协作完成系统的功能,很好地解决了数据与操作模块化编程,然而随着软件系统的用户需求发展,面向对象编程日益显出自身的不足,面向对象编程技术中最重要的概念是类和对象。类对数据及其相关操作进行了封装,但也限制了设计开发的灵活性和系统的扩展性。针对面向对象编程的不足,人们提出了面向方面编程,它把实现类似日志这样的操作看作一个横切面,利用面向方面编程可以很好地解决这种横切问题,被专家认为是继面向对象编程之后编程学上又一场重大的革命,面向方面编程站在一个更高的角度分解应用系统,更接近真实世界架构系统,在此对面向方面编程在Web系统中的应用做了初步的探讨。
2 面向方面编程应用概况
面向方面编程概念最先是由Gregor Kiczales领导的施乐公司帕洛阿尔托研究中心于1997年提出,并随后又申请面向方面编程的专利。但是,面向方面编程思想早在1990年开始,研究人员就对面向对象思想的局限性进行了分析,形成了面向方面编程概念的雏形,甚至还有更早的时候就做过与面向方面编程类似思想和方法论的研究,IBM近年来也开始研究面向方面编程,如目前最成熟面向方面编程技术AspectJ语言也得到了IBM支持,Bea公司也推出了他们的面向方面编程框架Aspectz Work。面向方面编程正在逐渐形成一套完整的程序设计思想,各种平台面向方面编程的技术也应运而生。Java平台是面向方面编程应用最早的,也是目前运用最为成熟的,面向方面编程中常用的概念有连接点、切入点、通知、方面等。面向方面编程应用程序包括组件描述语言和方面描述语言。目前支持面向方面编程的语言有Aspect J、Aspect S、Aspect C等,其中Aspect J最为流行。
3 Web开发中的应用分析
3.1 Web系统的日志管理
当前,Web系统的应用越来越广泛。随着网络技术的快速发展,Web系统已经成为了目前最重要的基于文档的分布式系统。在社会的各个领域都发挥不可取代的作用。日志管理在现代软件系统中有着重要的地位,从各种操作系统到一般的应用程序,都能发现有关日志的模块或者功能。它可以记录下系统所产生的所有行为。在Web系统中,日志系统是必不可少的功能模块。下面以一个教务管理系统为例。在系统开发的分析阶段,我们首先识别出了系统的核心关注点和横切关注点,以期最后形成系统的相应主体模块。基于面向方面编程技术的日志管理模块实现AspectJ实现,这是一种用的比较广泛的方面描述语言,下面给出服务器端日志记录的部分AspectJ实现代码:
此Serverlog方面定义了2个切入点来自动捕捉org.apache.severaction.包的所有调用,并形成日志记录。这段代码的功能是通过定义了这样一个完整的aspect,当系统调用org.apache.severaction的相关方法时,就触发了pointcut,然后调用相应的advice逻辑,由上可知,采用基于面向方面编程的日志管理开发,结构清晰,易于维护。
3.2 Web系统的登录检查
下面再次用AspectJ定义一个名字为LoginCheckAOP的方面实现登录检查功能,代码如下:
通过测试,AspectJ的编译器通过名字匹配自动把登录检查功能的代码插入到需要的地方,这样只需要在一个地方放置所有需要用于检查的功能代码,在任何需要的地方登录检查,可以消除人为的错误,并且可以被应用和升级。
基于这种面向方面编程模式的Web系统与传统的纯OOP模式的Web系统相比有了很大的改进,但作为一种新的编程模式,仍然处在不断发展和完善之中,面向方面编程在理论和实践应用方面都有待进一步的探讨。
4 结语
对面向方面编程在Web系统中的应用做了初步的探讨,介绍了面向方面编程的主要概念横切面、切入点、方面等,探讨了面向方面编程在Web系统的应用,面向方面编程技术在Web开发上的应用并不能取代传统的编程技术,但是它能够弥补传统编程技术上的不足,和传统编程技术相辅相成。本文对为面向方面编程的探讨,期望能为面向方面编程技术的发展提供有益的参考。
参考文献
[1]Grad,Boohc,冯博琴,等.面向对象分析与设计[M].北京机械工业出版社,2003.
[2]王学龙,卫红春.面向方面编程及其应用现状的研究[J].微电子学与计机,2005,22(11):187.
[3]M.Griss,Implementing Product-Line Features by Composing Aspects,In Software Product Lines,P.Donohoe(Ed.),Kluwer Academic Publishers,2000:271-288.
Web编程 篇3
按照执行前的应用程序镜像文件所在的位置来分, 计算机中的各种应用程序可以大致上分为桌面应用程序和Web应用程序两大类。即本机应用程序和远程Web应用程序。随着计算机技术的发展, 这两类应用程序交替发展着, 在不同的时期有着不同的受到不同的重视。总的来说, 两种应用程序到目前为止仍然是同时存在, 并根据自身的特点发挥着各自的不同的作用。桌面应用程序根据是否有人机交互界面分为无UI和有UI两种, 有UI的应用还可以分为命令行应用和图形界面应用 (GUI) 。如此众多类型的应用程序, 相应的, 其开发方式也有所不同。由于本机应用程序可以更自由地使用本机资源, 其图形图像处理能力相应较Web应用程序更强。因此, 以Windows应用为例, 本机应用的UI一般采用与操作系统关系密切的消息/窗口为机制的处理方法, 而Web应用由于其自身特性所带来的限制, 其UI开发只能采用HTML标记语言和Javascript脚本语言相结合的方式。然而, 人们逐渐发现, 由于HTML语言由于其独特的有点--更好的灵活性与简洁的编程方法, 再加上样式表的配合, 其开发的便捷性与高效性往往要好于传统的GUI的开发方式。UI元素采用标记语言来编写, 其布局由级联样式表来描述, 事件处理程序采用Javascript等脚本来编写。以至于本地GUI的开发者常常希望能够有一套类似与HTML的开发方式来进行本机GUI的开发。这样的尝试也被世界上一些知名的IT企业进行着, 如Microsoft在2002年发明了一套全新的GUI开发框架-WPF。Adobe的flex, Google的Android的开发, QT等都采用了这样一种模式。但是这些产品都没有实现用同一种编程方式来完成对Web应用和本机应用的开发。近两年出现的Node.js框架, 使用Javascript做编程语言, 用HTML作为UI展现的描述语言, 可以达成这一目的。
本文对Node.js做了简单介绍, 然后重点讨论了使用Node.js来进行本地应用的开发和Web应用程序的开发。两个应用程序都以Hello World这种典型的入门应用来展示其细节, 着重强调了使用Node.js框架可以开发两种类型的应用程序。
2 Node.js简介
Node.js是一个开源的基于Chrome的Javascript运行平台, 它可以用来快速构建伸缩性强的网络应用程序。Node.js使用事件驱动和非阻塞的I/O模型以确保轻量和高效, 特别适用于数据敏感的实时的可用于分布式设备的应用程序。
Node.js平台中一个重要的概念是模块 (Module) , 模块就是类库, 包含一组特定功能的类和它们的属性及方法。从Node.js问世开始, 它的模块得到了迅速的扩充。目前, 可以使用命令在互联网上轻易获得模块并加入到项目中。NPM是Node procedure modules的缩写, 是管理和使用模块的命令行工具。在项目中使用模块也很容易, 只需要将模块安装上, 然后在程序中用下述命令引用即可:
var module=require (‘http’) ;
然后, module变量即编程了http对象, 可以调用其相应的方法。
需要明确的是, 要开发GUI应用, 仅仅使用Node.js是不够的。Node-Webkit是另一个开源项目, 其目的是在Node.js基础上, 使用HTML和Javascript开发本地应用程序。这就实现了本机应用和Web应用的统一开发平台。
3 使用Node.js开发本机应用程序和Web应用程序
3.1 开发命令行应用程序
安装Node.js之后, 开发一个本地的命令行应用程序非常简单:只需要用文本编辑器输入程序并保存成.js文件, 然后使用Node<file.js>命令运行即可。这里以Hello World为例来展示:
(1) 将下面仅一行代码的程序保存至hello.js
console.log (“Hello World!”) ;
(2) 进入命令行环境
(3) 运行node hello.js
得到如图1运行结果。
3.2 开发GUI本机应用程序
开发GUI本机应用程序, 必须使用另外一个平台:Node-webkit, 当然, 一定要首先安装Node.js。
(1) 安装完成Node-webkit之后, 使用文本编辑器编辑如下代码, 并保存至hello.html中。
(2) 用文本编辑器编辑另一个文件package.json并保存, 内容如下:
(1) 进入命令行, 并进入程序所在的文件夹。
(2) 执行nw.。注意, nw后面有一个点, 表示当前目录。
执行后的结果如图2。
其中, 前面的对话框是鼠标点击Hello按钮的结果。
4 开发Web应用程序
开发Web程序要复杂一些, 这里给出一个最简单的Web版的hello world的实现。
将下述代码用文本编辑器输入并保存到webhello.js中:
(1) 进入命令行环境, 并进入程序所在目录。
(2) 运行node webhello.js。
(3) 在浏览器中访问地址:http://localhost/。
浏览器中的结果如图3。
这里仅给出了最简单的实现方式, 实际的项目会复杂得多, 一般需要用到成熟的框架。Node.Js中用的最广泛的Web框架Express, 是一个MVC的框架实现。
5 不足
任何事情都有其不足, 虽然Node.js很强大, 它仍然存在很多不足:
(1) 解释型语言, 执行效率受限。
(2) 源代码不能编译, 存在代码隐私问题。
(3) 容易写出糟糕的代码, 回调的执行流程有时不符合直觉, 要经常重构加以避免。
(4) 单进程, 单线程, 只支持单核CPU, 不能充分利用多核CPU服务器。
6 结论
从以上示例可以看出, Node.js带来了编程新的方法, 不仅可以用来开发Web应用程序, 本地命令行应用程序, 也可以用来编制带有GUI的桌面应用程序。而且, GUI桌面与Web应用采用的是同样的编程思路和方法, 这大大简化了开发的复杂度, 使得GUI桌面应用与Web应用使用统一编程模型变成了现实。当然, 这一框架也存在不足, 但是我们可以利用它的优势, 扬长避短, 使用它高效率地进行各类应用项目的开发。
摘要:本文介绍了Web应用程序和本机应用程序统一编程模型的思想, 介绍了目前流行的Node.js框架, 并详细探讨了如何使用Node.js来开发本机命令行应用程序、本机GUI应用程序、Web应用程序等三种应用程序, 以及各类的Hello World程序实例。展现了利用该技术实现统一编程模型这一思想的可行性。文章也讨论了Node.js语言的不足并得出Web应用和本机应用统一编程模型是可行的这一结论。
关键词:Web应用,编程模型,程序设计
参考文献
[1]黄金国.对Web技术开发桌面应用设计的探讨[J].硅谷, 2011.
[2]蒋海云.Web回归桌面的研究与应用——基于Web技术的预付费电能管理系统的构建[C].硕士论文, 2008.
[3]骆文亮.Node.js服务器技术初探[J].无线互联科技, 2014.