lecture Home > ASP.NET > Taeyo's ASP.NET

Taeyo's ASP.NET

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2005³â 12¿ù 13ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2006³â 03¿ù 22ÀÏ

   °­Á ÀÐÀ½ ¼ö : ȸ

   ÀÛ¼ºÀÚ : Taeyo(±è Å¿µ)
   ÆíÁýÀÚ : Taeyo(±è Å¿µ)

   °­Á Á¦¸ñ : À¥¿¡¼­ÀÇ ºñµ¿±â È£Ãâ : XMLHTTP

°­Á Àü Å¿ÀÀÇ Àâ´ã>

ÀÌÁ¦ 2005³âÀÇ Å©¸®½º¸¶½ºµµ ÄÚ¾Õ¿¡ ´Ù°¡¿Í Àֳ׿ä. ¿Ã ÇÑÇØµµ ÂüÀ¸·Î ´Ù»ç´Ù³­Çß´ø °Í °°½À´Ï´Ù
°³ÀÎÀûÀ¸·Î´Â ÂüÀ¸·Î ¸í¿¹(?)·Î¿î ÇÑ ÇØ¿´´ø °Í °°±âµµ Çϳ׿ä ^^
¿©·¯ºÐµµ ¸ðµÎ ¸Þ¸® Å©¸®½º¸¶½º±¸¿ä. »õÇØ¿¡µµ º¹ ¸¹ÀÌ ¹ÞÀ¸¼¼¿ä~~~


À̹ø °­Á´ À¥À» ÅëÇÑ ºñ µ¿±â È£ÃâÀÇ µÎ ¹øÂ° ½Ã°£ÀÌ µÇ°Ú½À´Ï´Ù. Àü °­Á¿¡¼­´Â Àü¹ÝÀûÀÎ ºñ µ¿±â È£ÃâÀÇ ÀÇ¹Ì¿Í °íÀüÀûÀÎ ¹æ¹ý¿¡ ´ëÇØ ¼Ò°³¸¦ µå·È¾ú´Âµ¥¿ä. À̹ø¿¡´Â ±×¿¡ À̾î Á¶±Ý ´õ °³¼±µÈ(°Ô´Ù°¡, ÇöÀçµµ »ó´çÈ÷ ¾µ¸¸ÇÑ) ¹æ¹ýÀ» ¼Ò°³½ÃÄÑ µå¸®·Á ÇÏ´Â °ÍÀÌÁÒ.

ÀÌ ¹æ¹ýÀº ÇöÀç ´Ù¾çÇÑ ÇüÅ·Πº¯ÇüµÇ¾î ÀÌ¿ëÇϰí ÀÖ´Â ¹æ¹ýÀ̱⵵ ÇÕ´Ï´Ù. Áï, ¿ÜÀûÀÎ ÇüŸ¸ Á¶±Ý¾¿ ´Ù¸¦ »Ó, ´ëºÎºÐÀÇ ºñ µ¿±â È£ÃâÀÌ ³»ºÎÀûÀ¸·Î´Â À̹ø °­ÁÂÀÇ ¹æ¹ýÀ» »ç¿ëÇϰí ÀÖ´Ù´Â ÀǹÌÁÒ. ±×°Ô µµ´ëü ¹ºµ¥ ÀÌ·¸°Ô ¶äÀ» µéÀ̳ı¸¿ä?

¶ä! ¶äÀÌ ³ª¿ÔÀ¸´Ï µå¸®´Â ¸»¾¸Àε¥ ¸»ÀÔ´Ï´Ù. ¶ä! ÇԺηΠÀß ¸ø ¶ß¸é, »ó´çÈ÷ ´çȤ½º·¯¿öÁý´Ï´Ù. »ç½Ç, ¿äÁò µé¾î Á¦ °­Á¿¡ °³±×°¡ ¶äÇÏ¿© ºÒ¸¸ÀÌ ÀÖÀ¸½Å ºÐµé ¸¹Àºµ¥¿ä. ¸» ³ª¿Â ±è¿¡ [¶ä] À̾߱â Àá½Ã µå¸®°í °¡µµ·Ï ÇϰڽÀ´Ï´Ù. (Âü°í, ´Ù¼Ò Çø¿À(?)½º·¯¿ï ¼ö ÀÖÀ¸´Ï 15¼¼ ÀÌÇÏ´Â º¸È£ÀÚÀÇ ¼± °¨»ó ÈÄ, ÁöµµÇÏ¿¡ ÀоîÁֽñ⠹ٶø´Ï´Ù. ¤»¤»)

