티스토리 뷰

웹 프로그래밍의 이해

 

네트워크 기반 프로그램은 자료, 자원제공의 서버와 필요한 자원을 요구하는 클라이언트로 나뉜다.

 

정적 웹 페이지

정의 : 항상 같은 웹 문서를 검색하여 클라이언트에게 응답, 보내주는 것.

= URL(자원의 위치를 표현하는 주소) + HTTP(자원을주고받기위한프로토콜,규약) + HTML

사용자가 URL에 페이지 [요청] -> 서버에서 요청 해석 및 해당 문서 [검색] -> 클라이언트에 보냄[응답]

 

동적 웹 페이지

정의 : 실시간으로 변화하는 내용에 따라 저장된 데이터를 바탕으로 그때마다 만들어지는 페이지를 동적 웹 페이지라고 한다.

요청 -> 웹어플리케이션(검색) -> DB검색 -> 웹어플리케이션(문서제작) -> 응답

 

 

2. ASP.NET의 특징

ASP의 모든 기능을 제공하면서 ASP가 가지고 있던 문제점이 해결됨.

이벤트기반 프로그래밍 모델

. 이벤트기반 프로그래밍을 통하여 체계적인 프로그래밍 구조를 제공, 재사용성, 공유성과 읽기/작성이 쉽다.

컨트롤 기반 페이지

. 닷넷은 웹폼과 서버컨트롤들로 만들어진다.

CLR(Common Language Runtime)을 통한 언어독립적인 플랫폼 제공

CODE-BEHIND 모델

. 디자이너와 개발자가 분리된 개발 환경.

주요 웹 개발 언어 비교, php, jsp, asp.net 차이점 알아둘 것.

. asp.net은 비쥬얼 스튜디오 개발환경, 웹서버는 IIS, 사용언어는 c#,자바스크립트 등, 코드길이는 매우 적고 속도가 매우 빠르다.

 

3. ASP.NET의 페이지 코드 모델 구성

업무로직인 소스 코드 부분

시작적인 부분을 표현하는 HTML부분

 

4, 웹 폼의 동작 원리.

서버컨트롤

서버컨트롤은 마치 윈도우 폼처럼 자신의 상태를 유지하고 사용자가 발생시킨 이벤트에 응답한다.

두 가지유형의 서버컨트롤 제공.

- HTML 서버컨트롤

* 표준 HTML태그와 상응하는 서버 기반 컨트롤.

- 웹 컨트롤

* 윈도우 응용프로그램에 사용되는 컨트롤이 웹폼에서 사용될 경우 이를 웹 컨트롤이라 함.

 

<input id = “calc” type=“submit” value=“산출하기” OnServerClick=“Calc_ServerClick” runat=“server”/>

 

 

 

GET 방식과 POST 방식

GET 방식

사용자가 <input> 엘리먼트에 입력한 정보를 URL을 통해 서버로 전송

사용자 입력이 URL에 노출되어 보안상 문제가 있음

URL에 쿼리 정보가 있기 때문에 새로고침이나 URL 복사를 해도 동일한 문서를 볼 수 있음

 

POST 방식

웹 브라우저가 서버로 보내지는 Request에 사용자가 <input> 엘리먼트를 통해 입력한 내용을 포함시켜 전달함

사용자 입력 정보는 특별한 도구를 쓰지 않는 한 안 보임

GET 방식과 달리 보내는 정보의 양의 한계가 없음

특별히 정보를 유지하지 않는 한, 새로고침을 하면 만료된 페이지메시지가 나타남

 

뷰 상태

압축된 형태로 페이지에 있는 모든 서버 컨트롤의 상태 정보를 가지고 있는 ASPhidden 필드 그 전 상태값을 저장함

페이지에 데이터를 넣고 전송 명령을 수행하면 다시 열리는 페이지에서는 데이터가 사라지지만 서버로 보내는 페이지에는 hidden 필드를 통해 자신의 상태를 유지시킴

 

