菜鸟学ASP

菜鸟学ASP 

学习目的:安装调试ASP的环境,并且调试第一个简单的程序。

  因为我们学ASP的目的就是想建立一个网站,那么一般习惯是建立的网站内所有文件应该同时放到一个文件夹中(当然这个文件夹中还可以按需要设置子文件夹!),所以在这里我在E盘建立一个myweb的文件夹。

  首先来安装Windows 2000/XP自带的IIS作为服务器。在这里因为我的机器是XP所以所有截图都是XP下完成的。

  控制面板–>>添加或删除程序。

 然后是添加删除windows组件-选中IIS组件前面的勾,之后等待安装,这里可以观看本站以前给大家做的视频教程,完成安装后。

之后在控制面板中双击“管理工具”。

 然后双击“internet信息服务”,这就是IIS。

选择“默认网站”,然后右键属性或者直接按快捷键

 在属性页面内只有三个页面需要修改,先是网站,如果用户有固定IP,可以分配一个IP

接下来在注主目录中选择一个自己硬盘上面的文件夹存放网站(这个目录就是我们上面说的在e盘建立的目录),选中读取、写入

 在文档中添加默认的页面,比如打http://www.liexiaow.com猎校网 调用了一个默认文档即是你添加的页面。

接下来也是最关键的:

  1、在刚才你定义的一个文件夹里面新建一个文件,可以用记事本建立一个文本文件然后把下面的内容复制到记事本中:

  保存为1.asp文件(注意:.asp不能省略啊,如果省略了你就保存了一个文本文件了)。

  最后打开IE,在地址栏内输入:http://127.0.0.1/1.asp(或者http://localhost/1.asp)回车后就可以看到效果了。

最后解释一下代码的含义。

  response.write就是显示的意思,前后的 <% 和 %> 是asp的标记符号,在这里面的信息都由服务器处理。127.0.0.1是地址,1.asp是文件名。第一天就结束了!

表单元素要放在一个表单域里面,建立一个表单域。然后修改动作里面的文件为要接受这个表单变量的ASP文件。方法有两种,一种是POST,这个方法传送的变量不会在浏览器的地址栏里面显示,可以大批量传送数据;GET则是会在浏览器地址栏里面显示的,等一会举例子。

  下面我们看一个表单元素。

  文本域,这个是最基本的,传送的是文本信息,一般用户名,密码都要用这个传送,不过要是密码的话要在类型里面选择密码,这样就会以*代替显示出来的字符,文本域的名字很重要,以后会用到这个名字所以一般不用默认的名字。

  现在举一个例子:如果文本域的名字是name的话,用来传送网上用户登记的名字,在表单域里面,传送到reg.asp,用POST方法,那么在reg.asp里面这样得到变量<%name=request.form(\”name\”)%>如果要显示变量再家加一句,response.write name,这样就形成了一个从客户端到浏览器再回到客户端的过程。如果方法用的是GET的话,那么就改为name=request.querystring(\”name\”)实际上两者可以统一为name=request(\”name\”)。下面看看按钮,按钮里面无非两种,一种是提交表单的按钮,一种是重新输入的按钮。单选按钮,一个按钮有一个值。在列表里面同样,添加列表选项和值。下面举一个例子,实际上各种表单元素都是差不多的。

  下面是具体的代码: (注:把下面代码保存为一个.htm的文件就可以了.我保存的1.htm)

  打开浏览器在地址栏内输入:http://localhost/1.htm如下图:(呵呵,因为是练习,我没有美化页面啊!)

下面我们要开始学数据库了!只要把表单和数据库相应的字段连接上就可以了。

学会ACCEES数据库的使用。

  首先,要安装OFFICE里面的ACCEES(我的演示是OFFICE 2003版本),安装过程这里就不说了,安装好以后会,打开Access.按空数据库,新建一个数据库,文件名字可以叫guestbook.mdb。(提示:为了安全期间,文件名复杂一点好,因为ACCESS数据库可以被下载的!!)