¹Ï°Å³ª ¸»°Å³ª, Å¿À´Â À¯ÀüÀûÀÎ ¿µÇâÀ¸·Î ÀÎÇØ¼­ °¡½¿¿¡ ¸ð(Ù¾)µéÀÌ Á» ¸¹½À´Ï´Ù. ±×°Íµµ µë¼º, µë¼ºÀÌ ¾Æ´Ï¶ó ¾ÆÁÖ ¼½½ÃÇÏ°í ³Ë³ËÇÏ°Ô °í·ç°í·ç ºÐÆ÷µÇ¾î ÀÖÁö¿ä. ÁÁ°Ô ¸»Çϸé, ¼½½ÃÇÑ °Å°í ½½ÇÁ°Ô ¸»Çϸé ÁøÈ­°¡ ´ú µÈ °ÍÀä. ¿Ü°¡ ÂÊÀÇ ¿µÇâÀ¸·Î °¡½¿¿¡ ¸ðµéÀÌ ¾ÆÁÖ ±¤È°ÇÏ°Ô ÆîÃÄÁ® ÀÖ½À´Ï´Ù. ±×·¡¼­ ³²µéº¸´Ù ¼¤Çª³ª ¸°½º¸¦ 1.5¹è Á¤µµ ¼ÒºñÇÕ´Ï´Ù¸¸¡¦ -_-

¿¹Àü¿¡ Á¦°¡ LA¿¡ °¬À» ¶§ ±³Åë»ç°í ÈÄÀ¯ÁõÀ¸·Î Ç㸮°¡ ¾È ÁÁ¾Ò´ø ½Ã±â°¡ ÀÖ¾ú½À´Ï´Ù(Âü°í! Å¿À ½ºÅ丮 1). ´ëºÎºÐ ±×·¯ÇÑ Áõ»óÀº ¸î ³âÀ» °ÉÃļ­ ¾È ÁÁÀº ÆíÀä. ¸î ³âÀÌ Áö³­ ¾î´À ³¯ ´º¿å¿¡ ÀÖ´Â ¿Ü°¡¸¦ Àá½Ã ¹æ¹®ÇßÀ» ´ç½Ã, ¿ÜÇҸӴϲ²¼­ ¿ëÇÑ ÇÑÀÇ¿øÀÌ ÀÖ´Ù°í ±× °÷¿¡ Çѹø °¡ÀÚ°í Çϼż­ µû¶ó°¬¾ú°Åµç¿ä. ±Ùµ¥, ¹Ù·Î °Å±â¼­ [¶ä]À» ÃßõÇÏ´õ¶ó±¸¿ä. Ç㸮°¡ ¾È ÁÁÀ» ¶§´Â ¶äÀ» ¶ß´Â °Ô ÃÖ°í¶ó´Â ½Åºù¼º ÀÖ¾î º¸À̴ ó¹æÀ» ³»¸®½Ã´õ±º¿ä. À½.. °ú¿¬??? ¾î·µç, [¶ä]À» ¶ß´Â °Ô ¹¹°¡ ´ë¼ö°Ú½À´Ï±î¸¶´Â ¹®Á¦´Â ºÎÀ§¿´½À´Ï´Ù. ¶äÀ» ¶°¾ß ÇÏ´Â ºÎÀ§°¡ ¹Ù·Î ¹è²ÅÀ̾ú°Åµç¿ä. ±Ùµ¥, Á¦ ¸ðµéÀº °¡½¿ À§ºÎÅÍ ´ÜÀü±îÁö Á÷¼±ÀÇ ÄÚ½º¸¦ ³»¸® ´Þ¸®´Â ¿ÍÁß¿¡, ±× ÁÖº¯À¸·Îµµ ±¤¿ªÀûÀ̱⿡¡¦ ¹è²Å ÁÖÀǵµ ÀÌ¹Ì ¸ðµéÀÌ Àå¾ÇÇÑ Áö ¿À·¡µÇ¾úÁÒ. ¿ä´Â ¶äÀ» ¶ß±â À§Çؼ­´Â ¹è²Å ÁÖÀ§ÀÇ ¸ðµéÀ» Á¤¸®ÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¶äÀ» À§Çؼ­, ¹è²Å ÁÖÀ§ Á÷°æ 5cm Á¤µµ ¿øÇü Áö¿ªÀ» ±Ý¸ð Áö¿ªÀ¸·Î ¸¸µé¾î¾ß¸¸ Çß´Ù´Â °ÍÀÔ´Ï´Ù.

