[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=" "
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이 있다.
- <%
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변경 후 재 부팅을 해 주어야 제대로
작동 한다.
일반적인 구조는 다음과 같다.
- Global.asa
- <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>
[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] 트랜잭션관리#
Autocommit : 자동적인
커밋
Explicit 트랜젝션 : 사용자가 명시적으로 지시함,
begin tran
update 계좌 set 금액 = 금액
- 100 where id like '코난'
update 계좌 set 금액 = 금액
+ 100 where id like '나나'
commit
tran
Implicit
transactions
[2008.09.22] 파일 처리#
Binary 파일 처리
- <%
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
'asp' 카테고리의 다른 글
IsNull과 IsEmpty 의 차이점 비교 (0) | 2010.02.09 |
---|---|
트랜잭션으로 여러 ASP 페이지를 연결시키는 방법 (0) | 2010.01.08 |
HTMLEncode / URLEncode (0) | 2010.01.08 |
덱스트 DEXT 업로드 (0) | 2009.12.21 |
ASP 프로그램에서 세션 및 응용 프로그램 변수 사용 (0) | 2009.12.10 |