




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,第7章,ASP,什么是动态网页?,思考:,交互性:即网页会根据用户的要求和选择而动态改变和响应。,自动更新:即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量。,因时因人而变:即当不同的时间、不同的人访问同一网址时会产生不同的页面。,交互性:即网页会根据用户的要求和选择而动态改变和响应。,自动更新:即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量。,因时因人而变:即当不同的时间、不同的人访问同一网址时会产生不同的页面。,交互性:即网页会根据用户的要求和选择而动态改变和响应。,自动更新:即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量。,因时因人而变:即当不同的时间、不同的人访问同一网址时会产生不同的页面。,交互性:即网页会根据用户的要求和选择而动态改变和响应。,动态网页示例,BBS论坛,留言板,聊天室,ASP就是编写动态网页的技术,ASP技术概述,ASP(ActiveServerPages,活动服务页)是编写动态网页的技术ASP是WindowsNT/2000Server的Internet信息服务器IIS中的一个附加组件ASP文档与HTML文档的不同主要在于ASP文档中嵌入了服务器端脚本程序,形式为。ASP可以和数据库连接,ASP文档的练习,ASP文档必须放在Web站点的主目录中,C:Inetpubwwwroot通过浏览器打开。在浏览器的地址栏输入:/Myweb.asp或者:http:/本机IP地址/Myweb.asp,ASP的工作机制,1.用户在浏览器的地址栏中键入ASP文件,向服务器提交了这个ASP文件。,2.在Web服务器端,ASP解释器按照从上到下的顺序扫描asp文件内容,执行嵌入的服务器端脚本程序(之内的程序),产生了对应的HTML代码。,3.这些刚生成的HTML代码与ASP定界符之外的HTML代码传送到客户端浏览器去执行。,ASP已成为Web应用的重要内容,其工作方式是:,浏览器,Internet,服务器端,接受请求(ASP文档),找到脚本代码,发送网页,生成纯html文件,ASP中的“对象”概念,对象的属性,方法,集合如何理解?,对象的使用格式,对象.方法对象.属性对象.集合(参数名),ASP提供了5个可以直接使用的内置对象读取客户浏览信息的Request对象将数据传送到客户浏览器的Response对象提供服务器信息的Server对象存储私有数据变量的Session对象保存公用数据变量的Application对象,读取客户浏览信息的Request对象,Request对象,对应于HTTP请求,获取客户端浏览器的信息,并传送给服务器。这些信息可以通过输入表单、URL的参数或者其他方式提供。利用Request对象的集合、属性和方法,可以接受任何浏览器到网站的请求。,Request对象主要包括以下几种集合:Form集合QueryString集合Cookies集合ServerVariables集合,Form集合,7.1.1,Form集合是用户将信息提交给Web服务器的是常见方法之一。可以通过Request对象的Form集合,将使用Post方法传送的表单信息通过HTTP请求正文发送给服务器。,使用语法:Request.Form(element)(index)|.count说明:(1)element:指定Form集合要检索的表单中某一元素的名称(2)index:这是一个可选参数,多值中的一个(3)count:集合中元素的个数。如果找不到该元素,计数为0,用户名:年龄:住址:,以register.htm命名保存到C:Inetpubwwwroot,用户信息已经收到:用户名:年龄:住址:,以answer.asp命名,也保存到C:Inetpubwwwroot,然后在浏览器地址栏输入:/register.htm,“提交”和“回答”的页面,例7.1用Form从客户端获取表单信息。编写一个用户注册信息的界面,使用表单将录入的数据发送到服务器,服务器收到数据后,再发送到客户浏览器显示出来。(1)先建立用户注册表程序(test7-1.htm),填入信息.,用户注册用户注册信息用户名:密码:性别:男女学历:本科硕士博士其他爱好:读书体育旅游唱歌,用户注册用户注册信息用户名:密码:性别:男女学历:本科硕士博士其他爱好:读书体育旅游唱歌,用户注册用户注册信息用户名:密码:性别:男女学历:本科硕士博士其他爱好:读书体育旅游唱歌,用户注册用户注册信息用户名:密码:性别:男女学历:本科硕士博士其他爱好:读书体育旅游唱歌,用户注册用户注册信息用户名:密码:性别:男女学历:本科硕士博士其他爱好:读书体育旅游唱歌,用户注册用户注册信息用户名:密码:性别:男女学历:本科硕士博士其他爱好:读书体育旅游唱歌,服务器需要有另外的ASP程序来接收表单信息:request.form(name)接收用户名request.form(pass)接收密码request.form()接收的结果是一个具体的数据,通常需要把结果保存起来,可以使用赋值语句把结果保存到指定的变量中,也可以直接输出。Dimusername,passwordusername=request.form(name)password=request.form(pass),(2)接收表单信息并输出的页面程序代码如下(test7-1.asp):你输入的用户名是:你输入的密码是:你的性别是:你的学历是:你的爱好是:,对应于前面的格式Request.Form(element)(index),对应于前面的格式Request.Form(element).count,7.1.2QueryString集合使用form集合可以将客户端在一个页面中输入的信息传送到另一个页面,但是有时候就需要将并不是客户端输入的内容从一个页面传送到另一个页面。比如就像一个人从一个房间进入另一个房间,顺便带些东西过去一样。,Querystring集合就可以实现上述功能。它可以检索HTTP查询字符串中变量的值,HTTP查询字符串由问号“?”后的值指定。如客户端发出如下请求:显示Querystring集合将会得到name和age两个变量的值。“?”后可以带多个变量参数,之间用“&”连接。,例7.2用QueryString从客户端获取信息(1)传送信息(test7-2.htm)QueryString用法示例请单击下面的链接显示,(2)显示得到的信息(test7-2.asp)QueryString用法示例,注意:地址栏上显示了传送过去的内容:test7-2.asp?name=黄蓉&age=22,Querystring集合这种“顺便传送和接收”变量的功能可以应用于很多网页特效。例如example.asp红色背景蓝色背景黄色背景,鼠标分别点击三个超链接,分别得到如下效果,注意:QueryString集合除了在超链接方面有大量的应用之外,用QueryString集合同样从客户端获取用户输入的表单信息,同用Form从客户端获取表单信息的语法基本一样,只不过Method的属性值改为“GET“,Request.Form改为Request.QueryString而已,但一般不常用,思考:为什么不常用?,7.1.3ServerVariables集合客户浏览器使用HTTP传输协议可以访问服务器的网页,在HTTP的标题文件中会记录一些客户端的信息,如客户的IP地址等,有时服务器端需要根据不同的客户端信息作出不同的反映,这时就需要用ServerVariables集合获取所需信息。Request.ServerVariables(服务器环境变量)常用的服务器环境变量:lALL_HTTP:客户端发送的所有HTTP头文件。lAPPL_PHYSICAL_PATH:检索与元数据库路径相应的物理路径。IIS通过将APPL_MD_PATH转换为物理(目录)路径以返回值。lCONTENT_LENGTH:客户端发出内容的长度。lCONTENT_TYPE:内容的数据类型。同附加信息的查询一起使用,如HTTP查询GET、POST和PUT。lHTTPS:如果请求穿过安全通道(SSL),则返回ON。如果请求来自非安全通道,则返回OFF。lREMOTE_ADDR:发出请求的远程主机的IP地址。lREMOTE_HOST:发出请求的主机名称。如果服务器无此信息,它将设置为空的MOTE_ADDR变量。lSERVER_NAME:出现在自引用URL中的服务器主机名、DNS化名或IP地址。SERVER_PORT:发送请求的端口号。,例7.3用Request对象读取服务器和客户端环境变量(test7-3.asp)ServerVariables用法示例脚本文件的虚拟路径:发送请求的端口号:服务器端的IP地址:发出HTTP请求的客户端主机的IP地址:,7.2Response对象Response对象用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据以HTML的格式发送到用户端的浏览器,它与Request组成了一对接收、发送数据的对象,这也是实现动态的基础。Response就是响应服务器对浏览器请求的文件或数据,可以重定向,发送给浏览器,设置Cookies等。,7.2.1Response对象的常用方法Response对象可使用的方法有Write、Redirect、End、Flush和Clear五种。,Write方法Response对象的方法中,Write方法使用最多,其作用是将指定的表达式的值写到当前的HTTP网页上输出。使用语法:Response.Write变量或字符串如:,Response对象的Write方法有一种省略用法,语法如下:例如:实际上,我们前面的例题中,有好多地方就是使用的这种省略用法,2.Redirect方法在网页中可以利用超链接引导客户到另一个界面,但是必须要在客户端单击超链接才行。利用Redirect方法可以自动引导客户端到程序指定的URL地址。如发送邮件时,如果在一定时间内你没有使用键盘或鼠标,系统会自动引导客户端到结束界面,即退出你的登录状态。Redirect方法使用语法为:Response.RedirectURL或文件名如:3.End方法该方法可使Web服务器停止处理脚本程序。当ASP程序中碰到Response.End语句后,立即终止程序运行,不再执行后面的语句。该方法经常用于调试程序时,可以暂时屏蔽后面的语句。另外,Flush方法和Clear方法是和缓冲属性buffer结合使用的。,例7.4编写一个网页,内有两个选项,单击“确定”按钮后,根据不同选项作出不同的选择(自动导向不的页面处理程序)。Response.Redirect用法示例请选择注册类型:教师学生,Test7-4.asp,7.2.2Response常用属性,Buffer属性浏览器端下载一个ASP页面时,在默认情况下,ASP将一边解析页面内容,一边将结果传送给浏览器端显示。除此之外,ASP还可以对返回到浏览器端的内容暂时缓冲于服务器端。Response对象的Buffer属性就是用于设置服务器端是否将页面信息先输出到缓冲区的。Buffer属性应设置在Asp文件的第一行。使用语法为:Response.Buffer=true|false,注意:如果在ASP文件中使用Redirect方法重定向页面,则必须在文件开头加上这一语句,否则就会报错。,2.Expires属性这是一个很实用的属性,用于指定浏览器上缓冲存储的页面离过期还有多少时间,若用户在某个页面过期前又回到该页,就会显示缓冲区中的页面。如果设置,则可使缓存的页面立即过期。例如,当用户通过ASP的登录页面进入Web站点后,应该利用该属性使登录界面立即过期,以确保安全。,3.ExpiresAbsolute属性与Expires属性不同,ExpiresAbsolute属性指定缓存在浏览器中的页面确切的到期日期和时间。在到期之前,若用户又返回该页,则显示缓存中的页面,若未指定时间,则该页面当天午夜过期,若为指定日期,则在主页面在脚本运行当天的指定时间到期,例如就表示页面在2005年3月10日上午9时30分20秒到期。,7.2.3使用Cookies在客户端保存信息编写网络应用程序时,我们经常需要保存一些用户数据,例如该用户是否已经浏览过某些网站,是否曾经输入过个人信息等。通常采用HTTP协议访问网站的网页程序,当浏览器中的网页发生变化时,该网页程序的临时变量通常是不能保留的。如果我们要保留网页程序的变量,可以采用如下方法:(1)使用数据库;(2)使用Session对象;(3)使用Application对象;(4)使用Cookies。在具体的编程过程中使用什么方式保存变量需要根据具体情况而定,前三种保存变量的方式需要占用服务器资源,而Cookies保存变量使用的是客户机的资源。,当你第一次访问一个网站时,Cookies会在硬盘上留下一个标记,下一次访问同一个站点时,站点的网页程序可以访问并更新这个标记。这些标记保存在系统盘符“X:DocumentsandSettings用户名LocalSettingsTemporaryInternetFiles”文件夹中。,Cookie是当你浏览某网站时,网站存储在你机器上的一个小文本文件,它记录了你的用户ID,密码、浏览过的网页、访问的次数、停留的时间等信息当你再次来到该网站时,网站通过读取Cookie,得知你的相关信息,就可以做出相应的动作,如在页面显示第几次来访信息、或者是欢迎你的标语,或者让你不用输入ID、密码就直接登录,或者弹出已投票的信息等等。浏览网上商店时,如果选择了几款货物放到购物车里,然后离开。借助Cookies,几天以后再回来时,可以不必重复以前的操作,所选择的货物会仍然保存在购物车中。,Cookies有两种形式:会话Cookies和永久Cookies。前者是临时性的,只在浏览器打开时存在;后者则永久性地保存在用户的硬盘上并在指定日期过期之前一直可用。ASP的Cookie语法:利用Response对象的Cookies方法设置Cookies,利用Request对象的Cookies方法来获取Cookies的值。,Response.Cookie(cookiename)(key)|.attribute=value其中cookiename为Cookie的名称Key为关键字Attribute为属性,设置Cookie的语法为:,1、Expires属性:设置到期的日期,过期自动删除。例如:希望删除一个名为“passTime”的Cookie,可以用以下代码完成:,Attribute为以下几种取值:,Domain属性:定义传送Cookie到的域,通常为Cookie驻留的域。例如:只把Cookie传送给搜狐主页时,可以使用以下代码完成:%Response.Cookies(“domain”).domain=“”,3、Path属性:设置要发送的Cookie路径,当没有设置Path属性时,则使用应用程序的路径。4、Secure属性:指定Cookie是否可以被用户读取(安全)。5、HasKeys属性:Cookie是否是多值的,属性为布尔型。,Cookie的值由多对“名称=值”组成时,读取某个参数的值的语法:Request.Cookie(cookiename)(key)|.attribute例如:名为pre的Cookie值为“des=cake&candy=chocolate”,要读取关键字candy的值,可以写为:Request.Cookie(“pre”)(“candy”),读取客户端的Cookie的语法为:,Cookies综合示例,例题7-5例题7-6,Cookie.asp,用户,用户,用户,Application对象,网页,Application对象是让所有用户一起使用的对象,通过该对象,所有客户都可以存取同一个Application对象。在实际应用中,Application对象经常用于跟踪目前使用服务器的人数,以及特定用户显示的数据。如在聊天室中,大家的发言都存放到一个Application对象中,彼此就可以看到发言内容了。使用语法为Application(name)=value,7.3.1Application对象,如:上例中,创建了了个Application对象:username和addr,如果要从Application对象中检索信息,可以用ASP输出指令访问已命名的Application对象,如:,Application对象也有自己的方法和事件。方法有两个:因为多个用户可以共享一个Application对象,所以必须要有Lock和Unlock方法以确保多个用户无法同时改变某一属性。(1)LOCK:锁定Application对象;(2)UNLOCK:解除锁定。,事件也有两个:但要和Global.asa文件结合使用。(1)Application_OnStart:每当一个Application开始时,会激活一个Application_OnStart事件;(2)Application_OnEnd:每当Application结束时,会激活一个Application_OnEnd事件。,7.3.2Global.asa文件Global.asa文件是一个纯文本文件,可以用任意的文本编辑器创建。主要内容包括ASP的Application对象和Session对象的事件程序定义以及一些全局性对象。当Application对象和Session对象被第一次调用时或结束时,就会运行Global.asa文件中的对应的程序。例如:当第一次启动或关闭服务器时,就会启运Application_OnStart和Application_OnEnd事件;当一个客户登录应用程序时,就会启动Session_OnStart事件,当一个客户离开该应用程序时,就会启动Session_OnEnd事件。,Global.asa文件语法如下:SubApplication_OnStart这里放置Application对象开始程序EndSubSubApplication_OnEnd这里放置Application对象结束程序EndSubSubSession_OnStart这里放置Session对象开始程序EndSubSubSession_OnEnd这里放置Session对象结束程序EndSub说明:(1)每一个应用程序最多只能有一个Global.asa文件,也可以没有该文件,如果没有的话,当Application对象和Session对象启动或退出时,服务器就不会调用该文件,就无法发挥Application对象和Session对象更大的作用了;(2)它只能放在应用程序的根目录中,文件名不许变,只能叫Global.asa;(3)Global.asa文件中不能包含输出语句,因为该文件只是被调用,不输出显示其中的内容。,7.4Session对象在上网时,许多网站会要求我们输入用户名和密码,然后就有权限进行各种操作了。实际上,只要我们输入正确一次,即使我们从一个页面跳转到另一个页面,网站也不会要求再输入用户名和密码了。也就是说,用户的信息已经自动地从一个页面被带到了另一个页面。这就是Session对象的作用。,7.4.1Session对象简介可以使用Session对象存储特定用户会话所需的信息。这样,当用户在同一个Web链接期间,在不同的Web页之间跳转时,存储在Session对象中的变量信息可以共享,在整个用户会话中一直存在下去。例如,我们希望链接到某个站点后,打开的每个网页都显示出自己的用户名,就可以通过Session对象实现。,网页,网页,网页,用户,Session对象,用户,用户,用户,Application对象,网页,当用户第一次浏览到Web站点的网页时,ASP将自动生成一个Session对象,并且指定唯一的SessionID编号。如果有多个用户正在浏览网站,则每位用户都会被指定一个不同的SessionID编号,而且任何保存在此Session对象中的资料,将只允许该用户浏览的网页来使用,别的用户是看不到的。,7.4.2Session对象的属性Session对象有两个属性:SessionID属性和Timeout属性。,SessionID属性SessionID属性返回用户的会话标识符。在创建会话时,服务器会为每一个会话生成一个单独的标识符。,2.Timeout属性Timeout属性记录的是Session对象的有效期时长,默认值为20分钟。服务器怎么知道一个Session对象结束了呢?换句话说,怎样知道用户是否已经离开了这个站点而去了另一个站点或者已经关掉电脑了呢?如果一个人一直没有提出请求或者没有刷新主页长达20分钟,那么服务器就默认为用户已经离开了。这种策略就使得服务端可以释放对用户进程进行跟踪时使用的资源。(请您重新登陆)对于有些网络站点,20分钟显然有些短,例如,在考试系统当中,不能因为长时间不刷新页面而丢了用户名等信息。再如,对于高水平选手进行的网络围棋游戏,很多下棋步骤是要考虑很长时间的。那么这时候如果20分钟后释放了资源的话,这个棋手就可能被服务器端轰出局了。这就需要我们修改Timeout属性的有效时长,下面这个脚本将限制时间设为60分钟:,7.4.3Session对象的方法和事件当用户的Session时间过期后,如果用户刷新了主页,那么该用户将被认为是新的访问者,所有以前的Session信息会全部失去。也可以利用Abandon方法来撤消一个Session对象。Session对象只有一个方法:Abandon方法。该方法可删除所有存储在Session对象中的对象,并释放这些对象的资源。其实,如果程序未明确地调用Abandon方法,一旦会话超时,亦即Session对象到期后,服务器将自动删除这些对象。,Session对象两个事件:Session_OnStart和Session_OnEnd事件。当一个客户登录应用程序时,就会启动Session_OnStart事件,当一个客户离开该应用程序时,就会启动Session_OnEnd事件。,两个对象的OnStart和OnEnd事件的比较,1、一个Application对象的OnStart事件肯定发生在Session_Start事件之前一个Application_OnEnd事件肯定发生在Session_OnEnd事件之后2、Application对象只触发一次,即第一个用户的第一次请求。Session对象可多次被触发3、Application_OnEnd事件只有在服务终止或者该Application对象卸载时才会触发,只要一个客户离开该应用程序时,就会触发该客户的Session_OnEnd事件4、Application_OnStart和Application_OnEnd事件、Session_OnStart和Session_OnEnd事件一般都在一个文件中定义,即Global.asa文件。,7.5Sever对象Server对象是ASP中的一个很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建厦门红宝石投资管理有限公司社会招聘1人笔试历年参考题库附带答案详解
- 2025河南南阳财和投资有限公司招聘(第七号)笔试历年参考题库附带答案详解
- 2025年福建省晋江水务集团有限公司招聘项目制工作人员11人笔试历年参考题库附带答案详解
- 2025年江西上饶市信州区国瑞投资控股有限公司招聘(补录)1人(第一次)笔试历年参考题库附带答案详解
- 2025四川绵阳市九州电子科技股份有限公司招聘智能制造工程师测试笔试历年参考题库附带答案详解
- 2025年福建省龙岩市武平县事业单位招聘5人考前自测高频考点模拟试题有完整答案详解
- 2025年河北唐山芦台经济开发区事业编制教师人员2名模拟试卷及参考答案详解
- 2025呼伦贝尔农垦集团有限公司校园招聘44人模拟试卷及答案详解(名校卷)
- 2025江西南昌动物园百花园管理所招聘3人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025年河北沧州南皮县中医医院公开招聘工作人员16名考前自测高频考点模拟试题及答案详解(名校卷)
- 2025山东东营公安招录辅警392人考试参考试题及答案解析
- 2025四川宜宾市退役军人事务局招聘临聘人员2人考试参考题库及答案解析
- 高考语文 热点04 现代文阅读II之理论与文本互证类题(解析版)
- 预制混凝土检查井采购合同模板
- 2025年中小学《国庆节、中秋节》放假通知及安全提示
- 致敬 9.3:一场阅兵一部民族精神史诗
- (完整版)室外散水专项方案
- 智能物流行业智能化运输装备应用前景研究报告
- 2025云南黄金矿业集团股份有限公司第二次招聘8人笔试备考试题及答案解析
- 三级眼科医院评审标准实施要点
- 化疗药物使用顺序课件
评论
0/150
提交评论