Áß¿äÇÑ °ÍÀº ±× ¶§°¡ ±×·¯´Ï±î 7¿ù¡¦ Áï, ¹ÙIJ½º ½ÃÁðÀ» ÄÚ¾Õ¿¡ µÐ ½Ã±â¿´´Ù´Â °ÍÀÌÁÒ. °¡½¿ÀÇ ¸ðµéÀÌ ¼½½ÃÇÏ·Á¸é µë¼ºµë¼ºÀº Oh~ No ÀÔ´Ï´Ù. ±×·±µ¥, ¹è²Å ÁÖÀ§ ¹Ý°æ 5cmÀÇ °­Á¦ÀûÀÎ ¿øÇü »è¹ßÀ̶ó´Ï¡¦ Àþµð ÀþÀº 20¼¼ Áß¹ÝÀÇ Å¿À. ±× ÇØÀÇ ¹ÙIJ½º´Â ±×·¸°Ô ±×·¸°Ô ¹Ù´å¹° Çѹø ¸¸³ªº¸Áö ¸øÇß´ø °ÍÀÔ´Ï´Ù. ¹Ï°Å³ª ¸»°Å³ª, ±× ÇØÀÇ Á¦ Ä£±¸µéÀº Á¦°¡ ¹Ù´Ùº¸´Ù »êÀ» ÁÁ¾ÆÇÑ´Ù°í ¹Ï¾ú°í, Àú´Â ÀÎÀÚ¿ä»ê ÁöÀÚ¿ä¼ö¸¦ ¿ÜÄ¡¸é¼­, ½º½º·Î¸¦ ÀÎÀÚ¶ó ȣĪÇÏ¿´´Ù´Â¡¦ ½½Ç Àü¼³ÀÌ ÀÖ½À´Ï´Ù.

"µµ´ëü~ ¶äÀ̶û ºñ µ¿±â È£Ãâ°ú ¹«½¼ »ó°üÀ̳Ä?"°í ¹°À¸½Ã´Â °ÍÀº ¾Æ´Ï°ÚÁÒ? ¹°·Ð, ¾Æ¹«·± »ó°üÀÌ ¾ø¾î¿ä~ ¤»¤» ÀÚ²Ù Á¦ ¸öÀ» ¶°¿Ã¸®Áö ¸¶½Ê½Ã¿À. ¼­·ÎÀÇ Á¤½Å °Ç°­¿¡ ÁÁÀ» °Ô ¾øÁö ¾Ê°Ú½À´Ï±î?? ÀÚ. ±×·³ ÀÌÁ¦ º»¹®À¸·Î µ¹¾Æ¿Í º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

ºñ µ¿±â È£ÃâÀÇ µÎ ¹øÂ° ¹æ¹ýÀº XMLHTTP¶ó´Â COM ÄÄÆ÷³ÍÆ®¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. À̴ Ŭ¶óÀÌ¾ðÆ® ½ºÅ©¸³Æ®ÀÎ ÀÚ¹Ù½ºÅ©¸³Æ® ¾È¿¡¼­µµ ÀÌ¿ëÇÒ ¼ö Àֱ⿡ ¸Å¿ì À¯¿ëÇÕ´Ï´Ù. XMLHTTP °³Ã¼¸¦ »ç¿ëÇÏ°Ô µÇ¸é, ÀϹÝÀûÀÎ ÆäÀÌÁöÀÇ ¿äû/ÀÀ´ä ¿Ü¿¡µµ º°µµÀÇ ¿äû ¹× ÀÀ´äÀ» ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. Áï, ºñ µ¿±â È£ÃâÀÌ ¿ä±¸ÇÏ´Â º°µµÀÇ ¿äû/ÀÀ´ä ä³ÎÀ» È®º¸ÇÒ ¼ö ÀÖ´Ù´Â Àǹ̰¡ µÇ°ÚÁÒ. ÃʽÉÀڵ鿡°Ô´Â ¾î·Á¿î ¸»ÀÏ ¼öµµ ÀÖÁö¸¸ ¸»ÀÔ´Ï´Ù. ÀÏ´Ü ±×¸²À¸·Î È®ÀÎÇØ º¸½ÃÁÒ~

º¸½Ã´Ù½ÃÇÇ, XMLHTTP °³Ã¼´Â ÀÚ¹Ù½ºÅ©¸³Æ® ¾È¿¡¼­ °³Ã¼ÀÇ ÀνºÅϽº¸¦ ¸¸µé¾î¼­ ÀÌ¿ëÀÌ °¡´ÉÇϱ⿡, ¼­¹ö ÃøÀÇ ÆäÀÌÁö°¡ ¹«½¼ ÆäÀÌÁöÀ̵çÁö´Â Áß¿äÇÏÁö ¾Ê½À´Ï´Ù. Áï, ÀÌ ¹æ½Äµµ ¼­¹ö ÆäÀÌÁö°¡ ASPÀÌ´ø, PHPÀÌ´ø, JSPÀÌ´ø, .NET ÆäÀÌÁöÀÌ´ø ÀüÇô °³ÀÇÄ¡ ¾Ê´Â´Ù´Â °ÍÀÌÁÒ. ¾î¶² µ¿Àû ÆäÀÌÁöÀÌ´ø °£¿¡ µ¥ÀÌÅÍ Ã³¸® °á°ú·Î Ãâ·ÂµÇ´Â ¹®ÀÚ¿­À̳ª XML µ¥ÀÌÅ͸¸ ¹Þ¾Æ¿À¸é µÇ±â ¶§¹®ÀÔ´Ï´Ù. XMLHTTP´Â ±×·¯ÇÑ °á°ú¸¦ ºñ µ¿±âÀûÀ¸·Î ¼ö½Å ¹Þ¾Æ¿À´Â ¿ªÇÒÀ» Çϰí, Ŭ¶óÀÌ¾ðÆ® ½ºÅ©¸³Æ®´Â ±× ¹Ýȯ¹ÞÀº µ¥ÀÌÅ͸¦ ¹®ÀÚ¿­ ÆÄ½Ì(parsing)ÇÏ¿© ÇÊ¿äÇÑ µ¥ÀÌÅ͸¦ µ¿ÀûÀ¸·Î À¥ ÆäÀÌÁö¿¡ ¹Ý¿µÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù. ±×·¸´Ù¸é, »ùÇÃÀ» Çѹø °°ÀÌ »ìÆìº¸½Ç±î¿ä?

