회원등록 비번분실

작성자 ASP
작성일 2003-02-26 (수) 16:06
첨부#1 application.zip (1KB) (Down:31)
ㆍ추천: 0  ㆍ조회: 5749      
IP:
ASP 내장객체 (Application Object)
ASP내장객체 (Application Object)

Application 개체

 


 Application 개체는 간단하게 설명해 전역변수와 같은 역할을 한다. Session도 그런 의미로는 같지만 둘의 차이가 있다면 Application은 모든 사용자들에게 읽히고 전체적으로 제공되지만 Session은 각 사용자마다 개별적으로 적용된다는 것이다.

가장대표적인 예로 카운터가 그것이다. 사용자가 한명씩 늘어날 때마다 카운터가 증가하고 이 값을 저장한다.

 

 

Method (메소드)

 

Lock 다른 사용자의 Application 변수 수정을 막는다.
UnLock 다른 사용자의 Application 변수 수정을 허용한다.
Event (이벤트)  
OnStart 웹사이트의 어플리케이션이 시작할 때 발생
OnEnd 웹사이트의 어플리케이션이 끝날 때 발생

 


 

 예제1) (Application1.asp)

 

<% application("count")=1 %>

 

<html>

<body>

<center>

<h3>어플리케이션(1)</h3>

 

<p style="font-size:9pt;">

Application의 값은 : <%=application("count")%>

 

</center>

</body>

</html>

 

 

application("count")=1

이렇게 선언 되는 순간부터 application("count")라는 것은 우리가 웹사이트 내에서 1이란 값을 가지게 된다. 그 어떤 asp페이지에서도 이 변수를 사용할 수 있는 것이다. 또 전역변수이기 때문에 누구나 이 값을 바꿀 수가 있다.

 


application("count") 변수를 증가시키는 asp문을 작성해 보자

 

 예제2) (Application2.asp)

 

<% application("count")= application("count")+1 %>

<html>

<body>

<center>

<h3>어플리케이션(2) 증가</h3>

 

<p style="font-size:9pt;">

Application의 값은 : <%=application("count")%><p>

 

<p style="font-size:9pt;">

<font color="#CC6600">

이곳에 마우스를 대고<br>

새로고침을 해 보자<br>

숫자가 증가 할 것이다.<p>

</font>

</center>

</body>

</html>

 


 

여기서 알아 둬야 할 것이 있다. 아무 페이지나 어플리케이션 변수를 만들게 되면 문제가 생길 수가 있다.

그래서 일반적으로 어플리케이션 변수는 global.asa에서 만들어 주고 그곳에서 값을 주게 된다. 그렇지 않으면 사이트 이곳 저곳에서 선언한 어플리케이션 변수로 관리에 어려움을 겪에 될지도 모른다. 또한 값이 없는 어플리케이션 변수를 화면에 출력시켜도 어떤 에러도 발생시키지 않는다는 점을 유의해야 한다.

 

다음은 Lock과 UnLock에 대해 알아보자

위의 어플리케이션을 여러명이 동시에 접근했을 경우를 생각해 보자. 여러명이 동시에 하나의 변수의 값을 바꾼다면 심각한 문제의 소지를 지니고 있다. 따라서 이 경우 Lock과 UnLock 메소드를 이용한다.

 

Lock 메소드는 호출되는 순간 어플리케이션 자체를 잠시 잠근다. 다시 말해 그 누구도 어플리케이션의 그 어떠한 것도 사용하지 못하게 막는다. UnLock은 그 잠긴 상태를 풀어 주는 역할을 한다.

따라서 위의 예제를 아래의 예제로 바꿔주면 동시에 접근했다 하더라도 먼저 Lock을 건 사용자가 +1을 완료하기 전까지는 다른 사용자는 잠시 기다리게 된다. 하지만 기다리는 시간은 못 느낄 정도로 짧다.


 

 예제3) (Application3.asp)

 

<%

Application.Lock

application("count")= application("count")+1

Application.UnLock

%>

 

<html>

<body>

<center>

<h3>어플리케이션(3) Lock,UnLock</h3>

<p style="font-size:9pt;">

Application의 값은 : <%=application("count")%><p>

 

<p style="font-size:9pt;">

<font color="#CC6600">

위 예제2의 asp문에<br>

Lock과 UnLock을 사용하였다.<p>

</font>

</center>

</body>

</html>

 

 

  0
3500