5. Page 클래스 속성

주요 속성

IsPostBack : 논리형 속성, 페이지가 처음열리는 페이지인지(false) 처리한 뷰 상태의 정보를 담고 있는 페이지인지(true)

EnableViewState : false 일시에는 어ᄄᅠᆫ 컨트롤의 상태정보도 유지하지 않음.

Application : 웹사이트에 있는 사용자 사이에 공유하고 있는 정보를 갖는다.(페이지방문횟수)

Session : 서로 다른 페이지에서 사용할수 있는 정보를 유지시킨다.(장바구니)

cache : 컬렉션 객체로 생성에 많은 시간을 소모하는 객체를 저장, 다른 페이지나 사용자가 재사용 가능.

Request : 사용자 Client로부터 정보를 얻기 위해 사용하는 HttpRequset 객체 사용.

Response : Client에 보내는 응답에 대한 정보를 포함하고 있는 객체, 쿠키를 만들거나 다른 페이지 이동에 사용.

Server

User

 

* if(IsPostBack == false) {} // 처음열리는 경우일 때 사용.. xxx.Items.Add(문자); 같은 리스트아이템 추가 시 사용.

 

체질량지수 산출 프로그램 주요 코드.

if(!IsPostBack)

ID.Items.Add(new ListItem(“센티미터”,“0.01”));

ListItem X = ID.Items[ID.SelectedIndex];

decimal height = Decimal.Parse(Height.Value) * Decimal.Parse(item.value);

리스트 컨트롤에서 선택된 항목의 인덱스인 ID.SelectedIndex를 통해 html select 컨트롤에 추가한 ListItem 얻어오기.

필요한 것은 단위가 아닌 단위를 변환시키는 비율이기 때문에 ListItem itemValue 값을 이용하여 가지고 오는데. 문자열이기 때문에 형 변환을 한다.

 

 

 

 

 

 

 

커피 조리 과정 과제

aspx

- <from id = “CoffeeForm“ runat=”server“>

- <select id = “coffeeType” runat=“server”></selecet>

- <input id = “ShowRecipe” type = “submit” value=“조리법보기” OnServerClick=“Show_ServerClick” runat=“server”/>

- </form>

aspx.cs

- if(!IsPostBack){CoffeeType.Items.Add(New ListItem(“밀크커피”,“0”));} /// pageRoad 부분

- //아래는 Show ServerClick을 위한 코드

- string filepath = Request.PhysicalApplicationPath + @“App_data\”; //파일존재위치 알림. 골뱅이는 \을 위해 필수로 넣어야함

- Response.Write(“<ol>”) // 리스폰스를 통해 write메서드를 이용하여 순서가 있는 목록을 표현하는 <ol>태그출력

- ListItem item = coffeeType.Items[coffeeType.SelectedIndex]; int coffeeType = int.Parse(item.Value)

// 리스트 객체를 이용하여 리스트 컨트롤에서 현재 항목을 얻어 정수형으로 종류를 설정함.
- Response.Flush();

// 플러쉬를 통해 매 순환마다 버퍼의 내용을 사용자에게 전송. 코드에선 for문 내에서 사용,(제조법불러오고 클리어하고 플러쉬하고. 반복)

리다이렉션

사용자를 다른페이지로 이동시키는 것을 말한다. PostBack과 다르게 리다이렉션은 다른 웹폼으로 넘긴다.

다른페이지로 이동시키는 방법

- <a href =“twoPage..aspx”>다음페이지로이동</a>

- Response.Redirect(“twoPage.aspx”); // 코드내에서 사용

- Server.Transfer(“twoPage.aspx”); // 서버객체이용.

Page클래스 이벤트

페이지요청 -> http처리기 -> Page이벤트(처리기) [[ init ~> load ~> Control Eevents ~> PreRender ~> Unload ]] -> http처리기 - > 페이지응답

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함