»ùÇÃÀº °¢°¢ Ŭ¶óÀÌ¾ðÆ® ÆäÀÌÁö¿Í ¼­¹ö ÆäÀÌÁö·Î ±¸ºÐÇØ¼­ Äڵ带 º¸¿©µå¸®°Ú½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® ÆäÀÌÁö´Â ±»ÀÌ µ¿Àû ÆäÀÌÁöÀÏ Çʿ䰡 ¾øÀ¸´Ï htm ÆäÀÌÁö·Î ¸¸µé°í¿ä. ¼­¹ö ÆäÀÌÁö´Â ´Ü¼øÈ÷ ¼­¹ö¿¡¼­ µ¥ÀÌÅ͸¦ ¾ò¾î¿À±â À§ÇØ ÇÊ¿äÇÑ ÆäÀÌÁöÀÌ´Ï ASP, JSP ¹¹·Î ¸¸µé¾îµµ ¹«°üÇÏÁö¸¸, »çÀÌÆ®°¡ »çÀÌÆ®À̴ϸ¸Å­ ASP.NET ÆäÀÌÁö·Î ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ASP.NET ÆäÀÌÁöÀ̱ä ÇÏÁö¸¸, UI´Â ÀüÇô ¾ø´Â ÆäÀÌÁö·Î ¸»ÀÔ´Ï´Ù(±×·± ÀÌÀ¯·Î, aspx ÆäÀÌÁöÀÇ ¼Ò½º´Â º¸¿©µå¸± Çʿ䰡 ¾ø°í¿ä. AspxÀÇ ÄÚµå ºñÇÏÀε常 º¸¿©µå¸®¸é µÉ °ÍÀÔ´Ï´Ù).

Client.htm
<html>
    <head>
    <Script language="JavaScript">
        function GetInfo()
        {
            var empID = document.all.EmpID.value;
            var pageUrl = "Process.aspx?param=" + empID;

            var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
            xmlRequest.Open("POST", pageUrl, true);
            xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            xmlRequest.onreadystatechange = function() {CallBack(xmlRequest)};
            xmlRequest.Send(null);

            return xmlRequest;
        }

        function CallBack(xmlRequest)
        {
            if (xmlRequest == null || xmlRequest.readyState != 4) return;
            if(xmlRequest.responseText.length == 0) return;

            var vals = xmlRequest.responseText.split("\t");

            document.all.LastName.value = vals[0];
            document.all.FirstName.value = vals[1];
            document.all.Title.value = vals[2];
            document.all.BirthDate.value = vals[3];
            document.all.City.value = vals[4];
        }

    </Script>
    <LINK href="../Styles.css" type="text/css" rel="stylesheet">
    </head>
    <body>
    <p>
        <table cellpadding="3">
            <tr>
                <td align="center">»ç¹ø</td>
                <td><input id="EmpID" NAME="EmpID" onchange="GetInfo();" ></td>
            </tr>
            <tr height="1" bgcolor="silver">
                <td colspan="2"></td>
            </tr>
            <tr>
                <td align="center" width="80">À̸§</td>
                <td width="200"><input id="LastName" name="LastName"></td>
            </tr>
            <tr>
                <td align="center">¼º</td>
                <td><input id="FirstName" name="FirstName"></td>
            </tr>
            <tr>
                <td align="center">Á÷±Þ</td>
                <td><input id="Title" name="Title"></td>
            </tr>
            <tr>
                <td align="center">»ýÀÏ</td>
                <td><input id="BirthDate" name="BirthDate"></td>
            </tr>
            <tr>
                <td align="center">µµ½Ã</td>
                <td><input id="City" name="City"></td>
            </tr>
        </table>
    </p>
    <p>Microsoft.XMLHTTP ÄÄÆ÷³ÍÆ®¸¦ »ç¿ëÇÑ ¿¹ÀÔ´Ï´Ù (IE 5.0 ÀÌ»ó)</a></p>
    </body>
