ContentsClass #13: Web Application °³¹ß
in place May 14, 2002, last modified May 29, 2002, working ...
Server Side
MS Active Server Pages(ASP) ¼Ò°³
- CGI (Common Gateway Interface)
- ±âÁ¸ÀÇ HTMLÀº Á¤ÇØÁø Á¤ÀûÀÎ HTML ÆÄÀϸ¸ ¼ºñ½ºÇÔ (±×¸² 13-1)
- HTML Page¿¡¼ ƯÁ¤ÇÑ ¿ÜºÎ ÇÁ·Î±×·¥À» ÀÔ·Â Parameter¿Í ÇÔ²² ±¸µ¿ÇÒ ¼ö ÀÖ°ÔÇÑ ¹æ¹ý
- HTMLÀÇ FORM Tag ÀÌ¿ë
- <FORM ACTION=program.cgi > ... </FORM > ¿¡¼ ÇØ´ç FORM¿¡¼ ÀÔ·ÂÀÌ ¿Ï·áµÇ¸é ½ÇÇàµÉ ÇÁ·Î±×·¥(program.cgi) Á¤ÀÇ
- FORM Tag ¾È¿¡ INPUT Tag¸¦ ÀÌ¿ëÇÏ¿© Àü´ÞÇÏ°íÀÚ ÇÏ´Â º¯¼ö¸¦ ³Ñ°ÜÁÜ
- <INPUT NAME=parameter_name TYPE=TEXT> ´Â Text¸¦ ³ÖÀ»¼ö ÀÖ´Â ºóÀÔ·ÂÄÀ» ¸¸µé¸ç ÀÔ·ÂµÈ °ªÀ» parameter_nameÀ̶ó´Â º¯¼ö°ªÀ¸·Î ³Ñ°ÜÁÜ
- Text Input Tag°¡ º¸ÀÌ´Â ¸ð½À
- INPUT TagÁß Type ÀÌ 'SUBMIT'ÀÎ Tag´Â buttonmÀ» ¸¸µé¸ç À̸¦ ´©¸£¸é ACTION¿¡ Á¤ÀÇµÈ ÇÁ·Î±×·¥À» ½ÇÇà
- <INPUT NAME=parameter_name TYPE=SUBMIT VALUE=ÀÔ·Â > ´Â Text¸¦ ³ÖÀ»¼ö ÀÖ´Â ºóÀÔ·ÂÄÀ» ¸¸µé¸ç ÀÔ·ÂµÈ °ªÀ» parameter_nameÀ̶ó´Â º¯¼ö°ªÀ¸·Î ³Ñ°ÜÁÜ
- Submit Input Tag°¡ º¸ÀÌ´Â ¸ð½À
- SUBMIT ButtonÀ» ´©¸£¸é ÇØ´ç ÇÁ·Î±×·¥°ú ÆĶó¸ÞÅÍ °ªÀÌ Web Server·Î Àü´Þ
- Web Server´Â ÇØ´ç ÇÁ·Î±×·¥À» ÆĶó¸ÞÅÍ °ª¿¡ Àû¿ëÇÏ¿© ½ÇÇà
http://server_name/program.cgi?parameter_name=test¶meter_name2=test2...- °á°ú´Â CGI ÇÁ·Î±×·¥¿¡¼ STDIO·Î HTMLÀ» ¸¸µé¾î Ãâ·Â
C ¾ð¾îÀÇ °æ¿ì printf("<B><FONT COLOR=RED>¿ùµåÄÅ 16°!</FONT></B>);
¿ùµåÄÅ 16°- ±×¸² 13-2¿¡ CGI ¿¹Á¦ ¼³¸í
±×¸² 13-1 Á¤Àû HTML File Service
±×¸² 13-2 FORM Tag¸¦ ÀÌ¿ëÇÑ µ¿Àû HTML File Service- Server Side Script
- CGI ¹æ½ÄÁß Web Server°¡ ¿ä±¸µÇ´Â ÆÄÀÏÁß Æ¯Á¤ Extension (¿¹ *.asp)¸¦ °¡Áø ÆÄÀÏÀ» Script ÆÄÀÏ·Î ÀνÄÇÏ°í À̸¦ Interpret ÇÏ´Â ¹æ½Ä (±×¸² 13-3 ÂüÁ¶)
- ¸¹ÀÌ ¾²´Â ¾ð¾î·Î´Â MS Active Server Pages(ASP), Java Server Pages(JSP) µîÀÌ ÀÖ´Ù.
- ASP °æ¿ì ÈÀÏ È®ÀåÀÚ°¡ asp Àΰæ¿ì IIS È®Àå(Frontpage Server Extension)¿¡¼ À̸¦ Interpret ÇÔ.
- ¹®¹ý Çü½ÄÀº Visula Basic°ú À¯»çÇÑ VB Script¸¦ »ç¿ë - Functionµµ °°Àº Çü½ÄÀ¸·Î Áö¿ø
- CGI ¹× SessionÀ» À§ÇØ ¸î°¡Áö Ưº°ÇÑ °´Ã¼ Á¦°ø - Request, Response, Application, Session
- Database ConnectionÀ» À§ÇØ Æ¯º°ÇÑ °´Ã¼ Á¦°ø - ADO °´Ã¼ Á¦°ø
- ¿ÜÀÇ ¸¹Àº 3rd Party Component¸¦ ÀÌ¿ëÇÏ¿© ½±°Ô Web Application °³¹ß °¡´É - Upload Components
- Architecture
±×¸² 13-3 ASP¸¦ ÀÌ¿ëÇÑ µ¿Àû HTML ¼ºñ½º- Visual Interdev
ASP °³¹ßÀ» Áö¿øÇϱâ À§ÇÑ Visual Studio ³»ºÎÀÇ IDEASP ±â´É
- Request - FORMÀÇ INPUT Tag¿¡¼ ÀÔ·ÂµÈ Parameter °ªÀ» Return
- Response - Web ȸ鿡 Ãâ·Â
- Database Connections - Database Connection, SQL ½ÇÇà, °á°ú Record Set Return
- Session º¯¼ö - Session ÀÌ ÁøÇàµÇ´Â µ¿¾È ÇØ´ç º¯¼öÀÇ °ªÀ» ¼¹ö¿¡¼ ÀúÀå°ü¸®ÇØ ÁÜ
- Server Component - ¼¹öÀÇ ¿©·¯°¡Áö ÀÏÀ» ó¸®ÇÏ´Â Componet - Upload, Treeµî
ASP Example (1) - »ç¿ëÀÚ µî·Ï
ÀÔ·ÂFORM
<B>»ç¿ëÀÚ µî·Ï</B></P> <HR> <UL> <LI>»ç¿ëÀÚ Login ÀÌ Áߺ¹µÇÁö ¾Êµµ·Ï ÇÒ°Í <A HREF="example02.asp">user list</A> <LI>°ø¶õÀ» µÎÁö ¸»°Í. <LI>passwd´Â ³ëÃâµÉ¼ö ÀÖÀ¸¹Ç·Î Æò¼Ò¾²Áö ¾Ê´Â ÀÓÀÇÀÇ ³»¿ëÀ» ³ÖÀ»°Í </UL> <TABLE border=0> <FORM NAME=NEW_USER ACTION=example0302.asp METHOD=POST > <TR><TD>user id<TD><INPUT NAME=user_id TYPE=TEXT> <TR><TD>¼º<TD><INPUT NAME=last_name TYPE=TEXT> <TR><TD>À̸§<TD><INPUT NAME=first_name TYPE=TEXT> <TR><TD>¸ÞÀÏÁÖ¼Ò<TD><INPUT NAME=email TYPE=TEXT> <TR><TD>ÈÞ´ëÀüȹøÈ£<TD><INPUT NAME=celphone TYPE=TEXT> <TR><TD>Æнº¿öµå<TD><INPUT NAME=passwd TYPE=PASSWORD> <TR><TD><TD><INPUT TYPE=SUBMIT value="INSERT"> </FORM>»ç¿ëÀÚ µî·Ï
- »ç¿ëÀÚ Login ÀÌ Áߺ¹µÇÁö ¾Êµµ·Ï ÇÒ°Í user list
- °ø¶õÀ» µÎÁö ¸»°Í.
- passwd´Â ³ëÃâµÉ¼ö ÀÖÀ¸¹Ç·Î Æò¼Ò¾²Áö ¾Ê´Â ÀÓÀÇÀÇ ³»¿ëÀ» ³ÖÀ»°Í
example0302.asp ÆÄÀÏ - ½ÇÁ¦ µ¥ÀÌŸº£À̽º¿¡ Á¢±ÙÇÏ¿© ÀÔ·Â
<% user_id = Request("user_id") last_name = Request("last_name") first_name = Request("first_name") email = Request("email") celphone = Request("celphone") passwd = Request("passwd") Dim DbCon, strDbCon Set DbCon = Server.CreateObject("ADODB.Connection") strDbCon = "Provider=sqloledb;Data Source=murano;Initial Catalog=MAIN;User Id=kedb;Password='';" DbCon.Open strDbCon sql="INSERT INTO USERS(user_id ,last_name,first_name,e_mail,celphone, passwd) " sql = sql + "VALUES('" sql = sql +user_id+"', '"+last_name+"','"+first_name+"', " sql = sql + "'"+email+"','"+celphone+"','"+passwd+"' " sql = sql + ")" Set Result=DbCon.Execute(sql) response.redirect("example02.asp") %>ASP Example (2) -example02.asp ÆÄÀÏ - µî·ÏµÈ »ç¿ëÀÚ Ãâ·Â
<% Dim DbCon, strDbCon Set DbCon = Server.CreateObject("ADODB.Connection") strDbCon = "Provider=sqloledb;Data Source=murano;Initial Catalog=MAIN;User Id=kedb;Password='';" DbCon.Open strDbCon sql="SELECT user_id, last_name, first_name, e_mail, celphone " sql = sql+ " FROM USERS " Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open sql, DbCon IF rs.EOF OR rs.BOF THEN response.write("<P>No user exist !") END IF Response.Write("<blockqutoe>") Response.write("<TABLE border=1 cellpadding=2 cellspacing=0>") Response.Write("<TR><TD class=TH>id<TD class=TH>name<TD class=TH>email<TD class=TH>celphone") DO WHILE NOT rs.EOF Response.Write("<TR><TD>"+CStr(rs("user_id"))+"<TD>"+CStr(rs("last_name"))+" "+CStr(rs("first_name"))+"<TD>"+CStr(rs("e_mail"))+"<TD>"+CStr(rs("celphone"))+" ") rs.MoveNext LOOP Response.Write("</TABLE>") %>
°á°ú
id name celphone dnc µµ³²Ã¶ namchul@hanmail.net 016-437-2305 VB Script ±â´É
Clinet Side
Clinet Side Script - Java Script
- Client Side Script ¶õ
- Web Server¿¡ ÆÄÀÏ ÇüÅ·ΠÀúÀåµÇ¾î ÀÖ´Ù°¡ ClientÀÇ ¿äû¿¡ ÀÇÇÏ¿© Client ÂÊ¿¡ DownloadµÇ¾î ½ÇÇàµÇ´Â Script Language
- Java Applet°ú ºñ±³ - AppletÀº Binary Code°¡ DownloadµÇ¾î ½ÇÇà
- Web Browser ³»¿¡ ÇØ´ç ¾ð¾î¿¡ ´ëÇÑ Interpreter°¡ ¼³Ä¡µÇ¾î À̸¦ Çؼ®ÇÏ¿© ½ÇÇà
- Server ¿¬°áÀÌ ÇÊ¿ä¾ø´Â Client ÂÊÀÇ Process¸¦ ´ã´çÇÒ ¼ö ÀÖ¾î ºÎÇÏ ºÐ»êÀÇ È¿°ú°¡ ÀÖÀ½
- Á¾·ù·Î´Â Java Script, J Script, VB Script µîÀÌ ÀÖÀ½
±×¸² 13-4 Client Side Script- Java Script ¶õ
- Web Server¿¡ ÆÄÀÏ ÇüÅ·ΠÀúÀåµÇ¾î ÀÖ´Ù°¡ ClientÀÇ ¿äû¿¡ ÀÇÇÏ¿© Client ÂÊ¿¡ DownloadµÇ¾î ½ÇÇàµÇ´Â Script Language
- Java Applet°ú ºñ±³ - AppletÀº Binary Code°¡ DownloadµÇ¾î ½ÇÇà
- Web Browser ³»¿¡ ÇØ´ç ¾ð¾î¿¡ ´ëÇÑ Interpreter°¡ ¼³Ä¡µÇ¾î À̸¦ Çؼ®ÇÏ¿© ½ÇÇà
- Server ¿¬°áÀÌ ÇÊ¿ä¾ø´Â Client ÂÊÀÇ Process¸¦ ´ã´çÇÒ ¼ö ÀÖ¾î ºÎÇÏ ºÐ»êÀÇ È¿°ú°¡ ÀÖÀ½
- Á¾·ù·Î´Â Java Script, J Script, VB Script µîÀÌ ÀÖÀ½
- ¿¹Á¦
%> <HTML> <script language="javascript"> function ch_input() { if((form1.path.value=="")||(form1.title.value=="")) { alert("Á¦¸ñ°ú uploadÇÒ ÆÄÀÏ À̸§À» ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù.") form1.path.focus() } else { form1.submit() } } </script> <HEAD> </HEAD> <BODY> <blockquote> <TABLE border=0 cellpadding=4 cellspacing=1 bgcolor=gray width=80%> <TR><TD class=TH>À̸§<TD><%=CStr(rs("std_name"))%> <TD class=TH>Çйø<TD><%=std_id%> <TD class=TH>°ú¸ñ<TD> <% rs.close query = "SELECT a.class_no, a.class_name, b.id FROM CLASS a, COURSE b, STUDENT c " query = query + "WHERE c.std_id='"+std_id+"' AND b.std_id = c.std_id " query = query + " AND b.class_id = a.class_id " Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open query, DbCon IF rs.EOF OR rs.BOF THEN response.write("<P>Á¸ÀçÇÏÁö ¾Ê´Â ¼ö¾÷ÀÔ´Ï´Ù.") END IF Response.Write("<FORM method=post action=upload.asp id=form1 name=form1 ENCTYPE='multipart/form-data'>") Response.Write("<SELECT NAME=course_id>") DO WHILE NOT rs.EOF Response.Write("<OPTION value="+CStr(rs("id"))+">"+CStr(rs("class_name"))+"("+CStr(rs("class_no"))+")") rs.MoveNext LOOP Response.Write("</SELECT>") %> </TABLE> <P> °ú¸ñ¶õ¿¡¼ ÇØ´çÇÏ´Â <B>°ú¸ñ</B>À» ¼±ÅÃÇÑ ÈÄ, <BR>¼÷Á¦ÀÇ Á¦¸ñÀ» ÀÔ·ÂÇÏ°í ÆÄÀÏÀ» Upload Çϼ¼¿ä. <TABLE border=0> <TR><TD> <TR><TD>Á¦¸ñ: <TD><INPUT TYPE=TEXT width=100 cols=100 name=title> (100ÀÚÀÌÇÏ) <TR><TD>ÆÄÀÏ: <TD><INPUT TYPE=FILE name=path id=path> <TR><TD><TD><INPUT TYPE=button value='ÀÔ·Â' id=submit1 name=submit1 onclick=ch_input()> </FORM> </TABLE> </blockquote> <% call footnote() %> </BODY> </HTML>- Example of a Tree menu Java Script
DHTML °ú CSS Class 12 ÂüÁ¶
Knowledge & Engineering Databases (c) copyright Namchul Do, 2002