이 파일은 ASP.NET의 전역 애플리케이션 이벤트를 처리하는 파일이다. ASP.NET 응용 프로그램의 루트 디렉터리에 위치하며, 직접적인 URL 요청을 자동으로 거부하도록 설정되어 있다. Global.asax 파일이 있을 경우, ASP.NET은 이를 감지하고 자동으로 실행한다.
애플리케이션 이벤트 처리기 이용하기
웹 사이트에 Global.asax 파일을 추가하여 웹 사이트 내의 모든 페이지에 바닥글을 넣어보자.
① Global.asax 파일 추가하기
[솔루션 탐색기]에서 우클릭을 하고 [새 항목 추가]를 선택한다. 그 다음 웹의 전역 애플리케이션 클래스를 선택하고 [추가] 버튼을 클릭한다.
② 코드 쓰기
Global.asax 파일은 HTML이나 ASP.NET 태그가 없다는 것을 제외하면 aspx 파일과 비슷하다 대신 애플리케이션 이벤트를 처리하기 위한 이벤트 처리기를 포함하고 있다. Global.asax 파일을 열면 visual studio가 만들어 넣은 몇 개의 이벤트 처리기를 볼 수 있다. 바닥글을 넣기 위해 페이지를 사용자에게 보내기 전에 발생하는 EndRequest 이벤트를 처리하는 코드를 다음과 같이 작성한다.
// Global.asax
protected void Application_EndRequest(object sender, EventArgs e)
{
Response.Write("<hr/>");
Response.Write("이 페이지는 ");
Response.Write(DateTime.Now.ToString());
Response.Write("에 작성되었습니다.");
}
책에 나와있는 예제와 구글 검색에 나온 내용들이랑 달라서 애를 좀 먹었다.
책에 나온 예제는 아래와 같았다.
<%@ Application Language="C#" %>
<script runat="server">
void Application_EndRequest(object sender, EventArgs e)
{
Response.Write("<hr/>");
Response.Write("이 페이지는 ");
Response.Write(DateTime.Now.ToString());
Response.Write("에 작성되었습니다.");
}
</script>
script 태그를 사용하는데 Response가 있어 어디에 해야할지 처음에는 잘 몰랐었다.
지금까지 배운 내용들 중에선 <script runat="server">은 aspx에, Response는 서버에서 웹으로 보낼 때 사용한다고 배웠는데 두 개가 동시에 있으니 살짝 혼란스러웠다.
아마 지금 공부하는 책은 visual web developer 2010을 사용하기 때문에 시간이 지나면서 점차 바뀐 것 같다.
우선 내가 Global.asax 파일을 생성했을 때는 Application_EndRequest라는 이벤트 처리기가 없었다.
그래서 임의적으로 코드를 입력하여 위 위의 코드와 같이 입력해주고 난 후 페이지를 실행해보니 잘 출력이 되었다.
뭔가 jsp에서는 jspf같은 그런 느낌인 것 같다.
'ASP.NET 4.0' 카테고리의 다른 글
[ASP.NET] 서버 컨트롤 (0) | 2021.12.30 |
---|---|
[ASP.NET] ASP.NET 구성 파일(web.config) (0) | 2021.12.29 |
[ASP.NET] ASP.NET 응용 프로그램 (0) | 2021.12.29 |
[ASP.NET] Page 클래스 이벤트 (0) | 2021.12.29 |
[ASP.NET] Server 객체 (0) | 2021.12.29 |
댓글