권장 : ASP에서 세션 객체 변수를 올바르게 사용하는 방법에 대한 해석 ASP를 사용하는 사람은 세션 객체가 특정 사용자 세션에 필요한 정보를 저장하고 사용자가 응용 프로그램 페이지를 점프 할 때 세션 객체에 저장된 변수가 지워지지 않으며 이러한 변수는 항상 사용자가 응용 프로그램의 페이지에 액세스 할 때 항상 존재합니다. 프로그램의 복잡성을 줄이고 프로그래밍 효율성을 향상시킬 수 있지만 많은 단점이 있습니다.
1. 속성1. SessionID
SessionID 속성은 사용자의 세션 ID를 반환합니다. 세션을 만들 때 서버는 각 세션마다 별도의 ID를 생성합니다. 세션 식별자는 길쭉한 데이터 유형으로 반환됩니다. 대부분의 경우 SessionId는 웹 페이지 등록 통계에 사용할 수 있습니다.
2. 시간 초과
타임 아웃 속성은 응용 프로그램의 세션 객체에 대한 시간 초과 시간 제한을 몇 분 안에 지정합니다. 이 시간 초과 기간 내에 사용자가 새로 고침 또는 웹 페이지를 요청하지 않으면 세션이 종료됩니다.
2. 방법
세션 객체에는 포기하는 방법이 하나뿐입니다. 포기 방법은 세션 객체에 저장된 모든 객체를 삭제하고 이러한 객체의 소스를 릴리스합니다. 포기 방법을 명시 적으로 호출하지 않으면 세션이 시간이 초과되면 서버가 이러한 객체를 삭제합니다. 서버가 현재 페이지 처리를 마치면 다음 예제가 세션 상태를 출시합니다.
<%session.abandon%>
III. 이벤트
세션 객체에는 세션 객체를 시작하고 릴리스 될 때 사용할 수있는 두 가지 이벤트가 있습니다.
1. Session_OnStart 이벤트는 서버가 새 세션을 생성 할 때 발생합니다. 서버는 요청 된 페이지를 실행하기 전에 스크립트를 처리합니다. Session_OnStart 이벤트는 모든 페이지에 액세스하기 전에 설정되기 때문에 세션 변수를 설정하기 가장 좋은시기입니다.
Session_OnStart 이벤트에 리디렉션 또는 종료 메소드 호출이 포함 된 경우 세션 객체가 유지되지만 서버는 Global.ASA 파일 처리를 중지하고 Session_ONSTART 이벤트를 트리거하는 파일의 스크립트를 트리거합니다.
특정 웹 페이지를 열 때 사용자가 항상 세션을 시작하도록하려면 Session_OnStart 이벤트에서 리디렉션 메소드를 호출 할 수 있습니다. 사용자가 응용 프로그램을 입력하면 서버는 사용자에 대한 세션을 생성하고 Session_OnStart 이벤트 스크립트를 처리합니다. 이 이벤트에 스크립트를 포함하여 사용자가 열린 페이지가 시작 페이지인지 확인하고 그렇지 않은 경우 사용자에게 웹 페이지를 시작하려면 Response.Redirect 메소드를 호출하도록 지시 할 수 있습니다. 절차는 다음과 같습니다.
<scriptrunat = serverLanguage = vbscript>
subsession_onstart
startPage =/myApp/starthere.asp
currentpage = request.servervaribles (script_name)
IFStrComp (CurrentPage, StartPage, 1)
Response.Redirect (STARTPAGE)
endif
Endsub
</스크립트>
위의 프로그램은 쿠키를 지원하는 브라우저에서만 실행할 수 있습니다. 쿠키를 지원하지 않는 브라우저는 SessionIdCookies를 반환 할 수 없으므로 사용자가 웹 페이지를 요청할 때마다 서버는 새 세션을 만듭니다. 이러한 방식으로 각 요청 서버마다 Session_OnStart 스크립트가 처리되고 사용자는 시작 페이지로 리디렉션됩니다.
2. 세션 _onend 이벤트는 세션이 버려 지거나 시간이 초과 될 때 발생합니다.
세션 객체를 사용할 때주의를 기울여야하는 문제와 관련하여 이전 기사를 참조하십시오.
세션은 다음 세 가지 방법으로 시작할 수 있습니다.
1. 새 사용자는 응용 프로그램에서 .asp 파일을 식별하는 URL에 대한 액세스를 요청하고 응용 프로그램의 Global.asa 파일에는 session_onstart 프로세스가 포함됩니다.
2. 사용자는 세션 객체에 값을 저장합니다.
3. 사용자는 응용 프로그램의 .asp 파일을 요청했고 응용 프로그램의 Global.asa 파일은 <botort> 태그를 사용하여 세션 스코프가있는 객체의 인스턴스를 만듭니다.
사용자가 지정된 시간 내에 응용 프로그램의 페이지를 요청하거나 새로 고치지 않으면 세션이 자동으로 종료됩니다. 이 기간의 기본값은 20 분입니다. 인터넷 서비스 관리자의 애플리케이션 옵션 속성 페이지에서 세션 타임 아웃 속성을 설정하여 응용 프로그램의 기본 시간 초과 제한 설정을 변경할 수 있습니다. 이 값은 웹 응용 프로그램의 요구 사항과 서버의 메모리 공간에 따라 설정해야합니다. 예를 들어, 웹 응용 프로그램을 탐색하는 사용자가 웹 응용 프로그램을 몇 분 동안 만 각 페이지에 유지하도록하려면 세션의 기본 타임 아웃 값을 단축해야합니다. 지나치게 긴 세션 타임 아웃 값은 너무 많은 열린 세션을 유발하고 서버의 메모리 자원을 소진시킵니다. 특정 세션의 경우 기본 타임 아웃 값보다 작은 타임 아웃 값을 설정하려면 세션 객체의 타임 아웃 속성을 설정할 수 있습니다. 예를 들어, 다음 스크립트는 타임 아웃 값을 5 분으로 설정합니다.
<%session.timeout = 5%>
물론 기본 설정보다 더 큰 타임 아웃 값을 설정할 수도 있습니다. session.timeout 속성은 타임 아웃 값을 결정합니다. 세션 객체의 포기 방법을 통해 세션을 명시 적으로 종료 할 수도 있습니다. 예를 들어, 테이블에 종료 버튼을 제공하여 버튼의 조치 매개 변수를 다음 명령을 포함하는 .asp 파일의 URL로 설정하십시오.
<%session.abandon%>
공유 : ASP가 형태의 반복 제출을 방지하는 방법 사용자는 종종 페이지를 여러 번 새로 고침, 백 키를 누르는 등 양식을 제출할 때 예상치 못한 상황에 직면합니다. 제어 조치가 취하지 않으면 양식의 반복 제출 문제가 발생합니다. 이 기사에 소개 된 예방 방법은 주로 4 개의 서브 루틴으로 구성됩니다. 비교적 간단한 응용 프로그램에서는이 코드를 포함 된 파일에 배치하고 직접 참조하면됩니다. 그것들을 위해