使用设计器创建新的表,一个数据库MDB文件里面可以建立多个表。双击“使用设计器创建表”

 填写字段名字然后选择字段类型,一条记录可以有很多字段,可以有很多字段类型,字段大小的意思就是这个字段最多可以容纳的字符数,当这个字段没有任何信息是,ACCEES会用默认值代替(没有任何信息不是空的意思),一般必填字段和允许空字符串分别设置为否、是,以防止出错

按照上图分别建立几个字段,在时间中默认值为=now()就是这个字段不需要填写,系统直接以当前时间代替。

所以的字段都建立以后,关闭这个窗口,按提示保存表,输入表的名字guest,最后出现下图的提示,选择是,主键是记录的标识,为了以后简单,大家可以把编号改为ID,还有在ACCEES里面尽量不要用中文表示字段名字

最后,双击打开这个表,观看表里面的记录

握ACCESS数据库的连接和读取记录

  首先还打开我们上一节课建立的数据库中的表,随便输入几条记录,如下图:

这节课学习的内容有一点枯燥,但是很重要。在这里不需要知道命令具体的运行情况,外面的很多书籍之所以不适合入门就是因为介绍了太多的理论知识,让初学者一头雾水。

  下面开门见山,看两行代码:

  在一个表格中,我们用4列分别显示了上次建立的表里面的四个字段,用do循环,not rs.eof的意思是条件为没有读到记录集的最后,rs.movenext的意思是显示完一条转到下面一条记录,<%=%>就等于<%response.write%>用于在html代码里面插入asp代码,主要用于显示变量。

  把上面三段代码依次复制粘贴到剪贴板中,一定要按顺序复制粘贴啊!,然后保存为duqu.asp就可以了!打开浏览器,在地址栏内输入:http://localhost/duqu.asp.

  下面是我机器上面的结果图片。

学会数据库的基本操作–写入记录

  数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。

  今天我们先学习写入记录。先建立一个表单:(把下面文章保存为5.htm)

<form name=\”form1\” method=\”post\” action=\”exa5.asp\”>name <input type=\”text\” name=\”name\”><br>tel <input type=\”text\” name=\”tel\”><br>message <input type=\”text\” name=\”message\” value=\”\”><br><input type=\”submit\” name=\”Submit\” value=\”提交\”><input type=\”reset\” name=\”Submit2\” value=\”重置\”></form>

  表单提交到exa5.asp,下面是exa5.asp的代码: (把下面代码保存为5.asp)

