ASP 객체

2011. 4. 3. 00:15카테고리 없음


 @ ASP 객체

1. Global.asa  (따로 파일이 있다)

- 4개의 주요 이벤트를 감지하는 책임이 있다.
( application_onstart, application_onend, session_onstart, sesson_onend)

- <script language=VBscript runat=server>라는 스크립트로 시작해서 </script>로 끝난다

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
  

Sub Application_OnStart
  
End Sub
  
  
Sub Application_OnEnd
  
End sub
  
  
Sub Session_OnStart
  
End Sub
  
  
Sub Session_OnEnd
  
End Sub
  
</SCRIPT>

- 이 파일에는 특별한 asp이벤트가 발생했을때 자동으로 실행되는 특별한 이벤트 핸들러를 추가할수 있다.


----------------------- @ ASP 객체 - Request  (브라우저로부터 서버로 오는것)

1. Querystring (ex)request.querystring("name")

- GET 메소드를 이용해서 넘어온 값을 알아내기 위해 쓰인다.

- 브라우저상에서 어느 값을 기입하고 확인을 누르면 xxx.asp로 가게된다 asp파일에서 request.querystring을 사용하여
  클라이언트 브라우저로부터 전송된 데이터를 뽑아낸다

- method=get 일때 쓰인다


2. Form (ex)request.form("name")

- querystring와 같은 방법으로 쓰인다, 다른점은 "method=post"일때 쓰인다

# get은 폼데이터를 action속성의 url로 송신한다, 또 명령행으로 데이터가 전달되는 것이기 때문에 데이터가 명령행의
 최대 허용 길이를 넘게되면 그 뒤는 무시된다.

 하지만 post일 경우는 폼데이터를 HTTP 헤더에 포함되어 보내진다.디코딩이 어렵긴 하지만 데이터의 길이가 길어진다면 이방법이 좋다, 보안에서도

 단 하이퍼링크로 데이터를 보낼때는 querystring으로 해야한다.


---------------------- @ ASP 객체 - Response (브라우저로 되돌려 보내지는 부분 제어)

1. Write (ex)response.write(값)

- 텍스트가 전송될때 자동적으로 적절한 문자 세트로 변환해준다. 만일 이러한 변환을 원하지 않는다면 Binarywrite메소드를 이용하면 된다.

- write 메소드는 어떠한 html 태그에도 사용될수 있다.

 <html>
  <body>
  
  <% for test= 1 to 10
  
  asp="나의친구는 하루" &test& "끼 먹는다. <p>"
  
  response.write(asp)
  
  next %> 
  
  </body>
  </html>


2. Buffer (ex)response.buffer=true

- 이 프로퍼티를 사용하면 클라이언트가 받는 정보 및 시기를 제어할수 있다

- true로 설정하면 페이지 출력이 버퍼링되면 서버에서는 현재 페이지의 모든 서버스크립트가 처리될때까지 또는 flush나 end 메소드가
 요청될때까지 클라이언트에 응답을 보내지 않는다, 그리고 서버에서 데이터를 클라이언트에 보내고 이 클라이언트가 그 데이터를 출력되기전
 설정이 되어 있어야 한다. 그리하여 제일 첫째줄에 삽입을 해야한다. 

- 이 프로퍼티가 false 일 경우는 end, flush, clear 등을 쓸경우 에러가 난다


3. Redirect (ex)response.redirect(경로)

- 이 메소드는 사용자를 다른 웹페이지로 옮길때 사용된다.

- 경로대신 화일명을 써줘도 무관하다


-------------------------------------@ ASP 객체 - Application

- 웹서버는 항상 정보에 대해 액세스하게 되어 있으므로 오직 웹서버가 운영체제에 의해 종료되었을때와 Onend 이벤트 핸들러의 스크립트가
 실행될때만이 애플리케이션이 종료된다. 웹서버가 다운되었을 경우 애플리케이션도 종료된다.

1. global.asa 내에

  <script language="vbscript" runat="server">
  
  sub application_onstart
  
  end sub
  
  sub application_onEnd
  
  end sub
  
  </script>


2. Lock, Unlock

- 애플리케이션은 홈페이지에 들어오는 모든 클라이언트에게 액세스 하도록 허용하므로, 두개의 클라이언트가 동시에 같은 데이터에
 액세스 할수 있다. 이경우 값이 변조되지 않도록 lock와 unlock를 사용한다, global.asa에 보면 사용자가 홈페이지에 방문할때마다
+1씩 올려주는 부분이 있다.


--------------------------@ ASP 객체 - Session
( 데이터를 패이지들 사이에서는 공유하되 다른 클라이언트와는 공유시키고 싶지 않다면 이 객체를 사용)

1.global.asa 내에

 <script language="vbscript" runat="server">
 
  Sub Session_onstart
  
  '세션이 시작될때 실행될 스크립트를 삽입
  
  Sub Session_onend <- 이 부분은 사용하든 안하든 상관없어요.
  
  '세션이 종료될때 실행될 스크립트를 삽입
  
  End sub

</script>


2. Timeout (ex) session.timeout=5  (global.asa내에)

- 클라이언트가 해당 세션을 물고 있을때 이 클라이언트가 지정된 시간안에 애플리케이션에게 요청하지 않으면 서버는 Session 객체를
 종료시킨다. 디폴트 값은 20분


3. Abandon

- 세션을 종료시키는 방법중 하나

- 이것은 세션을 즉각적으로 종료시키며, 사용하고 있던 리소스를 해제시ㅣㄴ다.


----------------------------@ ASP객체 - Server


1. Scripttimeout (ex)server.scripttimeout 로 알아본다

- 서버의 과부하를 방지하기 위해 스크립트를 종료시킨다. 변경하지 않는한 시간은 90초다


2. Htmlencode

- 어느 문장이 서버상에서 실행되지 아니하고 그대로 브라우저로 출력하고 싶을때 사용한다

<% 
  response.write(server.HTMLencode("<table>") 
%>


3. Mappath

- 스크립트에 사용될수 있는 파일위치정보를 제공한다. 그리고 클라이언트에 사용되는 논리적인 경로정보를 서버상의 
 물리적인 경로를 변환 시키는것이다.

- 현재 홈페이지의 경로를 알고 싶을때

<% 
  response.write(server.mappath("."))
  response.write("<p>")
  response.write(server.mappath(".."))
%>


4. Createobject

- 컴포넌트에 포함된 객체의 인스턴스를 생성시켜, 그것들의 메소드를 사용하거나 프로퍼티에 액세스할 수 있도록 하는 역할을 해준다.


<% 
  set test = server.createobject("mswc.browsertype")
%> 
  
  the <% = test.browser %> <% = test.version %> browser supports?
  tables = <% = test.tables %>
  frames = <% = test.frames %>
  vbscript = <% = test.vbscript %>

www.waglwagl.net 참고