</html>

Process.aspx.cs
public class Process : System.Web.UI.Page
{
    private void Page_Load(object sender, System.EventArgs e)
    {
        string param = "";
        if(Request.Params["Param"] != null)
            param = Request.Params["Param"];
        else
        return;

        string info = string.Empty;
        string strCon = "server=(local);database=Northwind;uid=sa;pwd=**";
        string sql = " SELECT LastName, FirstName, Title, BirthDate, City FROM Employees "
                    + " WHERE EmployeeID = @empID";

        SqlConnection con = new SqlConnection(strCon);
        SqlCommand cmd = new SqlCommand(sql, con);
        cmd.Parameters.Add("@empID", SqlDbType.Int);
        cmd.Parameters["@empID"].Value = param;

        con.Open();
        SqlDataReader reader = cmd.ExecuteReader();

        if(reader.Read())
        {
            info = reader[0].ToString();
            info += "\t" + reader[1].ToString();
            info += "\t" + reader[2].ToString();
            info += "\t" + reader[3].ToString();
            info += "\t" + reader[4].ToString();
        }
        else
        {
            info = "null\tnull\tnull\tnull\tnull";
        }

        reader.Close();
        con.Close();

        Response.Write(info);
        Response.End();
    }
}

ÀÏ´Ü, ¼­¹ö ÆäÀÌÁöÀÎ Process.aspx ÆäÀÌÁöºÎÅÍ »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù. Process.aspxÀÇ ¿ªÇÒÀº º¸½Ã´Ù½ÃÇÇ ´ë´ÜÇÑ °ÍÀÌ ¾ø½À´Ï´Ù. ´ÜÁö ParamÀ̶õ ÀÎÀÚ·Î ³Ñ¾î¿À´Â »ç¹øÀ» °¡Áö°í µ¥ÀÌÅͺ£À̽º¸¦ Á¶È¸Çؼ­, ±× »ç¹ø¿¡ ÇØ´çÇÏ´Â Á÷¿øÀÇ À̸§ ¹× Á¤º¸µéÀ» ÅÇŰ(\t)¸¦ ±¸ºÐÀÚ·Î ÇÏ´Â ¹®ÀÚ¿­À» ¸¸µé¾î¼­ È­¸é¿¡ Ãâ·ÂÇÏ´Â °ÍÀÌ ÀüºÎÀÏ »ÓÀÔ´Ï´Ù. ´ÜÁö, µ¥ÀÌÅͺ£À̽º¸¦ Á¶È¸ÇÏ¿©, ±× °á°ú µ¥ÀÌÅ͸¦ È­¸é¿¡ Ãâ·ÂÇÏ´Â ¿ªÇÒÀ» ÇÒ »ÓÀ̶ó´Â °ÍÀÌÁÒ. ¸¸ÀÏ, »ç¿ëÀÚ°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é, °¢°¢ÀÇ °ªÀ» nullÀ̶ó´Â ¹®ÀÚ¿­·Î ¸¸µé¾î¼­ Ãâ·ÂÇϰí ÀÖ½À´Ï´Ù. ¹Ýµå½Ã nullÀ̶ó´Â ¹®ÀÚ¿­À» ½á¾ßÇÏ´Â °ÍÀº ¾Æ´Ï°ÚÁö¸¸ ¿¹Á¦¿¡¼­´Â ±×³É ±×·¸°Ô ÇØ º¸¾Ò½À´Ï´Ù. ¸¾¿¡ ¾È µå½Ã¸é " "¿Í °°Àº °ø¹é¹®ÀÚ¸¦ ÀÌ¿ëÇØµµ ¹«°üÇϰÚÁÒ.

¼­¹ö ÆäÀÌÁöÀÇ ½ÇÇà °á°ú´Â È®¿¬ÇÒ °ÍÀÔ´Ï´Ù. Á¸ÀçÇÏ´Â »ç¹øÀ» ParamÀ̶ó´Â ÀÎÀÚ·Î ³Ñ°ÜÁÖ¸é ´ÙÀ½°ú °°ÀÌ ¿Ã¹Ù·Î »ç¿ëÀÚ µ¥ÀÌÅͰ¡ È­¸é¿¡ Ãâ·ÂµÉ °ÍÀ̰í, Á¸ÀçÇÏÁö ¾Ê´Â »ç¹øÀ» ÀÎÀÚ·Î ³Ñ°ÜÁÖ¸é µÎ ¹øÂ° ±×¸²Ã³·³ nullÀ̶ó´Â °ªµéÀÌ Á÷¿ø Á¤º¸¸¦ ´ë½ÅÇϰÚÁÒ.