<%set conn=server.createobject(\”adodb.connection\”)conn.open \”driver={microsoft access driver (*.mdb)};dbq=\”&server.mappath(\”data/guestbook.mdb\”)name=request.form(\”name\”)tel=request.form(\”tel\”)message=request.form(\”message\”) exec=\”insert into guest(name,tel,message)values(\’\”+name+\”\’,\”+tel+\”,\’\”+message+\”\’)\”conn.execute execconn.closeset conn=nothingresponse.write \”记录添加成功!\”%>

  在这里前面两句我不说了,后面三句我也不说了,前面说过exec里面的是执行的命令,添加记录的比较繁,大家要仔细看。

  insert into后面加的是表的名字,后面的括号里面是需要添加的字段,不用添加的或者字段的内容就是默认值的可以省略。注意,这里的变量一定要和ACCESS里面的字段名对应,否则就会出错。values后面加的是传送过来的变量。exec是一个字符串,\”insert into guest(name,tel,message)values(\’\”是第一段,在ASP里面不能嵌双引号,所以可以用\’代替双引号,放在双引号里面,连接两个变量用+或者&所以\”\’,\”又是一段,中间夹了一个name就是表单传来的变量,这样就可以在这个变量外面加两个\’\’,表示是字符串了,后面的tel是数字型变量所以不需要外面包围\’\’,大家慢慢分析这句话,如果用表单传来的数据代替变量名字的话这句话为(假设name=\”aaa\”,tel=111,message=\”bbb\”):\”insert into guest(name,tel,message)values(\’aaa\’,111,\’bbb\’)\”。

  接下来的conn.execute 就是执行这个exec命令,最后别忘记把打开的数据库关闭,把定义的组件设置为空,这样可以返回资源。

  下面几条语句用于关闭数据库的代码:

rs.closeset rs=nothingconn.closeset conn=nothing

  记住,次序不可以颠倒! 可以到数据库里面去看一看,或者用duqu.asp读取看看是不是多了记录阿?下面是我利用上一节的文件读取数据库的图:

学会数据库的基本操作--查询记录

  在第四天中我们用到下面这样一个程序:

  首先在浏览器中输入http://localhost/6.htm如下图所示:

学会数据库的基本操作–删除记录

  开门见山,大家直接看程序。

exec=\”delete * from guest where id=\”&request.form(\”id\”)

  上面这句话完成了删除记录的操作,不过锁定记录用了记录唯一的表示id,我们前面建立数据库的时候用的是系统给我们的主键,名字是编号,由于是中文的名字不是很方便,大家可以修改为id,我已经修改了啊!

  不修改的话就是用下面的代码了:

exec=\”delete * from guestbook where 编号=\”&request.form(\”id\”)

  下面我们看完整的代码:一个表单传给ASP文件一个ID,然后这个ASP文件就删除了这个ID。

  7.htm:

<form name=\”form1\” method=\”post\” action=\”exam7.asp\”>请输入删除的ID号: <input type=\”text\” name=\”id\”><input type=\”submit\” name=\”Submit\” value=\”提交\”></form>

学会数据库的基本操作--修改记录

  先来看代码:(存为exam8.asp就可以了)

  在这里,rs.open exec,conn,1,3后面的参数是1,3,这我以前提过,修改记录就要用1,3。实际上修改记录很容易看懂,记录集是rs,rs(\”aa\”)就是当前记录aa字段的东西,让它等于新的数据request.form(\”aa\”)当然就修改了,不过最后别忘记保存,那就是rs.update!

  说到这里,记录的搜索,读取,修改,插入都说了,通过这最基本的东西就可以作出复杂的东西了,外面的大型数据库:新闻系统,留言簿就是字段多一点罢了。今天的示例中的代码是结合以前的数据库的,以后回去调试分析一下。

  大家测试的流程:首先运行8.htm文件

基本的SESSION组件,总结response,request组件。

  首先,有会员系统的任何程序都会用到检测是不是用户已经登陆这个步骤。这就用到了SESSION组件,下面我们 看一个代码来说明。

<%session(\”login\”)=\”yes\”%>

  这句话的意思就是在session里面定义一个login字符串变量,值为\”yes\”,直接可以赋值,不需要声明。是不是很简单?

  如果我们做管理员登陆系统的话,首先是一段检测是不是管理员:

if 是 then session(\”isadmin\”)=yes\”else session(\”isadmin\”)=\”no\”end if

  在每一个需要管理员才能看的页面最前面加上:

<%if not session(\”isaadmin\”)=\”yes\” thenresponse.redirect \”login.htm\”%>

  这样一般用户就无法打开这个页面。解释一下response.redirect,它是转向的意思,后面的\”login.htm\”就是转向的文件。这样没有登陆的管理员是无法看到后面的内容的。

  response组件基本就是用到response.write(),response.redirect() 分别是写字符串和转向的作用。

  request基本就是request.form(),request.querystring() 分别是接受post,get方法传来的信息。

  最后我们一起来制作一个简单的后台登陆管理界面,首先在myweb目录下建立一个admin文件夹,然后我们建立一个数据库名字为admin.mdb,然后我们再建立一个表,表中设置两个字段name,password,类型都是文本型的!最后退出时设置主键,保存为表名check。然后可以输入一条记录用户名:admin,密码:admin。具体建立数据库的方法请看《菜鸟十天学会ASP教程之第三天:数据库的建立

  下面我们开始编写ASP程序,首先建立一个index.asp(管理主界面)程序,代码如下:

  运行时首先运行index.asp程序,运行效果部分截图如下:

分页技术

  今天最后一天我们学习一下ASP里面稍微难一点地分页技术,毕竟当我们有N条记录的时候我们不可能把所有记录显示在一个页面里面吧。

  rs.pagesize设置一个页面里面显示的记录数,pagecount是我们自己定义的一个变量,rs.pagecount是记录的个数,page也是我们自己定义的一个变量,我们下一页的链接可以设置为list.asp?page=<%=page+1%>,下一页的链接可以设置为list.asp?page=<%=page-1%>,这样当按下链接的时候调用页面自己,page这个变量就+1或者-1了,最后我们让rs.absolutepage(当前页面)为第page页就可以了。

  if request.QueryString(\”page\”)=\”\” then page=1,这句话的作用就是我们打开list.asp的时候没有跟随page变量,自动设置为page=1,防止出错,还有当我们if….then…放在一行的时候end if可以省略。是不是分页也不难?

  下面说一种特殊情况:

if page=1 and not page=pagecount,这个时候没有上一页,但是有下一页

elseif page=pagecount and not page=1,这个时候没有下一页,但是有上一页

elseif page<1,这个时候没有任何记录

elseif page>pagecount then,这个时候没有任何记录

elseif page=1 and page=pagecount,这个时候没有上一页,没有下一页

else,这个时候有上一页,也有下一页。

  下面看一段显示1到n页,且每一个数字点击以后就出现这个数在代表的页面的代码,很常见哦。

<%for i=1 to pagecount%><a href=\”list.asp?page=<%=i%>\”><%=i%></a><%next%>

  for….next是循环从i=1开始,循环一次加1到pagecount为止。

  最后我的实例里面包含了一个最简单的ASP程序,但是功能样样有,是ASP的精髓,每一个ASP大型程序都包含了它。

add.htm增加记录页面

add.asp增加记录操作

conn.asp数据库链接

del.asp删除记录操作

modify.asp修改记录页面

modifysave.asp修改记录操作

list.asp这个是这个程序的核心,通过这个页面实现记录的添加、修改、删除。

使用C# 利用 ASP.NET Core WebSocket 服务器,并通过 WebSocket 通信。

今天有个盆友让我帮忙采集一个网站数据,我发现登录口竟然无法抓包,MD真是见了鬼了,在费时半小时后,在客户端JS中找到个关键词 WebSocket,这是什么鬼,百度查了查,大概知道了那么点用法。赶紧做一下笔记,避免自己忘记了,这玩意做防爬也不错啊。在登陆口一些位置,如果是网站,在展现数据GetList一类的方法不建议用这个技术,不利于SEO。但用来做反扒却真心不错。至少网络上一些脚本小子可以挡一挡。

下面做一个WebSocket技术的实战,各位看官看好了!其实非常简单。

在 Startup.cs 中配置 WebSocket 服务:

在 wwwroot 文件夹中创建一个 HTML 文件,例如 index.html:

在项目目录中运行以下命令启动应用:

这个时候,你打开自己电脑上随便一款浏览器,访问 http://localhost:5000/index.html,你可以在输入框中输入消息并发送,服务器会回显你发送的消息, WebSocket 进行实时通信还是挺简单的,由于大多数爬虫不支持 WebSocket,因此使用这种方式可以降低被抓取的风险。你可以根据需要扩展此示例,添加更多功能和安全措施。如果还有更牛叉的方法,一定留言说说哈。

又花了半小时看了点其他资料,感觉这技术除了用于实时数据传输外,还有许多其他应用场景,第一个想到的是网页实时聊天工具,我感觉WebSocket 这东西非常适合构建实时聊天应用,因为它允许在客户端和服务器之间保持持久连接,实时发送和接收消息。第二个是客户端主动连接上后,好像服务器端可以主动一直发消息给客户端啊,这不就内网穿透了?我记得好像.NET 又出了一个基于webassembly技术的blazor,好像是这东西,那是不是都可以做木马了?不知道权限够不够,第三个想到股票和金融数据,我有炒股,感觉WebSocket 天生就可以用于实时传输股票价格、金融市场数据等信息,确保用户能够及时获取最新的市场动态。还有一个就是远程时评直播流传输,感觉用这技术快很多吧?暂时就想到这么多,应该快要凑足2000字了吧。哈哈哈哈哈。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。