[ASP] asp 정리

|
목차
1. 변수 선언
2. 배열 선언
3. 개체 선언

4. 논리 구문들
1) if문
2) Select Case문
3) For...Next문
4) Do While문

5) For Each...Next문

5. VBScript
1) 변환 관련 함수
2) 시간 관련 함수
3) 수학 관련 함수
4) 문자열 관련 함수
5) 변수 테스트 함수

6. ASP의 내장된 개체들

대소문자 구분이 없다.

Str과 str를 같은 변수로 인식한다.

1. 변수 선언
Dim
선언하지 않아도 문제는 없다. 선언만 하면 알아서 숫자, 문자로 사용이 가능하다.
str = "kim"
num - 1234

2. 배열 선언
Dim MyArray(2)
배열도 Dim으로 선언
처음에 배열의 크기를 정해 놓지 않고, 차후에 그 크기를 정해주고 싶다면
Dim MyArray()
ReDim MyArray(5)
이런식으로 ReDim을 이용해 가능하다.
같은 이름의 배열을 이미 들어있는 데이터는 그대로 둔 채로 그 배열의 크기를
늘려주고 싶다면 preserve라는 키워드를 사용하면 된다.
Dim MyArray() '배열 선언
ReDim MyArray(3) '배열을 재 선언하여 사이즈를 준다.

MyArray(0) = "taeyo"
MyArray(1) = "dragon"
MyArray(2) = "ring"

ReDim preserve MyArray(4) '데이터를 저장한 채로 배열의 사이즈를 늘려준다.
'기존에 들어가 있는 데이터는 그대로 아직 존재한다.

3. 개체 선언
Set

개체? 인스턴스?
개체 : 현실 세계를 추상화(Abstraction) 및 모델링한 결과로 나타나는 구체화된 개개의 실체
인스턴스 : 실제로 컴퓨터 기억공간상에 위치한 개체의 의미(개체와 유사하지만 개체가 좀 더 포괄적이다.)


음악을 연주해 주는 기능을 가진 쥬크박스(개체)를 ASP페이지에서 쓰고 싶다.
사용하려면 일단 ASP페이지에 사용하겠다고 알려줘야 한다.
그러나 이 개체는 나만 사용하는 것이 아니므로 개체를 통째로 가져오지 않고
복제한(인스턴스)를 만들어 사용해야 된다.
그 인스턴스를 만들어 주는 명령어가 Set이다.

Set MyJukebox = Server.CreateObject("Juke.Musixbox")

즉, 어떠한 기능을 가지는 개체를 가져다 쓰려면 Set이라는 명령어로 사용하려는 개체(Juke.Musixbox)의 인스
턴스를 만들고, 이젠ㄴ 그 이름으로 그 쥬크박스의 모든 기능을 사용할 수가 있게 되는 것이다.

※ 일반 변수 선언시 Set을 사용하면 에러가 난다.

4. 논리 구문들
1) if문
<% if sex = "man" then %>
당신은 남자
<%else%>
당신은 여자
<%end if%>

if문은 간단한 조건일 경우에 사용하면 유리

2) Select Case문
<%
select case choice
 case 1
  Response.Write " 1 을 선택"

 case 2
  Response.Write " 2 을 선택"
 case 3
  Response.Write " 3 을 선택"
 case 4
  Response.Write " 4 을 선택"
 case else
  Response.Write " 1, 2, 3, 4가 아닌 수를 선택"
end select
%>
여러 조건을 비교해야 할 경우는 Select문이 비교적 유리

3) For...Next문
For i = 시작 To 끝 [Step 스텝]
[실행문]
Next
간단한 루프를 위해 좋다.

4) Do While문
DO[{While | Until} 조건]
[실행문]
Loop[{While | Until } 조건]
복잡한 루프의 경우에 적합하다.

5) For Each...Next문
For Each 구성원 In 그룹
[실행문]
Next [구성원]
컬렉션에 포함된 개체들의 집합에서 이용하기 위해
배열이나 컬렉션의 각 구성원에 대한 조작을 할 때

5. VBScript