¼­¹ö ÆäÀÌÁö´Â Áغñ°¡ µÇ¾úÀ¸´Ï ÀÌÁ¦ Client.htm ÆäÀÌÁö¸¦ »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

¿ì¼±, ÀÌ ÆäÀÌÁö¿¡¼­ °¡Àå ¸ÕÀú º¸¾Æ¾ß ÇÒ ºÎºÐÀº »ç¹øÀ» ÀԷ¹޴ ÄÁÆ®·ÑÀÎ empID ÄÁÆ®·ÑÀÔ´Ï´Ù.

<input id="EmpID" NAME="EmpID" onchange="GetInfo();">

ÀÌ´Â onChange À̺¥Æ® ½Ã¿¡ GetInfo¶ó´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö¸¦ È£ÃâÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù. ±×·³, GetInfo ÇÔ¼ö¸¦ »ìÆìº¼±î¿ä? ±× ÇÔ¼ö´Â ¾î¶°ÇÑ ÀÏÀ» Çϳª¿ä? ³»¿ëÀº ´ë·« ´ÙÀ½°ú °°½À´Ï´Ù.

     function GetInfo()
     {
         var empID = document.all.EmpID.value;
         var pageUrl = "Process.aspx?param=" + empID;

         var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
         xmlRequest.Open("POST", pageUrl, true);
         xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         xmlRequest.onreadystatechange = function() {CallBack(xmlRequest)};
         xmlRequest.Send(null);

         return xmlRequest;
     }

ÀÌ ÇÔ¼ö´Â ÇöÀç Æû¿¡¼­ empID¶õ ¾ÆÀ̵𸦠°®´Â ÄÁÆ®·ÑÀÇ ÀÔ·Â °ªÀ» ¾ò¾î¿Í¼­ ±× °ªÀ» °¡Áö°í Process.aspx ÆäÀÌÁö¸¦ ¿äûÇÏ´Â ¹®ÀÚ¿­À» ±¸¼ºÇÕ´Ï´Ù. ±× ´ÙÀ½, Microsoft.XMLHTTPÀÇ °³Ã¼ ÀνºÅϽº, Áï ÄÚµå »ó¿¡¼­´Â xmlRequest¸¦ ¸¸µé¾î¼­ º°µµÀÇ ÆäÀÌÁö ¿äûÀ» ¼öÇàÇϰí ÀÖ½À´Ï´Ù. Áï, XMLHTTP ÄÁÆ®·ÑÀ» ÀÌ¿ëÇØ¼­ ½ºÅ©¸³Æ® ³»ºÎ¿¡¼­ º°µµÀÇ À¥ ¿äûÀ» ¼­¹ö·Î º¸³»°í ÀÀ´äÀ» ¹Þ´Â´Ù´Â °ÍÀÔ´Ï´Ù.

XMLHTTP ÄÄÆ÷³ÍÆ®´Â ƯÁ¤ URL·Î ¿äûÀ» º¸³»¼­ ÀÀ´ä µ¥ÀÌÅ͸¦ ¹Þ¾Æ¿À´Â ¿ªÇÒÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿äûÀ» ÇÒ ¼­¹ö °æ·Î´Â Open ¸Þ¼­µå¿¡ ÀÎÀÚ·Î ½Ç¾î¼­ º¸³»¸é µË´Ï´Ù. ¹°·Ð, ±× url °æ·Î µÚ¿¡ GET ¹æ½ÄÀÇ ¸Å°³º¯¼öµéÀ» ÷ºÎÇÒ ¼ö ÀÖ´Â °ÍÀº ³Ê¹«³ªµµ ´ç¿¬ÇϰÚÁÒ? ÇØ¼­, ¼Ò½º ù ¹øÂ° ¶óÀο¡¼­ URLÀ» ±¸¼ºÇÒ ¶§, URL µÚ¿¡ ?param= À̶ó´Â °ÍÀ» ºÙÀ̰í, ÀÎÀÚ °ªÀ» ºÙ¿©ÁØ °ÍÀÔ´Ï´Ù. ±×¸®°í, XMLHTTP °³Ã¼ÀÇ Send ¸Þ¼­µå¸¦ ÅëÇØ¼­ ¿äûÀ» º¸³»°í ³ª¸é, ÀÌÁ¦ °³Ã¼´Â ÇØ´ç URL ÆäÀÌÁö¸¦ ¿äûÇÏ°Ô µÇ°í, ±× °á°ú °ªÀ» ¹Þ¾Æ¿À°Ô µË´Ï´Ù.

