티스토리 뷰
웹 프로그래밍의 이해
■ 네트워크 기반 프로그램은 자료, 자원제공의 서버와 필요한 자원을 요구하는 클라이언트로 나뉜다.
■ 정적 웹 페이지
→ 정의 : 항상 같은 웹 문서를 검색하여 클라이언트에게 응답, 보내주는 것.
→ 웹 = 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 방식과 달리 보내는 정보의 양의 한계가 없음
특별히 정보를 유지하지 않는 한, 새로고침을 하면 ‘만료된 페이지’ 메시지가 나타남
■ 뷰 상태
압축된 형태로 페이지에 있는 모든 서버 컨트롤의 상태 정보를 가지고 있는 ASP의 hidden 필드 → 그 전 상태값을 저장함
페이지에 데이터를 넣고 전송 명령을 수행하면 다시 열리는 페이지에서는 데이터가 사라지지만 서버로 보내는 페이지에는 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 item의 Value 값을 이용하여 가지고 오는데. 문자열이기 때문에 형 변환을 한다.
■ 커피 조리 과정 과제
→ 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처리기 - > 페이지응답
'IT Skills > .NET Programming' 카테고리의 다른 글
Windows Server 2016 IIS 설치하기 (1) | 2019.12.02 |
---|---|
[.NET] 서버사이드에서 크로스 도메인 문제 해결하기 (0) | 2017.12.26 |
.NET MVC 패턴, 웹폼에서 부분뷰(Partial View) 사용하기 (0) | 2017.12.14 |
.NET 에서 string 의 숫자(int형) 판단 (2) | 2017.11.15 |
[.NET] 태그에서 runat="server" 사용시 javascript를 사용 못할때 (0) | 2016.09.29 |
- Total
- Today
- Yesterday
- 구글
- 라이언
- Asus
- 피규어
- 디지몬
- 보스
- 윈도우즈 10
- 플스2
- 이어폰
- 디지바이스
- razer
- 일본
- 아이폰X
- Windows 10
- 일본여행
- 안산
- 노트북
- 고양이
- 카카오프렌즈
- 애드센스
- 프로그래밍
- 건담
- m5a97
- ps4
- 마우스
- PS2
- 프라모델
- javascript
- AMD
- 듀얼쇼크4
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |