[2008.09.24] Request 객체#
환경변수명 설명
CONTENT_LENGTH 보내진 바이트수
CONTENT_TYPE Request가 POST타입일때 컨텐츠 타입
보통 application/x-www-form-urlencode이다
GATEWAY_INTERFACE CGI버전
LOCAL_ADDR 서버의 IP 주소
PATH_INFO 서버 파일 웹 경로
PATH_TRANSLATED 서버 파일 실제 경로
QUERY_STRING 주소줄의 ?뒤의 값
REMOTE_ADDR 클라이언트 IP주소
REMOTE_HOST 클라이언트 hostname(ip주소)
REMOTE_USER 서버에 인증받은 사용자 ID명
REQUEST_METHOD 서버로 전송된 Method
SCRIPT_NAME 실행할 애플리케이션, 스크립트이름
SERVER_NAME 서버이름 혹은 주소
SERVER_PORT 서버 포트
SERVER_PORT_SECURE Encrypt된 포트의 경우 1로된다.
SERVER_PROTOCOL 프로토콜과 버젼
SERVER_SOFTWARE 웹서버 어플리케이션이름과 버젼
URL 주소줄의 내용
HTTP_ACCEPT 브라우져에서 받아들일수 있는 MIME타입
HTTP_ACCEPT_LANGUAGE 브라우져 사용 언어
HTTP_HOST tandol.pe.kr
HTTP_USER_AGENT 브라우져종류와 버젼등
HTTP_COOKIE 쿠키값

사용법

<%
for each item in request.servervariables
    for i=1 to request.servervariables(item).count
        response.write "<tr><td>"
        response.write item & "</td><td>"
        a = request.servervariables(item)(i)
        if a="" then a="&nbsp;"
        response.write a & "</td></tr>"
    next
next

%>

<%=request.ServerVariables("HTTP_USER_AGENT")%>

 

[2008.09.24] Response#
컬렉션
Cookies 브라우져로 전송도는 모든 쿠키값
속성(프로퍼티)
buffer 페이지가 완성될때까지 버퍼할것인지 지정
charset 문자셑 - 헤드에 덧붙여진다.
ContentType 컨텐츠 형식 기본값은 text/html이다.
Expires 브라우져에서 캐시완료 기간
메소드
addHeader http헤드를 추가 혹은 변경
clear 버퍼된값을 삭제한다. buffer=true가 되어 있어야 한다
end 스크립트수행을 중단한다.
flush 버퍼의 값을 즉시 전송한다. buffer설정되어 있어야 한다.
reDirect 다른url로 이동
write 클라이언트로 전송
[2008.09.24] Application#

서버의 모든 사용자가 전역변수 처럼 공유하는 개체이다. 메소드에는 lock과 unlock이 있다.

  1. <%
    application.lock
    application("ReadCnt") = application("ReadCnt")+1
    application.unlock
    %>
    현재 문서를 읽은 회수는
    <%=application("ReadCnt")%>

 

[2008.09.24] Server#

서버의 컴포넌트 개체를 이용할 때 사용하는 CreateObject, 웹 가상경로를 실제 물리적 경로로 바꾸어주는 MapPath, 스크립트의 실행 시간을 조절해주는 ScriptTimeout등이 있다.

ex)
    set db = Server.CreateObject("ADODB.Connection")
    dbPath = Server.MapPath("sample.mdb")
    server.ScriptTimeout = 120 '
스크립트 실행 시간을 최대 120초로 설정

 

[2008.09.24] Session#

현재 서버에 접속된 사용자가 전역변수처럼 사용하는 개체이다.

Timeout속성은 세션의 유지시간으로 분단위이다. 예) session.timeout=10' 세션시간을 10분으로 설정
SessionID는 사용자마다 설정되는 ID로서 사용자정보를 따로 관리할때 사용된다.

 

[2008.09.24] 웹서버 Root의 Global.asa#

웹서버의 Global.asa는 특수한 기능을 하는 파일 이다.
웹서버가 실행 할 때와 중단 할때, 사용자가 처음으로 접속할 때와 접속을 중단할 때 각각의 할 일 을 적을 수 있도록 고안 되었다.
PWS 사용자는 Global.asa변경 후 재 부팅을 해 주어야 제대로 작동 한다.
일반적인 구조는 다음과 같다.

  1. Global.asa
  2. <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>
  3.  

 

[2008.09.24] 첨부화일 무료 컴포넌트#

TABSUPLOAD : http://www.tabslab.com/kr/product/upload10/

설명 : http://www.dragoneye.co.kr/lecture/tabs.asp

 

UpDownExpress V2.0 : http://www.imoxion.com


Fileman.dll (국내, NT서버에서 많이 사용 되었음)
SiteGalaxyUpload.dll (외산, 무료로 많은 인기를 끌었음)
AbcUpload.dll (외국, 유료, 성능으로 인기를 끌었음)
Dextupload.dll (국내, 유료, 성능으로 인기를 끌었음)

Tabsupload .dll (국내, 무료, 성능으로 인기를 끌 예정임)

 

[2008.09.23] 트랜잭션관리#

트랜잭션으로 여러 ASP 페이지를 연결시키는 방법

 

Autocommit : 자동적인 커밋

Explicit 트랜젝션 : 사용자가 명시적으로 지시함,

begin tran

update 계좌 set 금액 = 금액 - 100 where id like '코난'

update 계좌 set 금액 = 금액 + 100 where id like '나나'