1) 변환 관련 함수
Asc : 문자열에서 첫번째 문자에 대한 ANSI 코드 번호를 리턴
Chr : 지정된 번호와 일치하는 ANSI 문자로 구성된 문자열을 리턴
CBool : Boolean 형식의 인자값을 리턴
Byte : Byte 형식의 인자값을 리턴
CDate : Date 형식의 인자값을 리턴
CDbl : Double 형식의 인자값을 리턴
CInt : Integer 형식의 인자값을 리턴
CLng : Long 형식의 인자값을 리턴
CSng : Single 형식의 인자값을 리턴
CStr : String 형식의 인자값을 리턴
Fix : 숫자의 정수 (전체) 부분을 리턴
Hex : 숫자의 16진수 값을 나타내는 문자열을 리턴
Int : 숫자의 정수 (전체) 부분을 리턴
음수일 때 : 숫자보다 작거나 같은 첫번째 음의 정수를 리턴.
Fix 함수는 숫자보다 크거나 같은 첫번째 음의 정수를 리턴.
Sgn : 숫자의 부호를 나타내는 정수를 리턴


<%
A = "20.2"
B = "10.5"
C = A + B
int_C = Cint(A)+Cint(B)
%>

C = 20.210.5
int_C = 30

2) 시간 관련 함수
now : 현재의 시스템의 날짜와 시간
date : 현재의 시스템의 날짜
time : 현재의 시스템의 시간
Year(Now) : 현재의 시스템의 년도
Month(Now) : 현재의 시스템의 월
day(Now) : 현재의 시스템의 일
Weekday(Now) : 현재의 시스템의 요일(숫자로 리턴된다. 1,2,3, = 월,화,수)
hour(now) : 현재의 시스템의 시
minute(now) : 현재의 시스템의 분
second(now) : 현재의 시스템의 초
DateAdd : 지정된 시간 간격을 추가한 날짜를 리턴
DateDiff : 두 날짜 사이의 일, 주 및 년의 숫자를 리턴
DatePart : 주어진 날짜의 일, 월 및 년을 리턴
DateSerial : 지정된 연, 월, 일에 대한 Date 형식의 값을 리턴
Date : 형식의 값을 리턴

3) 수학 관련 함수
난수 발생기 : 난수값 = Int((상한값 - 하한값 + 1 ) * Rnd + 하한값)

Randomize
Ranval = Int((10 * Rnd) + 1)
Sqr : 지정한 수의 제곱근을 리턴
Atn : 숫자의 아크 탄젠트 값을 리턴
Cos : 각도의 코사인 값을 리턴
Exp : e(자연 로그의 밑)의 인자만큼의 제곱을 리턴
Log : 숫자의 자연 로그를 리턴
Sin : 각도의 사인값을 리턴
Tan : 각도의 탄젠트 값을 리턴

4) 문자열 관련 함수
<%=FormatCurrency(1000000)%> : \1,000,000 => 숫자를 통화로 바꾸어주는 함수
기본적으로 제어판의 "국가별 설정"에 지정된 통화로 표시
<%=FormatDateTime(Date, 1)%> 1999년 6월 20일 일요일
<%=FormatDateTime(Date, 2)%> 1999-06-20
<%=FormatDateTime(Date, 3)%> 오전 12:00:00
현재의 날짜/시간의 포맷을 예로 보여주는 암수
<%=FormatPercent(50/100)%> :  50.00% => %포맷으로 숫자를 나타내는 함수
str = "Everybody call me Great Taeyo"
<%=Instr(str, "body")%> : 6 =>  문자가 존재하는 위치의 값을 리턴
<%=Lcase("SuperMan")%> superman => 소문자로 바꾸어 리턴
<%=Ucase("SuperMan")%> SUPERMAN => 대문자로 바꾸어 리턴
<%=len("Great taeyo")%> 11 => 문자열의 길이를 리턴
<%=left("Great taeyo", 5)%> Greate => 왼쪽에서 잘라서 가져오는 함수
<%=right("Great taeyo", 5)%> taeyo => 오른쪽에서 잘라서 가져오는 함수
str = "taeyo's asp"
<%=Mid(str,9,3)%> asp => 특정 위치에서 원하는 만큼의 문자를 가져오는 함수
str = " taeyo  "
<%=trim(str)%> 양쪽 공백을 제거
<%=Ltrim(str)%> 왼쪽 공백을 제거
<%=Rtrim(str)%> 오른쪽 공백을 제거
<%=replace(str, "짜장면", "자장면")%> 문자열 바꾸기
<% mystr = Split(str2, "-") %>
mystr 배열에 str2 문자열을 - 기준으로 짤라서 넣는다.
str2 = "a-b-c-d"
mystr(0) = a
mystr(1) = b
mystr(2) = c
mystr(3) = d
<%=StrReverse("taeyo")%> 문자열을 거꾸로 출력

