




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Application 和Server对象第5章Session、 5.1 Session 对象及其应用5.1.1 Session 对象简介对象简介 HTTP协议是无状态的,即信息无法通过HTTP协议本身进传递。为了跟踪用户的操作状态,ASP使用Session对象来实现这一功能。当用户登陆网站,系统将为其生成一个独一无二的Session对象,用以记录改用户的个人信息,一旦改用户退出网站,那么该Session对象将会注销。Session对象可以绑定若干个用户信息或者ASP对象,不同Session对象的同名变量是不会相互干扰的。Session可以用来储存访问者的一些喜好,例如:访问者是喜好绿色背景
2、还是蓝色?这些信息可以依据Session来跟踪。Session还可以创建虚拟购物篮。无论什么时候用户在网站中选择了一种产品,那么这种产品就会进入购物篮,当用户准备离开时,就可以立即进行以上所有选择的产品的订购。这些购物信息可以被保存在Session中。最后,Session还可以用来跟踪访问者的习惯,可以跟踪访问者从一个主页到另一个主页,这样对于设计者对站点的更新和定位是非常有好处的。Session对象一般在服务器上设置了一个10分钟的过期时间,当客户停止活动后自动失效。Session对象是一个ASP内置对象,它在第一个ASP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务
3、器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要Session对象。ASP引擎产生一个Session对象,当一个客户首次访问服务器上的一个ASP页面时,同时ASP分配一个相应的id号,引擎同时将这个id号发送到客户端,存放在Cookie中,这样Session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会
4、话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的Session对象。Session存在于访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个Session,在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息。Session变量与特定的用户相联系,针对某一个用户赋值的Session变量是和其他用户的Session变量完全独立的,不会存在相互影响。1885.
5、1.2 Session 对象的集合对象的集合 Session对象提供了两个集合,可以用来访问存储于用户的局部会话空间中的变量和对象。1Contents 集合集合 Contents集合是存储于特定Session对象中的所有没有使用元素进行定义的变量和其值的集合,包括Variant数组和Variant类型对象实例的引用。在网站开发中,Contents集合直接应用不是很多,因为可以Session(keyname)的方式来直接访问Contents集合中的变变量。例如,当用户通过下面的语句设置一个Session变量username时,该变量即加入到Contents集合中。Session(username
6、)=张凯上面的语句与下面使用Contents集合来设置变量的方式是等价的。Session.Contents(username)=张凯2StaticObjects 集合StaticObjects集合是通过使用元素定义的、存储于这个Session对象中的所有变量的集合。5.1.3 Session 对象的属性对象的属性 Session对象提供了四个属性SessionID、Timeout、LCID和CodePag,其中使用得最多的是SessionID。1SessionID SessionID是一个长整型只读属性,用于获取当前会话的会话标识(id),创建会话时,该标识符由服务器产生,返回当前会话的唯一标
7、志,为每一个Session分配不同的编号。SessionID可以方便地对用户进行控制,例如,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块。也就是说同一个会员名同时只能一个人浏览此模块。此时可以通过用唯一会员名(设为UserID)和SessionID来实现了控制。当会员登录时,通过下面的语句给该会员一个Session记录登录状态。Session(Status)=Logged同时把该会员的Session.SessionID存储下来。当该会浏览此模块时,先判断其是否登录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则
8、不能访问。这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能对一些收费网站很有用,它防止了一个会员名给多个人浏览的问题。2Timeout Timeout用于为当前会话定义有效访问时间,以分钟为单位的。如果用户在有效时间内没有进行刷新或请求一个网页,该会话结束。在各网页中根据需要可以修改。1893CodePage CodePage用于定义用于在浏览器中显示页内容的代码页(CodePage)。代码页是字符集的数字值,不同的语言和场所可能使用不同的代码页。例如,ANSI代码页1
9、252用于美国英语和大多数欧洲语言。4LCID LCID用于定义发送给浏览器的页面地区标识(LCID)。LCID是唯一地标识地区的一个国际标准缩写,例如,2057定义当前地区的货币符号是。LCID也可用于FormatCurrency等语句中,只要其中有一个可选的LCID参数。LCID也可在ASP处理指令中设置,并优先于会话的LCID属性中的设置。5.1.4 Session 对象的方法对象的方法 Session对象允许从用户级的会话空间删除指定值,并根据需要终止会话。1Remove() SessionRemove方法用于从Session.Content集合中删除变量。格式如下:Session.C
10、ontents.Remove(variable_name)参数variable_name表示将从Session.Content集合中删除的变量名。例如:Session.Contents.Remove(username)上面语句执行时将从Session.Contents集合中删除变量username。2RemoveAll() Session对象Contents集合的RemoveAll方法用于从Session.Content集合中删除所有变量。格式如下:Session.Contents.RemoveAll()3Abandon() Abandon方法用于当网页的执行完成时,结束当前用户会话并撤消当前
11、Session对象。格式如下:Session.Abandon()需要注意,在调用该方法以后,仍可访问当前页中的当前会话的变量。当用户请求下一个页面时才会启动一个新的会话,并建立一个新的Session对象(如果存在的话)。5.1.5 Session 对象的事件对象的事件 Session对象在启动和结束时会话时触发两个事件Session_OnStart和Session_OnEnd。这两个事件必须在Global.asa文件中定义,需要参考下一节的Global.asa文件进行学习。1901Session_OnStart 事件事件 Session_OnStart事件当用户会话启动时发生,在用户请求的网页
12、执行之前。用于初始化变量、创建对象或运行其他代码。当对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触发此事件,并建立一个Session对象。2Session_OnEnd 事件事件 Session_OnEnd事件当用户会话结束时发生。从用户对应用程序的最后一个页面请求开始,如果已经超出预定的会话超时周期则触发该事件。当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,这会触发Session_OnEnd事件,然后执行里面的脚本。5.1.6 S
13、ession 对象的应用对象的应用当用户在网页间浏览时,某个网页的脚本变量只能在该网页内有效,一旦离开了该网页,即失去作用,如果需要在另一个网页中继续使用该变量,就可以通过Session来完成。下面是一个Session应用案例,案例由两个文件构成,一个是设置Session变量addSession.asp文件,另一个是检查Session变量的checkSession.asp文件。addsesssion.asp文件内容如下:设置Session这个网页设置Session变量Hello转到下一页checkSession.asp文件内容如下:191记录Sessionid设置Session变量Hello检
14、查Session%检查用户是否已经浏览过adSession.asp页ifSession(id)Session.SessionidthenResponse.RedirectaddSession.aspendif%两个网页的浏览效果如图51所示。如果没有,则转到adSession.asp页图51Session对象的应用当用户浏览adSession.asp页面,将通过下面的语句创建两个Session变量,并赋值。Session(id)=Session.SessionidSession(Hello)=欢迎来到我的网站记录Sessionid设置Session变量Hello当用户点击链接文字“下一页”,将
15、跳转到checkSession.asp页。当进入checkSession.asp页,先通过下面的语句检查用户是否已经访问过adSession.asp页面。ifSession(id)Session.SessionidthenResponse.RedirectaddSession.aspendif如果用户是直接进入该页,没有访问过adSession.asp页,此时的Session(id)与Session.Sessionid不相等,则跳转到adSession.asp页面。如果用户已经访问过adSession.asp页面,则显示文字“欢迎来到我的网站”。注意这一页没有赋值操作,这里的变量Hello和i
16、d的值是adSession.asp页面赋值。这个案例演示了Session最普遍的用法,无法用普通的脚本变量来进行这种处理,因为一般的变量只在一个单个主页内有效,而Session变量在用户离开网站前一直存在生效。要理解的很重要的一点是Session变量是针对特定用户相联系的。针对某一个用户赋值的Session变量是和其他用户的Session变量完全独立的,不会存在相互影响。换句话说,这里面192如果没有,则转到adSession.asp页针对每一个用户保存的信息是每一个用户自己独享的,不会产生公享情况。例如下面这个例子:Session的Myname变量和Mycompany变量各自是不同的内容,很
17、明显,对于不同的用户,在每个人在网站的不同主页间浏览时,这种针对某个特定用户的变量会一直保留,这样作为身份认证是十分有效的。5.2 Application 对象与Server对象的应用5.2.1 Application 对象简介Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。Application对象主要用于存储应用程序信息。当服务器启动后就产生了Application对象,一旦创建了Application对象,除非服务器关闭,否则将一直保持下去。在ASP服务器运行时,仅有一个Application对象,它由服务器创建,也
18、由服务器自动清除,不能被用户创建和清除,只能创建这个Appliation对象的同步拷贝。当客户在所访问的网站的各个页面之间浏览时,所使用的Application对象都是同一个,直到服务器关闭。从本质上来说,一个ASP应用程序就是在硬盘上的一组主页以及ASP文件,当ASP应用程序在服务器端启动时,就创建了一个Application对象,Application对象拥有作为单个网页所无法拥有的属性。下面是ASP的Application的一些特性:数据可以在Application内部共享,因此可以覆盖多个用户;Application包含可以触发某些applicatin脚本的事件,可以被整个Applic
19、ation共享。个别的Application可以用InternetServiceManager来设置而获得不同属性单独的Application可以隔离出来在其自身的内存中运行,这就是说,如果某个用户的Application遭到破坏,不会影响其他人;可以停止一个Application(将其所有组件从内存中驱除)而不会影响到其他应用。与Session不同的是,Application变量不需要Cookies。网站不需要利用Application变量来跟踪用户进程。这就意味着使用起来很安心,可以适应任何浏览器。同时,Application变量可以被多个用户共享,一个用户对Application变量的操
20、作结果可以传递给另外的用户。5.2.2 Application 对象的属性、方法与事件1Application 对象的属性Application对象没有内置的属性,但是设计者可以自行创建其属性,方法如下:Application(属性名)=值大部分Application变量都存放在Contents集合中,当创建一个新的Application属性时,193其实就是在Contents集合中添加了一项变量。下面两个脚本是等效的:%Application.contents(hello)=欢迎使用ASP案例教程由于Application变量存储在集合里,所以如果想要全部显示,通常可以用ForEach循环来
21、实现。例如:%ForEachitemInApplication.ContentsResponse.write(&item&Application.Contents(item)next%2Application 对象的方法:Application对象的方法只有两个方法:一个是Lock,另一个是Unlock。其中Lock方法Unlock则用于取消Lock方法的限制。用于保证同一时刻只能一个用户对Application进行操作。例如:这种方法主要是为了防止多个用户同时对共享的Appliction对象进行修改,而造成错误。3Application 对象的事件Application对象有
22、两个事件Application_OnStart()和Application_OnEnd()。Application_OnStart()事件在应用程序启动时触发,Application_OnEnd()事件在应用程序结束时触发。Application对象的事件过程都是必须定义在Global.asp文件中,一般把连接数据的函数定义在这两个事件,然后放在Global.asp中。下面是Application对象的常用方式:Application(AppName)valueApplication.LockApplication.UnLock存储Application变量值,也可读取该值Applicatio
23、n变量值锁定,防止同时更改变量值Application变量值解锁,允许更改变量值IsEmpty(Application(AppName)=True判断Application值是否存在此外,Application与Session对象变量都可以用来存储数组和系统对象,引用方法是变量名相当于数组名,但不能直接改变其值,需要借助临时数组修改值后,再赋给Session与Application变量。5.2.3 Server 对象简介Server对象提供了一系列的方法和属性,在使用ASP编写脚本时是非常有用的。最常用194的是Server.CreateObject方法,它允许设计者在当前页的环境或会话中在服
24、务器上实例化其他组件对象,通过这些组件对象来扩充ASP的功能(如数据库访问,邮件发送等)。此外,Server对象还有一些方法能够把字符串翻译成在URL和HTML中使用的正确格式,这将通过把非法字符转换成正确、合法的等价字符来实现。Server对象提供对服务器上的方法和属性的访问。其中大多数方法和属性是作为实用程序的功能服务的。5.2.4 Server 对象的属性Server对象只有一个属性ScriptTimeout,用于设置程序能够运行的最大时间。ScriptTimeout属性指定脚本在结束前最大可运行多长时间。当处理服务器组件时,超时限制将不再生效。使用格式如下:Server.ScriptT
25、imeout=NumSeconds其中,参数NumSeconds指定脚本在被服务器结束前最大可运行的秒数。默认值为90秒。通过使用元数据库中的AspScriptTimeout属性可以为Web服务或Web服务器设置缺省的ScriptTimeout值。ScriptTimeout属性不能设置为小于在元数据库中指定的值。例如,如果NumSeconds设置为10,而元数据库设置包含了默认值90秒,则脚本在90秒后超时。但如果NumSeconds设置为100,则脚本在100秒后超时。下面语句中,如果服务器处理脚本超过100秒,将使之超时。下面的语句用于获取ScriptTimeout属性当前值,并将其存储在
26、变量TimeOut中。5.2.5 Server 对象的方法(1)CreateObjectCreateObject方法创建服务器组件的实例。使用格式如下:Server.CreateObject(progID)其中,参数progID指定要创建的对象的类型。progID的格式如下:Vponent.Version默认情况下,由Server.CreateObject方法创建的对象具有页作用域。这就是说,再当前ASP页处理完成之后,服务器将自动销毁这些对象。例如,在如下所示的脚本中,当Session对象被销毁,即当对话超时时或Abandon方法被调用时,存储在会话变量中的对象也将被销毁。可以通过将变量设置
27、为Nothing或新的值来销毁对象,如下所示。第一行语句用于释放ad对象,第二行语句用一个字串赋值给ad。需要注意,不能创建与ASP内置对象同名的对象实例。例如,下列脚本将返回错误。195(2)HTMLEncodeHTMLEncode方法用于对指定的字符串采用HTML编码。使用格式如下:Server.HTMLEncode(string)其中,参数string指定要编码的字符串。HTMLEncode方法常用于需要在客户端输出一些特殊的HTML字符,如“”,这些字符在HTML中有着特殊用途,因此不能直接使用Response.Write方法输出,而需要使用HTMLEncode转码后输出。例如:%=S
28、erver.HTMLEncode(Theparagraphtag:)%上面语句将在客户端输出“Theparagraphtag:”。以上输出将被Web浏览器显示为“Theparagraphtag:”如果查看一下源文件或以文本方式打开一个Web页,就可以看到已编码的HTML语句“sfasTheparagraphtag:<P>”,其中将用对应的HTML编码进行了替换。(4)URLEncodeURLEncode方法将URL编码规则,包括转义字符,应用到指定的字符串。使用格式如下:Server.URLEncode(string)其中,参数String指定要编码的字符串。例如:上面
29、语句将输出:http%3A%2F%2Fwww%2Esina%2Ecom(5)MapPathMapPath方法将指定的相对或虚拟路径映射到服务器上相应的物理目录。使用格式如下:Server.MapPath(Path)其中,参数Path指定要映射物理目录的相对或虚拟路径。若Path以一个正斜杠(/)或反斜杠()开始,则MapPath方法返回路径时将Path视为完整的虚拟路径。若Path不是以斜杠开始,则MapPath方法返回同当前asp文件中已有的路径相对的路径。注意,MapPath方法不支持相对路径语法(.)或(.),下列相对路径返回一个错误。Server.MapPath(./MyFile.tx
30、t)MapPath方法不检查返回的路径是否正确或在服务器上是否存在。因为MapPath方法只映射路径而不管指定的目录是否存在,所以,您可以先用MapPath方法映射物理目录结构的路径,然后将其传递给在服务器上创建指定目录或文件的组件。对于下面示例,假设文件data.txt和包含下列脚本的test.asp文件都位于目录C:InetpubwwwrootScript下。C:Inetpubwwwroot目录被设置为服务器的根目录。下列示例使用服务器变量PATH_INFO映射当前文件的物理路径。将输出c:inetpubwwwrootScripttest.asp由于下列示例中的路径参数不是以斜杠字符开始的
31、,所以它们被相对映射到当前目录,196此处是C:InetpubWwwrootScript。上面语句将输出c:inetpubwwwrootScriptdata.txt上面语句将输出c:inetpubwwwrootScriptScriptdata.txt下面的两个示例使用斜杠字符指定返回的路径应被视为在服务器的完整虚拟路径。上面语句将输出c:inetpubScriptdata.txt上面语句将输出c:inetpubScript下列示例演示如何使用正斜杠(/)或反斜杠()返回宿主目录的物理路径。脚本上面语句将输出c:inetpubwwwroot。上面语句将输出c:inetpubwwwroot。5.2
32、.6 Global.asa 文件文件 Global.asa文件又称为ASP全局文件,它是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。Global.asa文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是Global.asa且必须存放在应用程序的根目录中,每个应用程序只能有一个Global.asa文件。可以用任何支持脚本的语言编写Global.asa文件中包含的脚本。如果多个事件使用同一种脚本语言,就可以将它们组织在一组标记中。在Global.asa文件中,包含的脚本必须用标记封装。如果包含的脚本没有用
33、标记封装,或定义的对象没有会话或应用程序作用域,则服务器将返回错误。服务器会忽略已标记的但未被应用程序或会话事件使用的脚本以及文件中的HTML语句。Global.asa文件只能包含如下内容:应用程序(Application)事件、会话(Session)事件、声明和TypeLibrary声明。当用户保存对Global.asa文件所做的更改时,在重新编译Global.asa文件之前,服务器会结束处理当前应用程序的所有请求。在此期间,服务器拒绝其他请求并返回一个错误消息,说明正在重启动应用程序,不能处理请求。当用户当前的所有请求处理完之后,服务器对每个会话调用Session_OnEnd事件,删除所有
34、活动会话,并调用Application_OnEnd事件关闭应用程序,然后编译Global.asa文件。接下来,用户的请求将启动应用程序并创建新的会话,触发Application_OnStart和Session_OnStart事件。但是,保存Global.asa文件中所包含的文件的更改并不能使服务器重新编译Global.asa。为了让服务器识别包含文件的改动,必须再保存一下Global.asa文件。在Global.asa文件中声明的过程只能从一个或多个与Application_OnStart、Application_OnEnd、Session_OnStart和Session_OnEnd事件相关的
35、脚本中调用。用户可以在Global.asa文件中为这些事件指定脚本。当应用程序启动时,服务器在Global.asa文件中查197找并处理Application_OnStart事件脚本。当应用程序终止时,服务器处理Application_OnEnd事件脚本。当没有Session会话的用户在打开应用程序中的Web页时,Web服务器会自动创建会话。当超时或服务器调用Abandon方法时,服务器将终止该会话。Session会话有两个事件,即Session_OnStart事件和Session_OnEnd事件。可以在全局文件Global.asa中为这两个事件指定脚本。当会话开始时,服务器在Global.a
36、sa文件中查找并处理Session_OnStart事件脚本。该脚本将在处理用户请求的Web页之前处理。在会话结束时,服务器将处理Session_OnEnd事件脚本。(1)Application_OnStartApplication_OnStart事件在首次创建新的会话(即Session_OnStart事件)之前发生。只有Application和Server内建对象是可用的。Application_OnStart事件脚本中引用Session、在Request或Response对象将导致错误。Application_OnStart事件格式如下:SubApplication_OnStartEndSu
37、b其中,参数ScriptLanguage指定用于编写事件脚本的脚本编写语言。可以是任一支持脚本编写的语言,例如VBScript或JScript。如果有多个事件使用同一种脚本编写语言,则可以将其组织在一组标记下。(2)Application_OnEnd事件Application_OnEnd事件在应用程序退出时于Session_OnEnd事件之后发生,只有Application和Server内建对象可用。Application_OnEnd事件使用格式如下:SubApplication_OnEnd.EndSub有一点需要注意,不能在Application_OnEnd脚本中调用MapPath方法。(3
38、)Session_OnStartSession_OnStart事件在服务器创建新会话时发生。服务器在执行请求的页之前先处理该脚本。Session_OnStart事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设ObjectContext、Request、Response、Server和Session)都置它们。所有内建对象(Application、可以在Session_OnStart事件脚本中使用和引用。Session_OnStart事件使用格式如下:SubSession_OnStart.198在这里添加脚本在这里添加脚本EndSub尽管在Session_OnStart事件包含Red
39、irect或End方法调用的情况下Session对象仍会保持,然而服务器将停止处理Global.asa文件并触发Session_OnStart事件的文件中的脚本。(4)Session_OnEndSession_OnEnd事件在会话被放弃或超时发生。在服务器内建对象中,只有Application、Server和Session对象可用。Session_OnEnd事件使用格式如下:SubSession_OnEnd.EndSubGlobal.asa使用了微软的HTML拓展标记语法来限制脚本,这也就是说,必须用标记来引用这两个事件而不能用符号引用。本书例子中Global.asa使用的是VBScript,
40、但是也可以使用其他脚本语言。在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa在任何情况下都不能执行显示语句。可以在Global.asa中添加一些希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行,例如下例:SUBSession_OnStartSession(Username)=“Unknow”Session(Userpassword)=UnknowENDSUB上面代码将”Unkonw”值赋给了Username和UserPassword变量。这个例子将在任何一个Session会话创建的时候就执
41、行。Session_Onstart脚本可以用于很多种目的。例如,希望访问者必须浏览某一个主页。下面的例子就在用户进程开始时进行了这种引导,将确保用户在访问网站时必须浏览http:/localhost/index.asp页面,而无论用户输入的是什么地址。SubSession_OnStartstartPage=http:/localhost/index.aspResponse.Redirect(startPage)EndSub将上面的内容保存为Global.asa文件并存放在应用程序的根目录中,则每当用户请求Web页时,服务器都会创建一个新会话,对于每个请求,服务器都将处理Session_OnStart脚本并199将用户重定向到index.asp页面中。有一点需要注意,在Redirect方法之后的任何Session_OnStart事件脚本都不会执行。因此,应该在事件脚本的最后再调用Redirect方法。下面的例子将通过Session_OnStart和Session_OnEnd来帮助对用户信息进行统计。SUBSessi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 访问控制模型研究-洞察及研究
- 2025年性安全教育常识测试题及答案
- 就业政策区域差异研究-洞察及研究
- 出差行车安全知识培训课件
- 陕西省司法考试司法制度考试题(附答案)
- 出差安全培训交底课件
- 2025物业服务委托管理标准合同范本
- 出国企业安全培训课件
- 出入院流程课件
- 出入量记录课件
- 幼儿园课程概论第2版(学前教育专业)PPT全套完整教学课件
- 系统性红斑狼疮狼疮性肾炎
- 《思想道德与法治》课件第四章明确价值要求践行价值准则第三节积极践行社会主义核心价值观
- 高等土力学土的本构关系
- JJG 956-2013大气采样器
- 2023年化工检修钳工题库及答案
- GA/T 1707-2020防爆安全门
- 教师调课申请表
- 会展项目管理教材 课件
- 酒店文化全套教学课件
- 钻孔桩桩底沉渣处理高压注浆方案
评论
0/150
提交评论