Presentation is loading. Please wait.

Presentation is loading. Please wait.

Web Server와 DB 연동.

Similar presentations


Presentation on theme: "Web Server와 DB 연동."— Presentation transcript:

1 Web Server와 DB 연동

2 ODBC 다른 데이터베이스 또는 외부의 데이터베이스로 접근해 주기 위해 연결하는 API Role of ODBC Standard

3 ODBC Architecture ODBC Architecture Data source Application
Database and its associated DBMS Application Issue requests to create a connection with a data source, to issue SQL statements and receive results

4 Driver manager When application requests a connection, it determines the type of DBMS and load that driver in memory Driver Process ODBC requests and submit specific SQL statements to a given type of data source

5 데이터베이스를 ODBC에 설정하기 제어판에서 ODBC를 클릭한 후 위의 메뉴에서 시스템 DSN을 선택하면  다음과 같은 화면이 나옵니다.

6 위의 그림에서 추가 버튼을 선택합니다. 그러면 다음과 같은 화면이 나옵니다.
                                                                                                                                       

7 위의 그림에서 SQL Server를 마우스로 더블 클릭하면
다음과 같은 화면이 나타나게 됩니다

8 OLE DB Role of OLE DB

9 OLE DB OLE DB Provide object oriented interface to any type of data
Suited to object oriented language like C++, but not suited to Visual Basics and scripting languages like VBScript and JScript

10 ADO Role of ADO

11 ADO Set of objects for utilizing OLE DB
Enable programmers in almost any language to be able to access OLE DB functionality ASP 페이지를 통해서 데이터베이스에 접근할 수 있도록 허용

12 ADO 개체의 역할 1단계 : 브라우저가 웹서버에 ASP 페이지를 요청한다. 2단계 : 서버는 ASP 페이지를 ASP 엔진에 보낸다. 3단계 : ASP엔진은 Server-side Script를 실행한다. 4단계 : ASP엔진은 ADO 개체가 있으면 호출한다. 5단계 : ADO 개체는 주어진 일을 처리한다. 6단계 : ASP엔진은 HTML을 웹서버에 보내준다. 7단계 : 웹서버는 HTML을 브라우저에 보내준다.

13 ADO 개체 Command 개체 : 연결된 데이터베이스를 조작할 수 있도록 명령을 실행시켜 주는 역할 Connection 개체 : 데이터베이스를 연결해 주는 역할 Recordset 개체 : 데이터베이스에 명령을 실행해서 돌아온 결과에대해서 세부적으로 조작할 수 있는 여러 기능  현실적으로 Connection객체만 가지고도 데이터베이스를 연결하고 SQL명령을 실행할 수 있도록 되어 있다. 하지만 Connection개체는 SQL문을 통해 데이터베이스에서 가져온 결과에 대해서 레코드를 자유자재로 이동하면서 조작할 수 없도록 되어 있다. 따라서 이런 목적을 위해서는 RecordSet개체를 이용해야 한다.