5) 변수 테스트 함수
IsArray : 변수가 배열인지의 여부를 나타내는 Boolean 값을 리턴
IsDate : 날짜로 변환될 수 있는지의 여부를 나타내는 Boolean 값을 리턴
IsEmpty : 변수가 초기화되었는지의 여부를 나타내는 Boolean 값을 리턴
IsNull : 유효한 데이터를 포함하고 있는지의 여부를 리턴
IsNumeric : 숫자로 평가될 수 있는지의 여부를 리턴
IsObject : 유효한 ActiveX 혹은 OLE 자동화 개체를 참조하는지의 여부를 리턴
VarType : 변수의 하위 형식을 나타내는 숫자를 리턴

6. ASP의 내장된 개체들
1) Request 개체
컬렉션 : 설 명
Form : 전송되어져 온 폼의 요소들의 값(Post 방식)
QueryString : 전송되어져 온 폼의 요소들의 값(Get 방식)과
하이퍼링크의 부분으로 전송된 값
Request.QueryString("변수명")
Cookies : HTTP 헤더와 함께 전송된 쿠키의 값
ServerVariables : 서버의 환경변수들의 값
CilentCerficate : 클라이언트 인증서에 저장된 값들의 컬렉션
프로퍼티
TotalBytes : 현재 요청시 클라이언트가 보내는 바이트의 수
메소드
BinaryRead : Post 요청의 일부분으로 서버에 보내는 데이터를 불러내는데 사용

컬렉션이란?
ASP에서의 컬렉션이란 배열과 비슷한 구조를 가지고 있는 녀석으로
각 요소와 키값을 이용해 값을 저장할 수 있는 데이터 구조를 의미
배열보다는 여러모로 훨씬 강력한 기능을 가진다.

트랙백0 And 댓글0

[ASP] form 다루기

|

<form method="get" action="simpleform.asp">
First Name: <input type="text" name="fname" /><br />
Last Name: <input type="text" name="lname" /><br /><br />
<input type="submit" value="Submit" />
</form>



<body>
Welcome
<%
response.write(request.querystring("fname"))
response.write(" " & request.querystring("lname"))
%>
</body>



<form method="post" action="simpleform.asp">
First Name: <input type="text" name="fname" /><br />
Last Name: <input type="text" name="lname" /><br /><br />
<input type="submit" value="Submit" />
</form>



<body>
Welcome
<%
response.write(request.form("fname"))
response.write(" " & request.form("lname"))
%>
</body>



어떤 언어든 form을 다룰때는 가장 중요한것이

post와 get 방식으로 전송된 form 값을 받는것 입니다.

위의 두가지 예제는 post와 get 방식으로 form 값이 전송되었을때 이를 받는 방법을 설명하고 있습니다.


여기에 원래 하나 더 추가되어야할것이 <input type="file" /> 바로 업로드 부분인데요.

ASP1.0은 업로드 기능을 구현하기 위해서 별도의 업로드 모듈을 설치하여야 합니다.

출처 : http://trend21c.tistory.com
트랙백0 And 댓글0

[ASP] session과 cookie 사용하기

|

쿠키값 저장하기

<%
Response.Cookies("firstname")="Alex"
Response.Cookies("firstname").Expires=date+365
%>



쿠키값 가져오기

<%
fname=Request.Cookies("firstname")
response.write("Firstname=" & fname)
%>



쿠키값 삭제하기

<%
Response.Cookies("firstname").Expires=date-1
%>



ASP에서 세션은 별다른 시작 선언이 없어도 알아서 작동합니다.

Global.asa파일에 Session_OnStart 부분에 특정 구문을 입력해두면 세션시작시 항상 해당 구문을 수행하도록 설정할 수 있습니다.


세션 시간 설정하기

분단위 입니다.