ÇÑ °¡Áö ÁÖÀÇÇÒ Á¡Àº ÀÌ È£ÃâÀÌ ºñµ¿±âÀûÀÌ µÇ±â À§Çؼ­´Â Open ¸Þ¼­µåÀÇ ¼¼¹øÂ° ÀÎÀÚ·Î ¹Ýµå½Ã true¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¹Ù·Î ÀÌ ¼¼ ¹øÂ° ÀÎÀÚ°¡ È£ÃâÀ» ºñµ¿±âÀûÀ¸·Î ó¸®Ç϶ó´Â Àǹ̸¦ °¡Áö±â ¶§¹®ÀÔ´Ï´Ù. ÀÌ ¸»Àº ºñµ¿±â È£ÃâÀ» À§ÇÑ ¹æ¾Èµµ XMLHTTP°¡ ÀÌ¹Ì ³»ÀåÇϰí ÀÖ´Ù´Â °ÍÀÌ¶ó º¸½Ã¸é µË´Ï´Ù. ^^

±×¸®°í, ¼Ò½º¿¡¼­´Â onreadystatechange ¸¦ ƯÁ¤ ÇÔ¼ö¸íÀ¸·Î ÁöÁ¤Çϰí ÀÖ½À´Ï´Ù. onReadyStateChange ¼Ó¼º¿¡ ÄݹéÀ» À§ÇÑ ¸Þ¼­µå¸¦ ÁöÁ¤ÇØ ÁְԵǸé, »óꝰæ(¿äû½ÃÀÛ, ¿¡·¯¹ß»ý, ¿äû¿Ï·á µî)ÀÌ ÀϾ ¶§¸¶´Ù ÁöÁ¤µÈ CallBack ¸Þ¼­µå´Â ¹Ýº¹ÀûÀ¸·Î È£ÃâµÇ°Ô µË´Ï´Ù. ¼Ò½º¿¡¼­´Â ÆíÀǸ¦ À§Çؼ­ ÀÎÀÚ·Î ÇöÀçÀÇ xmlRequest °³Ã¼¸¦ ³Ñ±â°í ÀÖÁö¸¸ ¸»ÀÔ´Ï´Ù. ¹Ýµå½Ã ±×·¡¾ßÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. XMLHTTP ÄÄÆ÷³ÍÆ®¸¦ Àü¿ªÀ¸·Î ¼±¾ðÇß´Ù¸é ±»ÀÌ ÀÎÀÚ·Î ³Ñ±æ ÇÊ¿ä´Â ¾ø°ÚÁÒ?

CallBack ¸Þ¼­µå´Â È£ÃâÀÇ »óŰ¡ º¯°æµÉ ¶§¸¶´Ù È£ÃâÀÌ µÇ¾îÁö´Âµ¥¿ä. ¾Æ·¡ÀÇ ¼Ò½º¿¡¼­ º¸ÀÌ´Ù½ÃÇÇ, »óŸ¦ È®ÀÎÇØ¼­ ±× »óŰ¡ 4(¼º°øÀûÀ¸·Î 󸮵ǾúÀ½À» ÀǹÌ)°¡ ¾Æ´Ñ °æ¿ì¿¡´Â 󸮸¦ °Ç³Ê¶Ù°Ô Çϰí ÀÖ±¸¿ä. ¹ÝȯµÈ µ¥ÀÌÅͰ¡ ÀüÇô ¾ø´Â °æ¿ì¿¡µµ returnÀ» ÇÏ°Ô Çϰí ÀÖ½À´Ï´Ù. ¹ÝȯµÈ µ¥ÀÌÅͰ¡ ¿Ã¹Ù¸¦ °æ¿ì¿¡¸¸ ±× µ¥ÀÌÅ͸¦ Àß¶ó¼­ È­¸é¿¡ ¹Ý¿µÇϰڴٴ °ÍÀÌÁÒ ^^

     function CallBack(xmlRequest)
     {
         if (xmlRequest == null || xmlRequest.readyState != 4) return;
         if(xmlRequest.responseText.length == 0) return;

         var vals = xmlRequest.responseText.split("\t");

         document.all.LastName.value = vals[0];
         document.all.FirstName.value = vals[1];
         document.all.Title.value = vals[2];
         document.all.BirthDate.value = vals[3];
         document.all.City.value = vals[4];
     }

°á°ú °ªÀº responseText¶ó´Â ¼Ó¼ºÀ» ÅëÇØ¼­ ¾òÀ» ¼ö°¡ Àִµ¥¿ä. responseText °ªÀº ¼­¹öÀÇ ÆäÀÌÁö°¡ Ãâ·ÂÇÑ ¹®ÀÚ¿­ µ¥ÀÌÅÍ(html ȤÀº xml ȤÀº ¿¹Á¦ÀÇ °æ¿ì, ÀÏ¹Ý ¹®ÀÚ¿­)À» ±×´ë·Î °¡Á®¿É´Ï´Ù. ÇöÀçÀÇ °æ¿ì´Â Process.aspx ÆäÀÌÁöÀÇ °á°ú, ÅÇ(tab) Ű·Î ±¸ºÐµÈ ¹®ÀÚ¿­ÀÌ ³Ñ¾î¿Ã °ÍÀÔ´Ï´Ù.