14 Connection 개체 먼저 데이터베이스를 확인하고 연결 상태로 만든다. 원하는 데이터를 얻기 위해서 SQL문을 실행한다. 데이터베이스에서 SQL문을 처리하여 원하는 형태의 결과를 보내준다. 이 과정이 끝나면 데이터베이스와의 연결을 끊어주어야 하고 자원을 해제한다. ● Connection개체 생성     Set 커넥션이름 = Server.CreateObject("ADODB.Connection") ● DSN실행     커넥션이름.Open(“DSN=데이터소스이름;UID=사용자명;PWD=패스워드") ● SQL실행     커넥션이름.Execute("SQL 문장") ● DB Connection 닫기 및 자원 해제      커넥션이름.close     Set 커넥션이름 = Nothing

15 RecordSet 개체 Connection개체는 데이터베이스에 연결하는 것에 주된 목적을 가지고 있다. 연결 이후 데이터베이스 처리는 모두 SQL문에 의존할 수밖에 없다. 하지만 RecordSet개체에서는 SQL문을 의존하지 않고도 데이터베이스에 대한 처리가 가능하다. 데이터베이스를 조작할 수 있는 여러 가지 메소드와 프로퍼티를 가지고 있고 자유롭게 레코드를 이동할 수 있으므로 여러 가지 장점을 가지고 있다.  RecordSet은 메모리상에 존재하는 가상 테이블이다. 사용자가 원하는 자료들을 메모리에 올려놓고 작업을 하게 되면 훨씬 더 빠르게 작업을 할 수 있다. 하드디스크 속도보다 RAM의 속도가 훨씬 더 빠르기 때문이다. ● RecordSet개체생성    Set 레코드셋이름=Server.CreateObject ("ADODB.RecordSet") ● DSN연결 및 SQL실행    레코드셋이름.Open SQL문장, 연결정보[,커서타임,록타입,명령형옵션] ● RecordSet개체 닫기 및 자원해제    레코드셋이름.Close    Set 레코드셋이름 = Nothing

16 ASP Web server 쪽 Script 지원 내장 개체를 이용하여 데이터베이스 또는 ODBC를 제어
서버 쪽에서 스크립트를 처리하여 그 결과를 클라이언트 쪽에 전송하는 방식 JAVA Script, VB Script를 모두 사용할 수 있고, DHTML도 사용 가능 내장 개체를 이용하여 데이터베이스 또는 ODBC를 제어 HTML 확장자를 ASP로 고쳐 생성 가능 ASP를 지원하는 서버 – IIS, PWS

17 ASP 내장 개체 ASP는 설치가 되면서 기본적으로 Request, Response, Application, Server, Session 개체들이 제공된다.      ASP의 내장 개체       Request 개체      Response 개체      Application 개체      Session 개체      Server 개체 각 개체들에서 실질적으로 자주 사용하는 속성이나 메소드는 그다지 많지 않다. 그러므로 중요한 것들만을 기억하고 나머지는 필요시에 다시 책을 보며 확인하면 될 것이다.

18 Request 개체 Form - 폼 요청으로 전송된(POST 사용) 모든 HTML 컨트롤 요소 값
QueryString - 사용자 요청에서 URL에 추가된 모든 이름/값 쌍들이나, GET 방식이 사용된 폼에 있는 HTML 컨트롤 요소값들 Cookies - 사용자의 시스템에서 요청과 함께 전달된 모든 쿠키값 ServerVariables - 클라이언트로부터 이들의 요청과 함께 전달된 모든 HTTP 헤더 값들과 웹 서버의 여러 가지 환경 변수값들  Request 개체는 클라이언트의 브라우저에서 전송된 어떤 값들을 서버로 가져오기 위해서 쓰이는 것 으로써 클라이언트의 브라우저의 여러가지 정보, 사용자들의 요구 등등을 담아두는 역할을 하는것이다.

19 QueryString 컬렉션 (get 방식)
QueryString.htm <html> <body> <form Action="QueryStringResult.asp" METHOD="GET"> 이름 : <INPUT TYPE="Text" NAME="name"><br> 나이 : <INPUT TYPE="Text" NAME="age"><br> <INPUT TYPE="Submit" NAME="Enter" Value="확인"> </form> </body> </html> QueryStringResult.asp <html> <body> 이름은 <%=Request.QueryString("name")%> 이구요..<br> 나이는 <%=Request.QueryString("age")%> 입니다 </body> </html>

20 Form 컬렉션 (post 방식) Form.htm <html> <body> <form Action="FormResult.asp" METHOD="POST"> 이름 : <INPUT TYPE="Text" NAME="name"><br> 나이 : <INPUT TYPE="Text" NAME="age"><br> <INPUT TYPE="Submit" NAME="Enter" Value="확인"> </form> </body> </html> FormResult.asp  <html> <body> 이름은 <%=Request.Form("name")%> 이구요..<br> 나이는 <%=Request.Form("age")%> 입니다 </body> </html>

21 GET 방식으로 넘어오던, POST 방식으로 넘어오던 그 데이터를 서버측에서 얻어내기 때문에 Result. asp 소스는
GET 방식으로 넘어오던, POST 방식으로 넘어오던 그 데이터를 서버측에서 얻어내기 때문에 Result.asp 소스는... 폼에 GET 방식이던, POST 방식이던 무관하게 다음처럼 작성할 수 있다 Request("...")

22 Response 개체 Redirect - 브라우저에 다른 URL이 바로 뜨도록 재지정
Write - 현재 페이지에 문자열과 변수 내용을 표시  Write는 가장 이용도가 높은 메소드로써, 서버에서 클라이언트에게 리턴할 HTML부분의 출력부분을 담당하고 있기 때문이다. 여기서의 출력부분은 사용자가 실질적으로 브라우저로 확인하는 출력부분이 아니라 HTML문서 내의 출력을 의미한다.  Response.Write는 활용도가 매우 높기 때문에 간단하게 사용하는 일종의 단축표현이 존재한다. 그것이 바로 "=" 이다.

23 Response.Write 메쏘드 <html> <body>  <% response.write "Write문 실습입니다!" %> </body> </html>

24 Response.Redirect 메쏘드 현재의 페이지에서 다른 페이지로 이동하고자 할때 사용한다.
사용방법은 Response.Redirect URL 이다. URL대신 화일명을 써주어도 된다. 서버에서 실행하다 이 코드를 만나게 되면 URL에 있는 곳으로 점프를 하게 되는 것이다. <html> <body> <% Response.Write "write문 실습입니다!" Response.Redirect " %> </body> </html>

25 Server 개체 ScriptTimeout - 시간 초과되기 전까지 스크립트가 실행될 수 있는 시간.
CreateObject - 서버 구성 요소의 인스턴스를 Execute .asp - 파일을 실행 server객체는 지금까지 우리가 배워왔던 request 객체나 response 객체와는 다른 개념의 객체이다. request나 response 객체는 이미 asp에 내장되어 있어 정의를 하거나 생성하지 않고 바로 사용했만, server객체는 먼저 생성을 하고 그 다음 객체가 가진 메서드와 프로퍼티등을 통해 사용을 한다. 즉 server객체는 다른 서버 객체들을 생성하기 때문에 서버 객체의 모체라고 할 수 있다. 객체를 생성하는 것은 server객체의 createobject 메서드인데 이를 통해 다양한 server 객체 를 생성하며 기타 다른 메서드와 함께 활용된다.

26 예제 (사용자 가입하기) 다음은 사용자 가입 폼이다

27 memberform.html <html> <head> <title>사용자 가입</title> </head> <body > <Script Language="JAVAScript"> function check() { var blank = 0 ; if (FORM1.id.value == "") blank = 1 ; if (FORM1.pass.value == "") blank = 1 ; if (FORM1.name.value == "") blank = 1 ; if (blank ==1) { alert("빈란이 있습니다. 채워주세요.") ; return (false) } else { return (true) ; } } </Script>

28 <p align="center"><font size="6"><b>사용자 가입<br> <br><br> <form name="FORM1" action="register.asp" method="post" onsubmit="return check();"> <div align="center"><table border=0 cellpadding="2" cellspacing="0" bordercolordark="eeeeee" bordercolorlight="#464646"> <tr> <td width="99" align=right> <p><font color="red" size="2">사용자 ID</font></td> <td width="215"><p><font size="2"><input type="text" name="id" maxlength="10" size="10"> </font> </td> <td width="364"><p><font size="2">(10자이하, 한글/영문/숫자 혼용가능, 대소문자 구분없음)</font></td> </tr>

29 <tr> <td width="99" align=right><p><font color="red" size="2">비밀번호</font></td> <td width="200"><p><font size="2"><input type="password" name="pass" maxlength="20"></font></td> <td width="364"><p><font size="2">(입력시 CapsLock키 확인후 입력)</font></td> </tr> <tr> <td width="99" align=right><p><font color="red" size="2">이름</font></td> <td width="200"><p><font size="2"><input type="text" name="name" maxlength="20"></font></td> <td width="364"><p><font size="2">본인의 <b>실명</b>을 입력 하십시오</font></td> </tr>

30 <tr> <td colspan=3> <br> <br> </td> </tr> <tr> <td width="680" align="center" colspan="3" ><p> <font size="2"> <input type="submit" name="submit" value=" 가입하기 "> <input type="reset" name="cancel" value=" 가입취소 "> </font> </td> </tr> </table></div></form> <br><br><br> <center><a href="index.html"><font color=blue>처음화면</font></a></center> </body> </html>

31 사용자 정보 DB에 저장하기 memberform.html에서 받아들인 데이터들을 DB에 저장하고, DB에 저장된 데이터들을 SELECT 하여 페이지에 나타내어준다

32 register.asp <% Set DBCon = Server.CreateObject("ADODB.Connection") DBCon.Open ("DSN=success") id = Request("id") pass = Request("pass") name = Request("name") SQLString = "SELECT MAX(index) FROM member" Set Result=DbCon.Execute(SQLString) If IsNULL(Result(0)) Then rindex = 1 else rindex = Result(0) + 1 End If SQLString = "INSERT INTO member VALUES("&rindex&",'"&id&"','"&pass&"','"&name&"')" DbCon.Execute(SQLString) %>

33 <html> <head> <title>사용자등록 종료</title> </head> <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red"> <p align="center">  <div align="center"><table border="0" cellpadding="0" cellspacing="0"> <tr> <td width="634" height="83" valign="top"><table border="0" cellpadding="0" cellspacing="0">

34 <tr> <td width="633" height="31" bgcolor="#e2e2e2"><p align="left"> <b> 사용자등록 종료- <%= id %></b></td> </tr> </table> <p> 아래와 같은 정보를 가진 사용자로 등록되었습니다. 비밀번호와 아이디는 반드시 기억해 주시기 바랍니다. 아이디와 비밀번호 분실시 검색은 거의 불가능합니다. ^^;; 등록후 정보의 변경은 로그인을 하신후 변경하시기 바랍니다. <P> <ul> 사용자ID : <%=id%><br> 사용자명 : <%=name%><br> 비밀번호 : <%=pass%><br> </ul>

35 <p> <table border="0" cellpadding="0" cellspacing="0" bordercolor="#e2e2e2" bordercolordark="silver"> <tr> <td width="634" height="31" bgcolor="#e2e2e2"></td> </tr> </table></td> </tr> </table></div> <p align="center"><a href="index.html"><font size="2">[로그인]</font></a></p> </body> <%DbCon.Close Set DbCon = nothing%> </html>


Download ppt "Web Server와 DB 연동."

Similar presentations


Ads by Google