<%
Session.Timeout=5
%>



세션 값 저장하기

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
  Response.Write(i & "<br />")
Next
%>



세션 종료하기

<%
Session.Abandon
%>



세션값 출력하기

Welcome <%Response.Write(Session("username"))%>

다음과 같이 사용할수도 있습니다.

<%
If Session.Contents("age")<18 then
  Session.Contents.Remove("sale")
End If
%>


<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br />")
Next
%>



세션값 지우기

<%
Session.Contents.RemoveAll()
%>



출처 : http://trend21c.tistory.com
트랙백0 And 댓글0

[ASP] 기초 문법

|


문자열 출력

<html>
<body>
<%
response.write("My first ASP script!")
%>
</body>
</html>



변수와 문자열 출력

변수와 문자를 연결할때 &을 사용합니다.

<html>
<body>
<%
dim name
name="Donald Duck"
response.write("My name is: " & name)
%>
</body>
</html>



배열

<html>
<body>
<%
Dim famname(5),i
famname(0) = "Jan Egil"
famname(1) = "Tove"
famname(2) = "Hege"
famname(3) = "Stale"
famname(4) = "Kai Jim"
famname(5) = "Borge"

For i = 0 to 5
         response.write(famname(i) & "<br />")
Next
%>
</body>
</html>



if문

<html>
<body>
<%
dim h
h=hour(now())

response.write("<p>" & now())
response.write("</p>")
If h<12 then
   response.write("Good Morning!")
else
   response.write("Good day!")
end if
%>
</body>
</html>



for문

<html>
<body>
<%
dim i
for i=1 to 6
   response.write("<h" & i & ">Heading " & i & "</h" & i & ">")
next
%>
</body>
</html>



리턴값이 없는 함수

<html>
<head>
<%
sub vbproc(num1,num2)
response.write(num1*num2)
end sub
%>
</head>
<body>

<p>Result: <%vbproc 3,4%></p>

</body>
</html>



리턴값이 있는 함수

함수명과 동일한 변수명에 리턴하고자 하는 값을 넣어 함수를 종료하면 됩니다.

<%
Function Add(num1, num2)
sum = num1 + num2
Add = sum
end function
%>



페이지이동

설마 요즘세상에도 서버측에서 사용자 액션에 따른 DB작업 수행후 자바스크립트 location.href로 페이지
이동시키는분 안계시죠?


<%
Response.Redirect "http://www.w3schools.com"
%>



이스케이프

ASP에서 문자열을 출력할때 쌍따옴표를 쓰는데 출력할 문자열에 쌍따옴표가 포함되어 있을때는 쌍따옴표를
그 앞에 한번 더 써주시면 쌍따옴표가 한번만 정상적으로 출력됩니다.


Response.Write "Raju told ""ASP is a better scripting language"""

위와 같은 문장을 출력하면

Raju told "ASP is a better scripting language"

이와 같이 출력됩니다.


줄바꿈 적용

php의 함수로 예를들면 nl2br() 함수와 같은 역할을 하는 방법입니다.

replace(rs(), char(13)&chr(10),"<br />");


파일 인클루드 하기

가상디렉토리경로로 인클루드 하기

<!-- #include virtual ="/html/header.inc" -->

상대경로로 인클루드하기

<!-- #include file ="headers\header.inc" -->

이렇게는 안됩니다.

불러오고자 하는 파일명을 변수로 설정한 경우 실행되지 않습니다.

<%
fname="header.inc"
%>
<!--#include file="<%fname%>"-->

출처 : http://trend21c.tistory.com

트랙백0 And 댓글0

[ASP] 처음 select 에서 하위카테고리를 선택하면 두번째 select에 db에 있는 내용을 뿌리는 방법

|

1. 처음 select에 db에서 모든 값을 다 빼놨다가 셀렉박스에서 셀렉트 할때 가져다 쓰는방법
2. 구석에 보이지 않는 iframe을 넣어두어 셀렉박스에서 셀렉트할때 그 아이프레임으로 값을 전송하여 필요로 하는
내용의 리스트를 뽑아 상위(본페이지)로 값을 보내주어 리스트를 뿌리는 방법

트랙백0 And 댓글0
prev | 1 | 2 | 3 | next

티스토리 툴바