commit tran

Implicit transactions

 

[2008.09.22] 파일 처리#

Binary 파일 처리

  1. <%
  2.           Response.ContentType = "image/gif" Dim objStream, buff set objStream= Server.CreateObject("ADODB.Stream") objStream.Open objStream.LoadFromFile("c:\copyright_01.gif") buff = objStream.ReadText(-1) Response.BinaryWrite buff
              
              %>
              
          <%
          

'==================================================================================

'== 설명 : 폴더 존재 여부를 체크하여 폴더 만들기

'== 이름 : ChkDirecoty(dir, gubun, dir_status)

'== 변수 : dir(경로명), gubun(폴더구분자),dir_status(가상경로:v, 물리적경로:p)

'== 반환 : String

'===================================================================

Sub ChkDirectory(dir,gubun, dir_status)

Dim objFile, objStream

Dim i,tmp

Set objFile = Server.CreateObject("Scripting.FileSystemObject")

for i = 0 to ubound(split(dir,gubun))-1

tmp = tmp&split(dir,gubun)(i)&gubun

If dir_status = "v" then

IF not(objFile.folderexists(Server.MapPath(tmp))) then

objFile.createfolder(Server.MapPath(tmp))

End If

Elseif dir_status = "p" then

IF not(objFile.folderexists(tmp)) then

objFile.createfolder(tmp)

End If

End If

next

Set objFile = Nothing

End Sub

'===================================================================

'== 설명 : 화일 지우기

'== 이름 : DeleteTxtFile(FileName, path_status)

'== 변수 : FileName : 전체 화일명, status : 파일경로 형태(v:가상경로,r:물리적경로)

'== 반환 : String

'===================================================================

Sub DeleteTxtFile(FileName, path_status)

Dim objFile, objStream, Err

' On Error Resume Next

Set objFile = Server.CreateObject("Scripting.FileSystemObject")

If path_status = "v" then

objFile.DeleteFile Server.MapPath(FileName)

Else

objFile.DeleteFile FileName

End If

Set objFile = Nothing

' Err.Clear

End Sub

'===================================================================

'== 설명 : 고유한 파일이름으로 변환

'== 이름 : GetUniqueName

'== 변수 : String

'== 반환 : String

'===================================================================

Function GetUniqueName(byRef strFileName, DirectoryPath)

Dim strName, strExt

strName = Mid(strFileName, 1, InstrRev(strFileName, ".") - 1) ' 확장자를 제외한 파일명을 얻는다.

strExt = Mid(strFileName, InstrRev(strFileName, ".") + 1) '확장자를 얻는다

Dim fso

Set fso = Server.CreateObject("Scripting.FileSystemObject")

Dim bExist : bExist = True

'우선 같은이름의 파일이 존재한다고 가정

Dim strFileWholePath : strFileWholePath = DirectoryPath & "\" & strName & "." & strExt

'저장할 파일의 완전한 이름(완전한 물리적인 경로) 구성

Dim countFileName : countFileName = 0

'파일이 존재할 경우, 이름 뒤에 붙일 숫자를 세팅함.

Do While bExist ' 우선 있다고 생각함.

If (fso.FileExists(strFileWholePath)) Then ' 같은 이름의 파일이 있을 때

countFileName = countFileName + 1 '파일명에 숫자를 붙인 새로운 파일 이름 생성

strFileName = strName & "-" & countFileName & "." & strExt

strFileWholePath = DirectoryPath & "\" & strFileName

Else

bExist = False

End If

Loop

GetUniqueName = strFileWholePath

End Function

'===================================================================

'== 설명 : 클라이언트에서 업로드된 파일명 리턴

'== 이름 : ChkFileName

'== 변수 : String

'== 반환 : String

'===================================================================

Function ChkFileName(name)

Dim tmpName, tmpExt, arrTmpName, tmpFileName

tmpName = Mid(name, 1, InstrRev(name, ".") - 1)

tmpExt = Mid(name, InstrRev(name, ".") + 1)

arrTmpName = split(tmpName,"\")

tmpName = arrTmpName(Ubound(arrTmpName))

tmpFileName = tmpName&"."&tmpExt

ChkFileName = tmpFileName

End Function

'==================================================================================

'== 설명 : 화일 존재 여부를 체크하여 리턴

'== 이름 : ChkDirecoty(dir_status, filePath)

'== 변수 : dir_status(가상경로:v, 물리적경로:p), filePath(디렉토리포함)

'== 반환 : 존재(true), 없음(false)

'===================================================================

Function ChkFileExist(dir_status, filePath)

Dim objFile, tmpFile

Set objFile = Server.CreateObject("Scripting.FileSystemObject")

IF dir_status="v" then

tmpFile = Server.MapPath(filePath)

Else

tmpFile = filePath

End IF

If objFile.FileExists(tmpFile) then

chkFileExist=true

else

chkFileExist=false

End If

Set objFile = Nothing

End Function

%>

[2008.07.23] DB Connection##
  • dbnmpntw - Win32 Named Pipes
  • dbmssocn - Win32 Winsock TCP/IP
  • dbmsspxn - Win32 SPX/IPX
  • dbmsvinn - Win32 Banyan Vines
  • dbmsrpcn - Win32 Multi-Protocol(Windows RPC)

Provider=MSDASQL;DRIVER=SQL Server;SERVER=127.0.0.1;DATABASE=dbName;UID=username;PWD=password

+ Recent posts