`
csstome
  • 浏览: 1521744 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

试用EF开发WEB应用程序(12): 网页计数器

阅读更多

题记:用“易语言.飞扬”(EF)开发WEB应用程序,此前还没有先例。但因为EF本地开发包(EFNDK)已经发布,用C/C++开发一个EF类库,使其支持EF开发WEB应用程序,应该并非难事。当然也可想而知,其中必有诸多难点有待解决。此系列文章,为本人探索过程之记录,对外人未必有多大价值。如有网友乐观其事,还请理性待之。作者:liigo。转载请务必注明出处:http://blog.csdn.net/liigo/在线留言


试用EF开发WEB应用程序(12):网页计数器

又一个 EFCGI 应用实例,网页计数器。

网页计数器,在目前网络上应用十分普遍,其功能是,对网页的被浏览次数进行统计,网页每被浏览一次,该计数值就被加一。

我实现的这个网页计数器,是一个通用网页计数器。即,它可以给任意人、任意网页提供计数服务,只要你事先申请得到一个ID。在线申请计数器

以下是本网页计数器的“易语言.飞扬”(EF)源代码:

引入fastcgi,sqlite;

公开类启动类
{
静态Sqlite数据库_db;

公开静态启动()
{
_db
=newSqlite数据库();
_db.打开(
"../db/pagecounter.file",true);
if(_db.表是否存在("pagecounter")==false)
createTable();

FCGIfcgi
=newFCGI;
while(fcgi.Accept()>=0)
{
if(fcgi.REQUEST_METHOD.到小写()=="post")
fcgi.ReadContentAsQueryString();

文本html
=html_template.替换全部("$(title)","网页计数器(由EF开发)");

stringpathinfo
=fcgi.PATH_INFO();
stringmessage;

//处理提交的表单(form)
if(pathinfo=="/submit")
{
intid;
if(fcgi.QUERY_STRING("username")!=""||fcgi.QUERY_STRING("remark")!="")
id
=registerID(fcgi);

fcgi.Output(
"Location:/efcgi/pagecounter.efcgi/id"+id.到文本()+" ");
continue;
}

//显示处理结果
if(pathinfo.左边(3)=="/id")
{
stringid
=pathinfo.右边(pathinfo.长度-3);//"/id123"->"123"
if(id=="0")
{
message
+="<p><b>对不起,操作失败。请尝试重新申请。</b></p>";
}
else
{
message
+="<p><b>恭喜,注册成功,id为"+id+"(请务必记住)。</b></p>";
message
+="<p>欲使用此计数器,请将以下代码放到HTML中任意位置:</p>";
message
+="<p><pre>&lt;scriptsrc="http://liigo.com/efcgi/pagecounter.efcgi?id="+id+""&gt;&lt;/script&gt;</pre></p>";
}
}

//根据id查计数器,并返回相应的js代码
if(fcgi.QUERY_STRING("id")!="")
{
通用型count
=_db.读字段值("pagecounter","count",Sqlite字段类型.整数,"id="+fcgi.QUERY_STRING("id"));
count
=count.取整数()+1;
_db.执行SQL(
"updatepagecountersetcount="+count+"whereid="+fcgi.QUERY_STRING("id"));
fcgi.Output(
"Content-type:application/x-javascript document.write(""+count.取整数().到文本()+"");");
continue;
}

html
=html.替换("$(message)",message);

fcgi.Output(html.到UTF8());
}

_db.关闭();
}

privatestaticcreateTable()
{
Sqlite表结构tdef
=newSqlite表结构();
tdef.添加字段(
"id",Sqlite字段类型.主键整数);
tdef.添加字段(
"count",Sqlite字段类型.整数);
tdef.添加字段(
"username",Sqlite字段类型.文本);
tdef.添加字段(
"remark",Sqlite字段类型.文本);
_db.创建表(
"pagecounter",tdef);
}

//注册计数器,返回id
privatestaticintregisterID(FCGIfcgi)
{
stringusername
=fcgi.QUERY_STRING("username");
if(username=="")username="EF爱好者";
stringinitcount
=fcgi.QUERY_STRING("initcount");

stringsql
="insertintopagecounter(username,remark,count)values('"+username+"','"+fcgi.QUERY_STRING("remark")+"',"+initcount+")";
if(_db.执行SQL(sql))
return(int)_db.取最新插入ID();
else
return0;
}

常量文本html_template
=["Content-type:text/html

<html><head>
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
<title>$(title)</title>
</head>
<body>
<h1>$(title)</h1>
<p>网页记数器:为单个网页提供流量统计。</p>
$(message)
<hr></hr>
<h3>您还没有计数器?请先申请:</h3>
<formmethod="post"action="/efcgi/pagecounter.efcgi/submit">
<p>姓名:<inputtype="text"name="username"size=20/></p>
<p>说明:<inputtype="text"name="remark"size=80/></p>
<p>计数器初始值:<inputtype="text"name="initcount"size=10value="0"/></p>
<p><inputtype="submit"value="提交"></input></p>
</form>

<hr></hr>
<p>byliigo,<ahref="http://blog.csdn.net/liigo/">http://blog.csdn.net/liigo/</a></p>
</body>
</html>
"];
}

在注册得到ID之后,请将以下代码放置到欲添加计数器的HTML网页源代码中:

<p>计数器:
<scriptsrc="http://liigo.com/efcgi/pagecounter.efcgi?id=你的ID"></script>
</p>

这里有一个使用了此网页计数器的测试网页

分享到:
评论

相关推荐

    web网页设计(c#):学生管理系统

    4. **ASP.NET**:ASP.NET是微软的Web应用程序框架,它提供了开发Web应用的高效工具和库,支持C#语言。在学生管理系统中,ASP.NET可以用来构建Web API,为前端提供数据接口。 5. **Entity Framework (EF)**:EF是...

    EFCore+WebAPi增删改查

    综上所述,这个项目展示了如何将EFCore与Web API结合,通过Ajax和AngularJS实现在Web应用中的数据管理。开发者可以通过研究源码学习到如何配置EFCore数据库上下文、定义实体模型、创建Web API控制器以及使用...

    基于.netCore 6 +EF 实现webApi增删查改基础应用,开箱即用

    在本文中,我们将深入探讨如何使用`.NET Core 6`框架和`Entity Framework (EF)`来构建一个功能完备的Web API服务,实现数据的增、删、查、改(CRUD)操作。`.NET Core 6`是微软推出的一个高性能、跨平台的开源开发...

    全堆栈ASP。NET核心(.NET 8)web应用程序,具有CRUD、N轮胎体系结构、验证功能.zip

    这个项目展示了如何利用ASP.NET Core MVC(Model-View-Controller)模式来构建一个完整的Web应用程序,涵盖了CRUD(创建、读取、更新和删除)操作,同时实现了N轮胎(N-Tier)架构和验证功能。 **ASP.NET Core MVC*...

    【ASP.Net Core Web应用程序】 创建数据库

    ASP.NET Core Web应用程序是Microsoft开发的一个跨平台的框架,用于构建现代、高性能的Web应用。在本场景中,我们关注的重点是如何在ASP.NET Core中创建数据库。这通常涉及到使用Entity Framework Core (EF Core),...

    asp.net源码:WebSamples,是WEB程序开发的好示例。

    ASP.NET 是微软公司推出的用于构建动态网站、Web应用程序和Web服务的一种强大框架。WebSamples 是一个包含多个ASP.NET示例的集合,它为开发者提供了学习和理解ASP.NET特性和功能的宝贵资源。在这个压缩包中,...

    一个应用.Net中C#技术开发的实用Web案例

    在.NET框架下,C#是一种广泛使用的编程语言,尤其在开发Web应用程序时。这个案例——"一个应用.Net中C#技术开发的实用Web案例",展示了如何利用C#的强大力量来构建一个功能完善的B2C(Business to Consumer)在线...

    ASP.NET数据库应用程序开发教程

    ASP.NET是一种由微软开发的服务器端Web应用框架,主要用于构建动态网站、Web应用程序和服务。它提供了丰富的工具和功能,使得开发者能够高效地构建与数据库交互的Web应用。本教程将深入探讨如何使用ASP.NET进行...

    Dome-ASP.NET CORE 6 webapi 使用 EF DBFirst 配合 sql server

    ASP.NET Core 6是微软推出的轻量级、高性能的开源框架,用于构建Web应用程序,包括WebAPI。它支持跨平台,并提供了依赖注入、中间件、单元测试等现代开发特性。在ASP.NET Core 6中创建WebAPI,你可以定义控制器来...

    Laborator-DAW:实验室和材料-Web应用程序开发

    实验室和材料-Web应用程序开发 :warning: :warning: 考试信息(技巧和窍门) 使用脚手架或尝试重现自动创建部分(使用实体框架的带有视图的控制器) 对于数据表,您可以使用以下示例: 在REPO的解决方案领域中...

    使用C#开发数据库应用程序系统ACCP8.0

    在IT行业中,数据库应用程序系统是不可或缺的一部分,它们用于存储、管理和检索数据,为各种业务...对于希望在IT领域从事数据库应用开发的人员来说,“使用C#开发数据库应用程序系统ACCP8.0”是一次宝贵的学习经历。

    c# MVC完整项目 EF连接数据库 webapi

    首先,C# MVC(Model-View-Controller)是一种用于构建可维护性和可测试性的Web应用程序的设计模式。它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责业务逻辑和数据...

    Asp.Net Core Web应用程序入门源码

    这个源码包“KibaAspNetCore-master”是针对初学者设计的,旨在帮助他们理解并入门Asp.Net Core Web应用程序的开发。 1. **Asp.Net Core基础** Asp.Net Core是对经典Asp.Net的重构,它采用模块化设计,允许开发者...

    web聊天室(.net core MVC + signalr + EF + Authorize)

    总的来说,这个Web聊天室项目展示了如何结合使用.NET Core MVC、SignalR、EF和Authorize来构建一个功能完善的、具有实时通信、数据库管理和权限控制的Web应用程序。开发者可以从中学习到如何设计和实现这类交互式...

    学习C# .Net6+EFcore+MySQL.zip

    这是一套完整的教程,旨在帮助初学者和有一定经验的开发者掌握现代Web应用程序开发的核心技术。 C#是微软公司推出的面向对象的编程语言,广泛应用于Windows平台、移动设备以及游戏开发。.NET 6是.NET框架的最新版本...

    asp.net MVC + EF 音乐店程序源码.zip

    源码说明: MVC 音乐店是用来介绍和展示使用 ASP.NETMVC 以及 Visual Studio 进行 Web 开发的示例应用程序,我们将从基础知识开始,一步一步地进行介绍,因此,初学者也可以去的很好的学习体验。 这个示例程序使用 ...

    angularjs+webapi+EF

    **WebAPI**:WebAPI是.NET Framework的一部分,用于构建RESTful服务。它基于HTTP协议,允许前端通过HTTP请求(如GET、POST、PUT、DELETE等)获取或更新后端数据。在本项目中,WebAPI作为后台接口,负责接收前端...

    Web应用程序33

    在"Web应用程序33"项目中,C#程序员可能会使用Visual Studio作为开发环境,利用ASP.NET MVC或Web Forms创建前端界面,同时使用EF(Entity Framework)进行数据访问。此外,他们还需要考虑性能优化、SEO友好性、用户...

    EF+MVC+增删改查+webapi+异步上传文件+类库大全

    2. MVC (Model-View-Controller):这是一种设计模式,常用于Web应用开发,如ASP.NET MVC。它将应用程序分为三个主要组件:模型(Model)负责数据管理,视图(View)负责显示用户界面,控制器(Controller)处理用户...

    ASP.NET Core 和EF Core官方中文文档

    综上所述,ASP.NET Core和EF Core结合使用,能够构建出高效、可扩展且易于维护的Web应用程序。通过阅读"ASP.NET Core 2.2.pdf"和"EFCore.pdf",你可以深入了解这两个框架的详细用法和最佳实践,进一步提升你的.NET...

Global site tag (gtag.js) - Google Analytics