우리는 페이지 수명 주기와 페이지에 다양한 컨트롤이 포함될 수 있는 방법을 살펴보았습니다. 페이지 자체는 컨트롤 개체로 인스턴스화됩니다. 모든 웹 양식은 기본적으로 ASP.NET 페이지 클래스의 인스턴스입니다. 페이지 클래스에는 내부 개체에 해당하는 다음과 같은 매우 유용한 속성이 있습니다.
세션
앱
은닉처
묻다
응답
섬기는 사람
사용자
길
우리는 적절한 시간에 각 개체에 대해 논의할 것입니다. 이 튜토리얼에서는 서버 개체, 요청 개체 및 응답 개체를 살펴보겠습니다.
ASP.NET의 서버 개체는 System.Web.HttpServerUtility 클래스의 인스턴스입니다. HttpServerUtility 클래스는 다양한 작업을 수행하기 위한 많은 수의 속성과 메서드를 제공합니다.
HttpServerUtility 클래스의 메서드와 속성은 ASP.NET에서 제공하는 내부 서버 개체를 통해 노출됩니다.
다음 표에서는 HttpServerUtility 클래스의 일련의 속성을 제공합니다.
재산 | 설명하다 |
---|---|
머신 이름 | 서버 컴퓨터 이름 |
스크립트타임아웃 | 요청 시간 초과 값을 초 단위로 가져오고 설정합니다. |
다음 표에는 몇 가지 중요한 방법이 나와 있습니다.
방법 | 설명하다 |
---|---|
CreateObject(문자열) | ProgID로 확인된 COM 개체의 인스턴스를 만듭니다. |
CreateObject(유형) | 해당 유형으로 확인된 COM 개체의 인스턴스를 만듭니다. |
같음(객체) | 특정 개체가 기존 개체와 일치하는지 확인합니다. |
실행(문자열) | 현재 요청의 컨텍스트에서 처리 애플리케이션이 지정한 가상 경로를 실행합니다. |
실행(문자열, 부울) | 현재 요청의 컨텍스트에서 핸들러가 지정한 가상 경로를 실행하여 QueryString 및 양식 컬렉션을 지울지 여부를 지정합니다. |
마지막 오류 가져오기 | 이전 예외를 반환합니다. |
GetType | 기존 인스턴스의 유형을 가져옵니다. |
HtmlEncode | 일반 문자열을 합법적인 HTML 문자열로 변환합니다. |
HTML디코드 | HTML 문자열을 일반 문자열로 변환합니다. |
ToString | 현재 객체를 나타내는 문자열을 반환합니다. |
전송(문자열) | 현재 요청의 경우 현재 페이지의 실행을 종료하고 페이지의 URL 경로를 지정하여 새 페이지의 실행을 시작합니다. |
URL디코드 | URL 문자열을 일반 문자열로 변환합니다. |
UrlEncode토큰 | UrlEncode와 동일하지만 Base64로 인코딩된 데이터가 바이트 배열에 포함되어 있습니다. |
UrlDecode토큰 | UrlDecode와 동일하게 작동하지만 Base64로 인코딩된 데이터를 바이트 배열에 포함합니다. |
지도 경로 | 지정된 가상 서버의 파일 경로에 해당하는 물리적 경로를 반환합니다. |
옮기다 | 현재 애플리케이션의 실행을 다른 웹 페이지로 전송합니다. |
요청 개체는 System.Web.HttpRequest 클래스의 인스턴스입니다. 페이지를 브라우저에 로드할 수 있도록 하는 HTTP 요청의 값과 속성을 나타냅니다.
이 개체가 제공하는 정보는 더 높은 수준의 추상화(웹 제어 모델)에 캡슐화됩니다. 그러나 이 개체는 클라이언트 브라우저 및 쿠키와 같은 일부 정보를 검사하는 데 도움이 될 수 있습니다.
다음 표에는 요청 개체의 몇 가지 주목할만한 속성이 나와 있습니다.
재산 | 설명하다 |
---|---|
AcceptTypes | 사용자가 지원하는 MIME 허용 유형의 문자열 배열을 가져옵니다. |
애플리케이션 경로 | 서버에서 ASP.NET 애플리케이션의 실제 애플리케이션 루트 경로를 가져옵니다. |
브라우저 | 요청하는 사용자 브라우저의 기능에 대한 정보를 가져오거나 설정합니다. |
콘텐츠인코딩 | 문자 집합 엔터티를 가져오거나 설정합니다. |
콘텐츠길이 | 클라이언트가 보낸 콘텐츠의 길이(바이트)를 지정합니다. |
콘텐츠 유형 | 들어오는 요청의 MIME 콘텐츠 유형을 가져오거나 설정합니다. |
쿠키 | 클라이언트가 보낸 쿠키 세트를 가져옵니다. |
파일 경로 | 현재 요청의 실제 경로를 가져옵니다. |
파일 | 멀티파트 MIME 형식으로 클라이언트가 업로드한 파일 컬렉션을 가져옵니다. |
형태 | 양식 변수 컬렉션을 가져옵니다. |
헤더 | HTTP 헤더 컬렉션을 가져옵니다. |
Http메서드 | 사용자가 사용하는 HTTP 데이터 전송 방법(예: GET, POST 또는 HEAD)을 가져옵니다. |
입력스트림 | 수신 HTTP의 엔터티 콘텐츠를 가져옵니다. |
IsSecureConnection | HTTP 연결이 보안 소켓(즉, HTTPS)을 사용하는지 여부를 나타내는 값을 가져옵니다. |
쿼리 문자열 | HTTP 쿼리 문자열 변수의 컬렉션을 가져옵니다. |
RawUrl | 현재 요청의 원래 URL을 가져옵니다. |
요청 유형 | 사용자가 사용하는 HTTP 데이터 전송 방법(GET 또는 POST)을 가져오거나 설정합니다. |
서버변수 | 웹 서버 변수의 컬렉션을 가져옵니다. |
총바이트 | 기존 입력 스트림의 바이트 수를 가져옵니다. |
URL | 기존에 요청된 URL에 대한 정보를 가져옵니다. |
URL리퍼러 | 기존 URL에 연결된 클라이언트의 이전 요청에 대한 URL 정보를 가져옵니다. |
사용자 에이전트 | 클라이언트 브라우저의 원래 사용자 에이전트 문자열을 가져옵니다. |
사용자호스트주소 | 원격 클라이언트의 IP 호스트 주소를 가져옵니다. |
사용자호스트 이름 | 원격 클라이언트의 DNS 이름을 가져옵니다. |
사용자언어 | 클라이언트 언어 기본 설정의 정렬된 문자열 배열을 가져옵니다. |
다음 표에는 몇 가지 중요한 방법이 나와 있습니다.
방법 | 설명하다 |
---|---|
바이너리읽기 | 현재 입력 스트림에서 지정된 바이트 수의 이진 읽기를 수행합니다. |
같음(객체) | 지정된 개체가 기존 개체와 동일한지 여부를 확인합니다. (객체에서 상속됨) |
GetType | 기존 인스턴스의 유형을 가져옵니다. |
지도이미지좌표 | 들어오는 이미지 필드 양식 매개변수를 적절한 x 및 y 좌표 값으로 그립니다. |
맵 경로(문자열) | 지정된 실제 경로를 실제 경로에 그립니다. |
다른 이름으로 저장 | HTTP 요청으로 디스크에 저장됩니다. |
ToString | 기존 객체를 나타내는 문자열을 반환합니다. |
입력 유효성 검사 | 쿠키, 양식 및 QueryString 속성 컬렉션에 액세스하여 유효성 검사가 발생하도록 합니다. |
응답 객체는 사용자의 요청에 대한 서버의 응답을 나타냅니다. System.Web.HttpResponse 클래스의 인스턴스입니다.
ASP.NET에서 응답 개체는 사용자에게 HTML 텍스트를 보내는 데 중요한 역할을 하지 않습니다. 서버 측 컨트롤에는 자체 렌더링을 위한 중첩된 개체 지향 메서드가 있기 때문입니다.
그러나 HttpResponse 개체는 쿠키 특성 및 Redirect() 메서드와 같은 몇 가지 중요한 기능을 제공합니다. Response.Redirect() 메서드를 사용하면 사용자가 애플리케이션 내부 또는 애플리케이션 외부의 다른 페이지로 이동할 수 있습니다. 왕복 과정이 필요합니다.
다음 표에는 응답 개체의 몇 가지 주목할만한 속성이 나와 있습니다.
재산 | 설명하다 |
---|---|
완충기 | 전체 응답자가 완료된 후 출력이 버퍼링되고 전송되는지 여부를 나타내는 값을 가져오거나 설정합니다. |
버퍼 출력 | 전체 페이지가 완료된 후 출력이 버퍼링되고 전송되는지 여부를 나타내는 값을 가져오거나 설정합니다. |
문자셋 | 출력 스트림의 HTTP 문자 집합을 가져오거나 설정합니다. |
콘텐츠인코딩 | 출력 스트림의 HTTP 문자 집합을 가져오거나 설정합니다. |
콘텐츠 유형 | 출력 스트림의 HTTP MIME 유형을 가져오거나 설정합니다. |
쿠키 | 해당 쿠키 컬렉션을 가져옵니다. |
만료 | 브라우저에 캐시된 페이지가 만료되기까지의 시간(분)을 가져오거나 설정합니다. |
만료됨절대 | 캐시된 정보가 캐시에서 제거되는 절대 날짜와 시간을 가져오거나 설정합니다. |
헤더인코딩 | 기존 헤더 출력 스트림의 인코딩을 나타내는 인코딩 개체를 가져오거나 설정합니다. |
헤더 | 응답 헤더 컬렉션을 가져옵니다. |
IsClientConnected | 사용자가 아직 서버에 연결되어 있는지 여부를 나타내는 값을 가져옵니다. |
산출 | 출력 텍스트가 HTTP 응답 스트림으로 출력됩니다. |
출력스트림 | 출력의 HTTP 콘텐츠 본문에 대한 이진 출력을 활성화합니다. |
리디렉션위치 | Http 헤더 위치의 값을 가져오거나 설정합니다. |
상태 | 상태 표시줄을 설정하고 클라이언트에 반환합니다. |
상태 코드 | 클라이언트에 반환된 HTTP 출력 상태 코드를 가져오거나 설정합니다. |
상태설명 | 클라이언트에 반환되는 HTTP 출력 상태 문자열을 가져오거나 설정합니다. |
하위상태코드 | 응답 상태 코드를 제한하는 값을 가져오거나 설정합니다. |
컨텐츠 억제 | HTTP 콘텐츠를 클라이언트에 보낼지 여부를 나타내는 값을 가져오거나 설정합니다. |
다음 표에는 몇 가지 중요한 방법이 나와 있습니다.
방법 | 설명하다 |
---|---|
헤더 추가 | 출력 스트림에 HTTP 헤더를 추가합니다. AddHeader는 이전 버전의 ASP와의 호환성을 위해 제공됩니다. |
쿠키 추가 | 인프라는 내부 쿠키 컬렉션에 HTTP 쿠키를 추가합니다. |
헤더 추가 | 출력 스트림에 HTTP 헤더를 추가합니다. |
로그에 추가 | IIS(인터넷 정보 서비스) 로그 파일에 사용자 지정 로그 정보를 추가합니다. |
바이너리 쓰기 | HTTP 출력 스트림에 이진 문자 문자열을 씁니다. |
클리어컨텐츠 | 버퍼링된 스트림에서 모든 출력을 지웁니다. |
닫다 | 클라이언트 소켓을 닫습니다. |
끝 | 버퍼링된 모든 기존 출력을 클라이언트에 보내고, 페이지 실행을 중지하고, EndRequest 이벤트를 발생시킵니다. |
같음(객체) | 지정된 개체가 기존 개체와 동일한지 여부를 확인합니다. |
플러시 | 기존의 버퍼링된 모든 출력을 클라이언트에 보냅니다. |
GetType | 기존 인스턴스의 유형을 가져옵니다. |
사진 | 출력 스트림에 HTTP PICS 라벨 헤더를 추가합니다. |
리디렉션(문자열) | 요청을 새 URL로 리디렉션하고 새 URL을 지정합니다. |
리디렉션(문자열, 부울) | 클라이언트를 새 URL로 리디렉션합니다. 새 URL과 기존 페이지를 종료해야 하는지 여부를 지정합니다. |
쿠키 설정 | 쿠키 컬렉션의 기존 쿠키를 업데이트합니다. |
ToString | 기존 객체를 나타내는 문자열을 반환합니다. |
전송파일(문자열) | 메모리에 버퍼링하지 않고 HTTP 응답 출력 스트림에 지정된 파일을 직접 씁니다. |
쓰기(문자) | HTTP 응답 출력 스트림에 문자를 씁니다. |
쓰기(객체) | HTTP 응답 스트림에 개체를 씁니다. |
쓰기(문자열) | HTTP 응답 출력 스트림에 문자열을 씁니다. |
쓰기파일(문자열) | 지정된 파일의 내용을 HTTP 응답 출력 스트림에 파일 블록으로 직접 씁니다. |
쓰기파일(문자열, 부울) | 지정된 파일의 내용을 HTTP 응답 출력 스트림에 메모리 블록으로 직접 씁니다. |
다음의 간단한 예제에는 사용자가 이름을 입력할 수 있는 텍스트 상자 컨트롤, 서버에 정보를 보내는 버튼, 클라이언트 컴퓨터의 URL을 표시하는 레이블 컨트롤이 있습니다.
콘텐츠 파일:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="server_side._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> Enter your name: <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" /> <br /> <asp:Label ID="Label1" runat="server"/> </div> </form> </body></html>
Button1_클릭 후 코드 클릭:
protected void Button1_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(TextBox1.Text)) { // Access the HttpServerUtility methods through // the intrinsic Server object. Label1.Text = "Welcome, " + Server.HtmlEncode(TextBox1.Text) + ". <br/> The url is " + Server.UrlEncode(Request.Url.ToString()) }}
페이지를 실행하여 다음 결과를 확인하세요.