Computer Science/etc

[ASP] 객체 모델

Bay Im 2025. 3. 22. 16:02

ASP 객체 모델

  • Request
    • 클라이언트가 웹서버에 전달한 정보를 검색할 때 사용되는 객체
    • 예시 작업
      • 클라이언트가 URL의 뒤에 추가한 정보를 저장 (GET 방식)
      • 클라이언트가 FORM 태그를 이용해 전달한 정보를 저장 (GET, POST 방식)
      • 클라이언트에서 전달한 쿠키 값을 저장
      • 클라이언트에서 전달한 보안 코드를 저장
      • 웹서버 자체에 대한 일반 정보(HTTP 서버 변수)를 저장
  • Response
    • 서버가 클라이언트에게 응답할 때 사용되는 객체
    • 예시 작업
      • 클라이언트로 전달되는 페이지에 정보를 추가
      • 클라이언트에 쿠키를 만들기 위해 클라이언트의 웹브라우저에 정보를 전달
      • 요청한 페이지가 아닌 전혀 다른 페이지로 이동시키는
      • 페이지 생성과 동시에 정보를 전달할지, 생성된 다음 정보를 전달할지를 결정
      • 페이지의 속성(HTML 헤더, 타입)들을 제어하고 변경
  • Application
    • 웹 어플리케이션이 시작하거나 종료할 때 지정된 특정한 작업을 수행
  • Session
    • 로그인과 같은 아이디 및 정보 세션 개체에 저장
  • Server
    • 서버 상에서 특정한 작업들을 실행하는 객체
    • 예시 작업
      • 페이지가 너무 오래 뜨지 않는 경우를 대비, 한계 시간을 설정
      • 사용자가 전달한 문자열을 HTML 형식으로 변경
      • 사용자가 전달한 문자열을 올바른 URL 문자열의 형식으로 변경
      • 가상 경로(URL)를 서버 컴퓨터의 실제 경로로 변경
      • 다른 페이지로 이동하여 실행 경로를 변경
      • CreateObject 라는 메소드를 사용하여 컴포넌트의 인스턴스를 생성
  • ObjectContext
    • 트랜잭션을 시작하거나 종료할 때 사용하는 객체 (현재는 거의 사용하지 않는 객체)
  • ASPError
    • ASP에서 발생한 마지막 에러에 대한 정보 제공

Request 객체의 멤버 목록

  • Collection
    • QueryString 컬렉션
      • form 태그 안에 있는 모든 HTML 컨트롤 요소들의 값을 저장하는 컬렉션 (GET 방식)
      • 예시
        • 주소창에 ~/test.asp?first=kim&second=dukyoung 입력시
        • Request.QueryString("first") 에는 "kim" 이라는 값이 저장
        • Request.QueryString("second") 에는 "dukyoung" 이라는 값이 저장
      • 예시 코드
        • 'Form.html
          <html>
          <body>
              <form Action="Result.asp" METHOD="GET">
                  이름 : <INPUT TYPE="Text" NAME="name"><br>
                  나이 : <INPUT TYPE="Text" NAME="age"><br>
              <INPUT TYPE="Submit" NAME="Enter" Value="확인">
              </form>
          </body>
          </html>
          
          'Result.asp
          <html>
          <body>
              이름은 <%=Request.QueryString("name")%> 이구요..<br>
              나이는 <%=Request.QueryString("age")%> 입니다
          </body>
          </html>


    • Form 컬렉션
      • form 태그 안에 있는 모든 HTML 컨트롤 요소들의 값을 저장하는 컬렉션 (POST 방식)
      • 예시 코드
        • 'Form.htm
          <html>
          <body>
              <form Action="Result.asp" METHOD="POST">
                  이름 : <INPUT TYPE="Text" NAME="name"><br>
                  나이 : <INPUT TYPE="Text" NAME="age"><br>
                  <INPUT TYPE="Submit" NAME="Enter" Value="확인">
              </form>
          </body>
          </html>
          
          'Result.asp
          <html>
          <body>
              이름은 <%=Request.Form("name")%> 이구요..<br>
              나이는 <%=Request.Form("age")%> 입니다
          </body>
          </html>

    • Cookies 컬렉션
      • 사용자 컴퓨터에 저장된 클라이언트의 정보를 읽어오는 역할 담당
    • ServerVariables 컬렉션
      • 클라이언트가 서버로 값을 전달할 때 자동적으로 함께 전달되는 HTTP 헤더값들과 웹서버 자체의 몇가지 환경변수 값들을 저장
      • 예시 코드
        • <TABLE BORDER>
          <TR>
              <TD><B>Server Variable</B></TD>
              <TD><B>Value</B></TD> </TR>
          <% For Each strKey In Request.ServerVariables %>
          <TR>
              <TD><%=strKey %></TD>
              <TD><%=Request.ServerVariables(strKey) %> </TD>
          </TR>
          <% Next %>
          </TABLE>
    • ClientCertificate 컬렉션
      • 클라이언트의 브라우저에서는 서버로 지정된 인증 필드들을 전송하게 되는데, 이 정보들이 저장되는 컬렉션
  • 속성 Properties
    • TotalBytes 속성
      • 클라이언트에서 서버로 보낸 정보 안에 있는 바이트의 전체 개수에 대한 정보 제공
        • ex) intCount = Request.TotalBytes
  • 메소드 Method
    • BinaryRead(count) 메소드
      • form 태그에서 POST 방식으로 전달시 count 바이트 만큼의 데이터를 읽어들이는 역할
        • ex) strData = Request.BinaryRead(intCount)

 

Server 객체의 멤버 목록

  • 메소드 Method
    • CreateObject 메소드
      • 객체의 인스턴스를 만드는 메소드
      • 형식
        • Set 인스턴스명 = Server.CreateObject(”프로그램ID.객체명”)
    • URLEncode 메소드
      • URL에서 특수문자 같이 넘길 때 사용
      • 예시
        • <a href="movie.asp?name=movie&title=<%=Server.URLEncode(str)%>">

 

Application 객체의 멤버 목록

  • 메소드 Method
    • Lock
      • Application 객체의 락을 걸어 다른 사용자가 접근하지 못하도록 한다.
      • 락을 건 사용자만 조절 가능
    • UnLock
      • 락 해제
  • 이벤트 Event
    • OnStart
      • 웹사이트의 어플리케이션이 시작할 때 발생
    • OnEnd
      • 웹사이트의 어플리케이션이 종료할 때 발생
728x90