ÇØ¼­, ½ºÅ©¸³Æ®¿¡¼­´Â ±× responseText µ¥ÀÌÅ͸¦ ÅÇ Å°·Î SplitÇØ¼­, ÀÏ´Ü ¹®ÀÚ¿­ ¹è¿­À» ¸¸µç µÚ, °¢°¢ ÇÊ¿äÇÑ ¹®ÀÚ¿­À» ÃßÃâÇÏ¿© »ç¿ëÇϰí ÀÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù.

Á¶±Ý ´õ °í±Þ½º·¯¿ï ¶ó¸é, ¼­¹ö¿¡¼­´Â µ¥ÀÌÅ͸¦ xml ÇüÅ·Π±¸¼ºÇؼ­ Ãâ·ÂÇϰí, Ŭ¶óÀÌ¾ðÆ®´Â ±× xml µ¥ÀÌÅ͸¦ ParsingÇØ¼­ »ç¿ëÇÏ¸é ´õ¿í ³´°ÚÁö¸¸, ±×¸¦ À§ÇØ Ãß°¡ÀûÀÎ Äڵ尡 ÇÊ¿äÇϱ⿡ ¿¹Á¦¿¡¼­´Â °£´ÜÇϰԸ¸ ÇØ º¸¾Ò½À´Ï´Ù.

ÀÚ. ±×·³ ÀÌÁ¦ ÆäÀÌÁö(Client.htm)¸¦ ½ÇÇàÇϰí, °á°ú¸¦ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ¿ª½Ã³ª ¿¹»ó´ë·Î Àß µ¿ÀÛÇÏ´Â °ÍÀ» º¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. »ç¹ø(1ºÎÅÍ 9 »çÀÌÀÇ ÀÓÀÇÀÇ ¼ýÀÚ)À» ÀÔ·ÂÇÏ°í Æ÷Ä¿½º¸¦ ¿Å±â±â¸¸ Çϸé ÀÚµ¿À¸·Î ´Ù¸¥ ÅØ½ºÆ®¹Ú½º¿¡´Â ÇØ´ç »ç¹øÀÇ Á÷¿ø Á¤º¸°¡ Ãâ·ÂµÇ´Â °ÍÀ» º¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ±×ÃÝ?

Àç¹ÌÀÖÁö ¾Ê³ª¿ä? ÇÏÇÏ

°­Á Ãʹݿ¡µµ °­Á¶µå·ÈÁö¸¸, ÀÌ ¹æ½ÄÀº ÇöÀç±îÁöµµ ¿©·¯ ÇüÅ·ΠÀÌ¿ëµÇ°í ÀÖ´Â ¹æ½ÄÀÔ´Ï´Ù. ¿¹¸¦ µéÀÚ¸é, ÇüŸ¸ ´Ù¸£´Ù »ÓÀÌÁö AJAXµµ ³»ºÎÀûÀ¸·Î´Â ÀÌ ¹æ½ÄÀ» ÀÌ¿ëÇϰí ÀÖ½À´Ï´Ù. ±× ¿Ü¿¡ À¥ ±â¹ÝÀÇ ºñ µ¿±â È£Ãâ¹æ½Äµµ ´ëºÎºÐ ³»ºÎÀûÀ¸·Î´Â XMLHTTP¸¦ ÀÌ¿ëÇÑ´Ù°í ºÁµµ °ú¾ðÀÌ ¾Æ´Õ´Ï´Ù. ±×·¸±â¿¡ À̹ø °­Á´ ¸Å¿ì Áß¿äÇÕ´Ï´Ù. ¾Ë¾ÆµÎ¸é ¹Ýµå½Ã Â÷ÈÄ¿¡ ´Ù¸¥ ºñ µ¿±â È£ÃâÀ» ÀÌÇØÇÒ °æ¿ì µµ¿òÀÌ µÉÅ״ϱî¿ä.

ÀÚ, ±×·³ ÀÌÁ¦ ´ÙÀ½ °­Á¿¡¼­ ¶Ç ´Ù¸¥ ºñ µ¿±â È£Ãâ¹æ½ÄÀ» ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù. °¥¼ö·Ï À볪Áö´Â Å¿ÀÀÇ °­ÁÂ!! À̹ø¿¡µµ ¸¸»§ ±â´ëÇØ ÁÖ¼¼¿ä ^^

À̹ø °­Á¿¡ ¾²ÀÎ ¼Ò½º¸¦ ¿øÇϽøé Ŭ¸¯Çϼ¼¿ä ^^

 

°­Á ¸ñ·ÏÀ¸·Î..