ASP 프로 그래 밍 입문 진급(7):내장 대상 서버
startime=timer()
//이하 홈 페이지 내용
for i= 1 to 5000 step 20
document.write("
")
next
//종료 시간
endtime=timer()
document.write("페이지 실행 시간:"&FormatNumber((endtime-startime)*1000,3)&"밀리초")
[Ctrl+A 모두 선택 하여 복사 알림:일부 코드 를 수정 한 다음 실행 을 클릭 합 니 다]물론 대응 하 는 ASP 는 많은 사이트 에 있 는 페이지 의 실행 시간 표시 1,time.asp 를 볼 수 있 습 니 다.
<%startime=timer()%>아래 에서 실행 시간 을 보 세 요<%for i=1 to 5000 response.write("hr width="&int(500+i)&">)next%>물론 중간 에 다른 내용 을 추가 할 수 있 습 니 다.
<%endtime=timer()%><%=FormatNumber((endtime-startime)*1000,3)%>밀리초 면 위의 프로그램 이 for i=1 to 5000000 하하,기계 가 빨리 반응 하지 못 하 는 느낌 이 라면 이것 이 스 크 립 트 의 실행 시간 입 니 다.프로그램 이 잘 실 행 될 수 있 도록 스 크 립 트 를 오래 실행 해 야 합 니 다.어떻게 길 게 해요?기본 값 을 고 쳐?허허,물론 아니 지:)
<%Server.script Timeout=110%>시간의 설정 은 물론 기본 90 초 보다 크 면 현재 코드 는 서버 처리 스 크 립 트 가 110 초 후에 시간 을 초과 하 는 것 입 니 다.그리고 스 크 립 트 시간의 확정 은 자신의 프로그램 을 봐 야 합 니 다.일반적인 상황 은 100 초 정도 차이 가 나 지 않 습 니 다.실행 할 수 있어 도 웹 페이지 를 보 는 사람들 은 이미 그것 을 갈 라 놓 았 을 것 입 니 다.이상 의 ScriptTimeout 은 서버 대상 의 유일한 속성 입 니 다.서버.HtmlEncodeHtmlEncode 는 서버 대상 의 한 방법 입 니 다.특정한 문자열 에 HTML 인 코딩 을 할 수 있 습 니 다.HTML 은 대부분의 ASP 파일 에 기 록 된 텍스트 를 표시 할 수 있 지만 HTML 태그 에 사 용 된 문 자 를 실제로 포함 해 야 할 때 문제 가 발생 할 수 있 습 니 다.브 라 우 저가 이런 문자열 을 읽 을 때 설명 을 시도 하기 때문이다.아니면 프로그램 을 보 시 겠 습 니까?페이지 에" "를 표시 하고 싶 습 니 다.이러한 코드(첨부: 빈 칸 코드 입 니 다)그러면 제 가 글 을 쓸 때 브 라 우 저가 설명 해 주 었 다 는 것 을 알 게 될 것 입 니 다.빈 칸 의 코드 는:
너 는 위의 코드 가 모두 실행 되 었 다 는 것 을 알 게 될 것 이다.
[Ctrl+A 모두 선택 하여 복사 알림:일부 코드 를 수정 하고 실행 을 클릭 할 수 있 습 니 다]따라서 일부 특수 코드 가 표 시 될 수 있 도록 이 방법 을 사용 합 니 다.2,htmlencode.asp
<%Response.write("HTML 엔 코드 방법 을 사용 하지 않 은 테스트 입 니 다.
여기 다른 줄 로 코드 가 실행 되 었 음 을 설명 합 니 다.nbsp;")%>
<%Response.write Server.HtmlEncode("이것 은 HTMLEncode 방법 에 대한 테스트 입 니 다.
여 기 는 다른 줄 이 없 을 것 입 니 다.즉,코드 가 실행 되 지 않 았 다 는 것 입 니 다.nbsp;")%>이것 은 많은 사이트,포럼 에 존재 하 는 버그 입 니 다.믿 지 않 으 면 각 포럼 에 가서 시도 해 보 세 요.입력 바로 없습니다.급 해 죽 겠 습 니 다.)물론 HtmlEncode 는 그 중의 한 원인 일 뿐 입 니 다.가장 중요 한 것 은 UBB 코드 의 전환 입 니 다.하지만 이 점 에 대해 서 는 나 도 이미 테스트 를 통 해 해결 했다.디 버 깅 주소 참조http://www.cnbruce.com/juven/showart.asp물론 고전 포럼 에는 이런 문제 가 존재 하지 않 습 니 다.그렇지 않 으 면 효 과 를 보지 못 할 것 입 니 다.3.Server.UrlEncode 는 HtmlEncode 방법 으로 고객 이 받 아들 일 수 있 는 HTML 형식 으로 문자열 을 번역 할 수 있 도록 하 는 것 처럼 Server 대상 의 UrlEncode 방법 은 URL 규칙 에 따라 문자열 을 정확하게 인 코딩 하 는 것 입 니 다.문자열 데이터 가 URL 형식 으로 서버 에 전 달 될 때 문자열 에 빈 칸 이 나타 나 거나 특수 문자 가 나타 나 는 것 을 허용 하지 않 습 니 다.이 를 위해 문자열 을 보 내기 전에 URL 인 코딩 을 하려 면 Server.URLEncode 방법 을 사용 하 십시오.편 의 를 위해 서,우 리 는 먼저 배달 을 처리 한 후에 받 아들 이 는 효 과 를 처리한다.3,urlencode.asp
<%filepath=request.servervariables("script_name")%>URL 의 값 을 받 아들 입 니 다(받 아들 일 값 을 처리 하지 않 았 습 니 다.값 이 해 석 된 것 을 발 견 했 습 니 다):<%=request.query string("cnbruce")%>은 URL 의 값 을 받 아들 입 니 다(urlencode 인 코딩 을 했 으 며 실행 되 지 않 습 니 다):<%=Server.URLEncode(request.query string("cnbruce")%>는 물론 실행 되 지 않 지만"<"가"%3C"가 되 고">"%3E"가 되 는 것 을 발견 할 수 있 습 니 다.그럼 발송 전에 처리 하지 않 았 기 때 문 입 니 다.그러나 우 리 는 Replace 함 수 를 통 해 이 특수 코드 들 을 다시 역전 시 킬 수 있다.4,vurlencode.asp
<%function tihuan(what)tihuan=whatif not isnull(what) thentihuan=replace(tihuan,"%3C","<")tihuan=replace(tihuan,"%3D","=")tihuan=replace(tihuan,"%3E",">")tihuan=replace(tihuan,"%26","&")tihuan=replace(tihuan,"%20"," ")tihuan=replace(tihuan,"%3B",";")tihuan=replace(tihuan,"%22",""")tihuan=replace(tihuan,"%2B","+")tihuan=replace(tihuan,"%2F","/")end ifend function%><%filepath=request.servervariables("script_name")%>URL 의 값 을 받 아들 입 니 다(받 아들 일 값 을 처리 하지 않 았 습 니 다.값 이 해 석 된 것 을 발 견 했 습 니 다):<%=request.query string("cnbruce")%>URL 의 값 을 받 아들 입 니 다(urlencode 인 코딩 을 했 습 니 다.실행 하지 않 습 니 다):<%=tihuan(Server.URLEncode(request.query string("cnbruce")%>하하,사실 위 에서 제 가 한 것 은 쓸모없는 일 입 니 다.정말 보 내기 전에 처리 해 야 합 니 다.그러나 이 방법 을 배 우 는 예 를 들 어 좋 은 방법 이다.)4.Server.MapPath 는 내 가 쓴'DW2ASP 시리즈'를 본 친구 들 이 모두 여기에 걸 렸 다 고 믿는다.DW 는 입문 하기 좋 은 물건 이지 만 ASP 프로 그래 밍 을 체계적으로 배 우려 면 이것 에 대해 잘 알 아야 한다.MapPath 방법 은 구체 적 으로 지정 한 상대 적 또는 가상 경 로 를 서버 에 해당 하 는 물리 디 렉 터 리 에 투사 하 는 것 입 니 다.용법,즉 문법 입 니 다.다음 과 같 습 니 다.
Server.MapPath(Path)Path 는 물리 디 렉 터 리 의 상대 적 또는 가상 경 로 를 지정 합 니 다.Path 가 정 슬 래 쉬(/)또는 역 슬 래 쉬(\)로 시작 하면 MapPath 방법 이 경 로 를 되 돌 릴 때 Path 를 완전한 가상 경로 로 간주 합 니 다.Path 가 슬 래 쉬 로 시작 하지 않 으 면 MapPath 방법 은 이 파일 에 있 는 경로 와 상대 적 인 경 로 를 되 돌려 줍 니 다.여기 서 주의해 야 할 것 은 MapPath 방법 이 되 돌아 오 는 경로 가 정확 하거나 서버 에 존재 하 는 지 확인 하지 않 는 것 이다.물론 Request.server Variables 와 연결 해서 사용 해 볼 수 있 습 니 다.5,mappath.asp
Request.ServerVariables("APPL_PHYSICAL_PATH") : <%=Request.ServerVariables("APPL_PHYSICAL_PATH")%>
Request.ServerVariables("PATH_INFO") : <%=Request.ServerVariables("PATH_INFO")%>
Request.ServerVariables("SCRIPT_NAME") : <%=Request.ServerVariables("SCRIPT_NAME")%>
Request.ServerVariables("URL") : <%=Request.ServerVariables("URL")%>
Request.ServerVariables("PATH_TRANSLATED") : <%=Request.ServerVariables("PATH_TRANSLATED")%>
위 는 모두 ServerVariables 를 통 해 추출 한 값 입 니 다.다음은 mapath 를 사용 하여 가상 주 소 를 실제 물리 적 주소 로 바 꿉 니 다.
Server.MapPath(Request.server Variables("URL"):<%=Server.MapPath(Request.server Variables("URL")%>p>또는 존재 하지 않 는 경 로 를 마음대로 쓰 거나,
Server.MapPath("cnbruce.asp"):<%=Server.MapPath("cnbruce.asp")%>
"/"의
서버.MapPath("/cnbruce.asp"):<%=Server.MapPath("/cnbruce.asp")%><
Server.MapPath("\\cnbruce.asp")%>
Server.MapPath("\\cnbruce.asp"):<%=Server.MapPath("\\cnbruce.asp")%>>
>주소 가 바 뀐 주 소 를 찾 을 수 있 습 니 다.
>주소 가 바 뀌 었 습 니 다.주소 가 바 뀌 었 습 니 다.주소 가 바 뀌 었 습 니 다.<<