JSP/SERVLET
2017.06.01 / 18:14

¼­ºí¸´ ÇÁ·Î±×·¡¹Ö #5 - Ŭ¶óÀ̾ðÆ® ´ç±â±â, ¼­ºí¸´, frameÀ» ÀÌ¿ëÇÑ Ã¤Æà ÇÁ·Î±×·¥ ¼Ò°³

Secutiry
Ãßõ ¼ö 299

À̹ø ½Ã°£¿¡´Â Ŭ¶óÀ̾ðÆ® ´ç±â±â, ¼­ºí¸´, frameÀ» ÀÌ¿ëÇÑ Ã¤Æà ÇÁ·Î±×·¥À» ¸¸µé¾î º¸°Ú½À´Ï´Ù.


ÀÏ´Ü ¿ë¾î ¼³¸íÀ» ¸ÕÀú Çؾ߰ÚÁö¿ä?


Ŭ¶óÀ̾ðÆ® ´ç±â±â¶õ?

meta ű׸¦ ÀÌ¿ëÇÑ Å¬¶óÀ̾ðÆ® f5 ½Å°øÀÔ´Ï´Ù. ½±ÁÒ?? ÀÚµ¿À¸·Î f5¸¦ ÀÏÁ¤½Ã°£¸¶´Ù ´­·¯ÁÖ´Â °Ì´Ï´Ù. ¤»¤»¤»¤»¤» Á» ´õ ±â¼úÀûÀ¸·Î ¸»Çϸé meta ű×ÀÇ http-equiv ¼Ó¼º¿¡ refresh ¼Ó¼º°ªÀ» ÀÌ¿ëÇؼ­ ÀÏÁ¤½Ã°£¸¶´Ù ¼­¹ö¿¡ ÆäÀÌÁö¸¦ ¿äûÇÏ´Â °ÍÀ̶ó°í º¸½Ã¸é µË´Ï´Ù.

frameÀ̶õ??

¿ø·¡ ÇÑ ¹ø¿¡ ÇÑ°³ÀÇ ÆäÀÌÁö¸¦ º¸¿©Áִ À¥ ÆäÀÌÁö¿¡ ¿µ¿ªÀ» ³ª´©¾î ¼­·Î ´Ù¸¥ ÆäÀÌÁö¸¦ º¸¿©ÁÖ´Â html ű×ÀÔ´Ï´Ù. ¿ì¸®´Â ÀÌ Å±׸¦ ÅؽºÆ®¸¦ ÀÔ·ÂÇÏ´Â ºÎºÐ°ú º¸¿©ÁÖ´Â ºÎºÐÀ¸·Î ³ª´©¾î¼­ Á¦ÀÛÇÒ °ÍÀÔ´Ï´Ù.


¼­ºí¸´Àº ´Ùµé ¾Æ½ÃÁÒ??


´ÙÀ½À¸·Î º¸½Ç °ÍÀº äÆà ÇÁ·Î±×·¥ÀÇ ÆäÀÌÁö ±¸¼ºÀÔ´Ï´Ù.


óÀ½À¸·Î º¸¿©ÁÙ ÆäÀÌÁö´Â chat.html ÆäÀÌÁö ÀÔ´Ï´Ù.

ÀÌ ÆäÀÌÁö¿¡¼­´Â Á¢¼ÓÀÚ¿¡°Ô »ç¿ëÇÒ ´Ð³×ÀÓÀ» ¹°¾îº¸´Â ÆäÀÌÁö¶ó°í º¸½Ã¸é µË´Ï´Ù.


´Ð³×ÀÓÀ» ÀÔ·Â ÇϽøé ChatLogin.javaÀÇ ¼­ºí¸´ ÆäÀÌÁö¸¦ ¿äûÇÕ´Ï´Ù. ÀÌ °÷¿¡¼­ ´Ð³×ÀÓÀ» ÀÔ·ÂÇÏÁö ¾Ê°í µé¾î¿Â »ç¿ëÀÚ¸¦ ´Ù½Ã chat.html ÆäÀÌÁö·Î ³Ñ±â°í »ç¿ëÀÚÀÇ id¸¦ ÀúÀåÇÕ´Ï´Ù. ±×¸®°í frameÀ» ÀÌ ÆäÀÌÁö¿¡¼­ ³ª´©¾î °¢°¢ ChatInput ÆäÀÌÁö¿Í ChatServer ÆäÀÌÁö¸¦ º¸¿©ÁÝ´Ï´Ù.


ChatInput ÆäÀÌÁö´Â ÅؽºÆ®¸¦ ÀÔ·ÂÇÏ´Â ÆäÀÌÁö°í ChatServer ÆäÀÌÁö´Â ÀÔ·ÂÇÑ ³»¿ëÀ» Ŭ¶óÀ̾ðÆ®¿¡°Ô º¸¿©ÁÖ´Â ÆäÀÌÁö¶ó°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù.


´ÙÀ½ ±Û¿¡¼­ chat.html ÆäÀÌÁöºÎÅÍ ÂùÂùÈ÷ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.


±Û ¸ñ·Ï


1. chat.html º¸±â

<html>

<head>

<title>äÆà ·Î±×ÀÎ</title>

</head>

<body>

<h2>äÆà ·Î±×ÀÎ</h2>

<form method = get action =ChatLogin>

»ç¿ëÀÚ ID : <input type = text name =id>

<input type = submit value='È®ÀÎ'>

</form>

</body>

</html>



chat.htmlÀº º°°Ô ¾ø½À´Ï´Ù.

get method¸¦ ÀÌ¿ëÇØ ChatLogin ÆäÀÌÁö¸¦ ¿äûÇÏ°í ÆäÀÌÁö¿¡ ³Ñ°ÜÁÙ µ¥ÀÌÅÍ´Â name ¼Ó¼º°ªÀÌ id ÀÎ ÅؽºÆ® »ÓÀÔ´Ï´Ù!!


2. ChatLogin.java º¸±â


ChatLogin.java


import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;


/**

 * Servlet implementation class ChatLogin

 */

public class ChatLogin extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException{

login(req, res);

//get ¸Þ¼Òµå·Î ÆäÀÌÁö¸¦ ¿äûÇßÀ» ¶§ ½ÇÇàµÇ´Â ºÎºÐÀ¸·Î ¹Ù·Î login ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.

}

public void doPost(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException{

login(req, res);
                                //post ¸Þ¼Òµå·Î ÆäÀÌÁö¸¦ ¿äûÇßÀ» ¶§ ½ÇÇàµÇ´Â ºÎºÐÀ¸·Î ¹Ù·Î login ¸Þ¼Òµå¸¦

È£ÃâÇÕ´Ï´Ù.                                                         

}

public void login(HttpServletRequest req, HttpServletResponse res)

throws IOException, ServletException{

req.setCharacterEncoding("KSC5601");

res.setContentType("text/html;charset=KSC5601");

PrintWriter out = res.getWriter();

    //PrintWriter °´Ã¼¿¡ ÆäÀÌÁö¿¡ ÅؽºÆ®¸¦ Ç¥½ÃÇÏ´Â PrintWriter °´Ã¼¸¦ ȹµæÇÕ´Ï´Ù.

//¿©±â±îÁö´Â ÀϹÝÀûÀÎ ¼­ºí¸´ ÆäÀÌÁö¿Í °°½À´Ï´Ù. º°°Å ¾øÁö¿ä?

    String id = req.getParameter("id");

    //Àü ÆäÀÌÁö¿¡¼­ id¶ó´Â À̸§ÀÌ·Î µÈ ű×ÀÇ value °ªÀ» Stirng Çü½ÄÀ¸·Î ¹Þ½À´Ï´Ù.

    //ÀÌ·¸°Ô ¼­¹ö´Â »ç¿ëÀÚ¿Í ´ëÈ­¸¦ ÇÕ´Ï´Ù.

if(id == null || id.trim().length() == 0){

res.sendRedirect("/chat.html");

return;

}//¸¸¾à idÀÇ ¼Ó¼º°ªÀÌ ¾ø´Ù¸é chat.html·Î ´Ù½Ã µ¹¾Æ°©´Ï´Ù. id´Â ²À ÇÊ¿äÇÑ °ÍÀ̴ϱñ¿ä.

out.println("<html>");

out.println("<frameset rows='85%, 15%'>");

out.println("<frame src='ChatServlet?id="+id+"'&frirst=true' name ='main'>");

    //frame À» ´ÙÀ½°ú °°ÀÌ È£ÃâÇÒ ¼ö µµ ÀÖ´Ù. º¸½Ã¸é ¾Ë°ÚÁö¸¸, id¼Ó¼º°ú first¼Ó¼ºÀ» get ÇüÅ                  ·Î ³Ñ°ÜÁØ°ÍÀÔ´Ï´Ù.

out.println("<frame src='reChatInput?id="+id+"'>");

    //À§ frame¿¡µµ id °ªÀ» ¼Ó¼ºÀ¸·Î ³Ñ°ÜÁÝ´Ï´Ù.

out.println("</frameset>");

out.println("</html>");

}

}


ChatLogin.java´Â ·Î±×ÀÎÀ» È®ÀÎÇÏ°í ÆäÀÌÁöÀÇ Æ²À» ¸¸µé¾îÁÖ´Â ºÎºÐÀ̶ó°í º¸½Ã¸é µË´Ï´Ù.


id¸¦ È®ÀÎ ÇÏ´Â ºÎºÐÀÌ ÀÖÁö¿ä ±×·¡¼­ ChatLoginÀÎ°Í °°¾Æ¿ä ¤»¤»¤»¤»¤»




3. ChatServlet.java º¸±â


ChatServlet.java


import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;


/**

 * Servlet implementation class ChatLogin

 */

public class ChatServlet extends HttpServlet {

String message[];

  //»ç¿ëÀÚµéÀÌ ÀÔ·ÂÇÑ ¸Þ½ÃÁö¸¦ ÀúÀåÇÏ´Â ºÎºÐÀÔ´Ï´Ù.

int index = 0 , size = 10;

public void init(){

message = new String[size];

    //message µ¥ÀÌÅ͸¦ size°ªÀ» ÀÌ¿ëÇØ memory¸¦ ÇÒ´çÇØ ÁÝ´Ï´Ù. ÀÌ¿¡ ÀÇÇؼ­ ¸Þ½ÃÁö´Â 10

    //°³ ±îÁö¹Û¿¡ ÀúÀåÀÌ µÇÁö ¾Ê´Â´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.


for(int i=0; i<size; i++)

{

message[i] = "";

//¸Þ¸ð¸®¸¸ ÇÒ´çÇØ ÁÖ¾úÀ¸´Ï,,, ¾²·¹±â °ªÀÌ µé¾îÀÖ°ÚÁÒ?? ºóÄ­À¸·Î ÃʱâÈ­ ÇØÁÝ´Ï´Ù.

}

}

public void doPost(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException{

req.setCharacterEncoding("KSC5601");

String id = req.getParameter("id");

String msg = req.getParameter("msg");

//À§ÀÇ µÎÁÙÀÇ ÄÚµå´Â ¿Ö ÀÖ´Â °ÍÀϱî¿ä? ¹Ù·Î id¿Í »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¸Þ½ÃÁö¸¦ °è¼Ó 

//¹Þ¾Æ¿À´Â °ÍÀÔ´Ï´Ù. ÆäÀÌÁö°¡ °è¼Ó ·ÎµùµÇ±â ¶§¹®¿¡ id¸¦ °è¼Ó ³Ñ°Ü ÁÖ¾î¾ß ÇÏ´Â ////°ÍÀÌÁö¿ä. ³Ñ°ÜÁÖÁö ¾ÊÀ¸¸é id¸¦ ÆäÀÌÁö°¡ ±î¸Ô°Ô µË´Ï´Ù. º°´Ù¸¥ µ¥ÀÌÅÍ         //º£À̽º³ª ÆÄÀÏÀÌ ¾ø±â ¶§¹®ÀÌÁö¿ä.


if(msg!=null && msg.trim().length() != 0){

synchronized(message){

message[index] = id + " : " + msg;

//¸Þ½ÃÁö´Â 'id : ÀÔ·ÂÇÑ ¸Þ½ÃÁö ³»¿ë'À¸·Î ÀúÀåÀÌ µÇ°Ô ¼³Á¤ Çß½À´Ï´Ù.

index = (index+1) % size;

//index°¡ message¹è¿­ÀÇ indexÀÎ °ÍÀº ¾Æ½Ã°ÚÁÒ?

//Áö¼ÓÀûÀ¸·Î 1¾¿ Ãß°¡µÇ´Â indexµµ 10À» ³ÑÀ¸¸é ¾ÈµÇ±â ¶§¹®¿¡ size·Î

//³ª´« ³ª¸ÓÁö¸¸ »ç¿ëÀ»ÇÕ´Ï´Ù!! ±×·³ 0~9±îÁö ¼ø¼­´ë·Î ³ª¿À°ÚÁÒ?


}//¿©±â¼­ ³ª¿À´Â synchronized ¼Ó¼ºÀ» ÅëÇؼ­ message ¹è¿­À» Çѹø¿¡ ÇѸí

   //¸¸ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï lockÀ» °É¾î ³õ½À´Ï´Ù. synchronized¿¡ ´ëÇÑ ´õ ¸¹Àº

  // Á¤º¸¸¦ ¾Ë °í ½ÍÀ¸½Å ºÐÀº Á¦ ºí·Î±×¿¡¼­ synchronized Å°¿öµå·Î °Ë»öÀ» ÇØ

  //º¸¼¼¿ä. ³ª¿Í¿ä

}

doGet(req, res);

//doGet ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. ¿Ö ÀÌ·¸°Ô ÄÚµùÀÌ µÇ¾îÀÖ´ÂÁö´Â ÄÚµåÀÇ ¹Û¿¡¼­

//¼³¸íÀ» µå¸®°Ú½À´Ï´Ù.

}

public void doGet(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException{

res.setContentType("text/html;charset=KSC5601");

String first = req.getParameter("first");

   //¾î´À »ç¿ëÀÚ°¡ Á¢¼ÓÀ» Çß´ÂÁö ¾Ë·ÁÁÖ±â À§Çؼ­ »ç¿ëÇÕ´Ï´Ù. ¹ØÀÇ if¹®À» º¸½Ã¸é µé¾î¿Ô

  //´Ù°í Ç¥½ÃÇØÁÖ´Â ºÎºÐÀÌ º¸À̽ÃÁÒ? 


if(first != null){

String id = req.getParameter("id");

synchronized(message){

message[index] ="<p align = center>" + id +" ´ÔÀÌ µé¾î¿Ô¾¹´Ï´Ù.</p>";

index=(index+1) % size;

}

}

PrintWriter out = res.getWriter();

out.println("<html><head>");

out.println("<meta http-equiv='pragma' content='no-cache'>");

out.println("<meta http-equiv='cache-control' content='no-cache'>");

out.println("<meta http-equiv='refresh' ");

out.println("content = '2; url=ChatServlet'>");

out.println("<title>äÆÃ</title></head>");

out.println("<body><center<h2>äÆÃ</h2></center><hr>");

int i = index;

while(true){

out.println(message[i]);

out.println("<br>");

i = ++i %size;

if(i == index - 1)

break;

//while¹®ÀÌ µ¹´Ù°¡ ÀԷµǾîÀÖ´Â index±îÁö Ãâ·ÂÀÌ µÇ¸é while¹®À» ¸ØÃä´Ï´Ù.

if(index == 0 && i == size - 1)

break;

//¾Æ¹« ±Ûµµ ÀԷµǾîÀÖÁö ¾Ê°Å³ª, 9Ä­±îÁö Ãâ·ÂÀ» ´Ù ÇÏ¿´À¸¸é while¹®À» ¸ØÃä´Ï´Ù.

}

out.print(message[i]);

out.println("<br>");

out.println("</body></html>");

}

}



ÀÚ, ÀÌÁ¦ ¿Ö doPost¿¡¼­ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ°í, ±× µÚ¿¡ doGet ¸Þ¼Òµå¸¦ ¿äûÇÏ´ÂÁö ¼³¸íÀ» µå¸®°Ú½À´Ï´Ù.

½¬¾î¿ä. ¤»¤» ÇÁ·¹ÀÓ¿¡¼­ ÆäÀÌÁö¸¦ ¿äûÇÒ ¶§´Â get¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿´°í, äÆÃÀ» ÀÔ·ÂÇÏ´Â ºÎºÐÀº post·Î ³Ñ°ÜºÃ±â ¶§¹®ÀÌÁö¿ä. Áï, doGet ¸Þ¼Òµå´Â ÆäÀÌÁö°¡ Ç×»ó °øÅëÀ¸·Î ó¸®ÇؾßÇÒ ºÎºÐÀ» ³ªÅ¸³»´Â °ÍÀÔ´Ï´Ù.

¸¸¾à, doPostºÎºÐÀÌ doGet¸Þ¼Òµå ¾È¿¡ ÀÖ´Ù¸é,,, äÆà ³»¿ëÀ» ÀÔ·ÂÇßÀ»¶§¿¡¸¸ ó¸®ÇØ¾ß ÇÏ´Â ºÎºÐÀ» ¸Ç óÀ½ frameÀ» ÅëÇØ Á¢¼ÓÇßÀ» ¶§µµ 󸮸¦ ÇÏ°ÚÁö¿ä?

±×°ÍÀ» ¸·±â À§Çؼ­ ÀÌ·±½ÄÀ¸·Î ÄÚµùÀ» ÇÑ °ÍÀÔ´Ï´Ù.

µÎ°¡ÁöÀÇ µ¥ÀÌÅÍ Àü´Þ¹æ¹ýÀ» ÀûÀýÇÏ°Ô »ç¿ëÇÑ ¿¹¶ó°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù.


doPost ºÎºÐÀº ¸»¾¸µå¸°´ë·Î äÆà ³»¿ëÀ» ÀÔ·ÂÇßÀ»¶§ ³Ñ°Ü¹Þ´Â ¸Þ¼Òµå·Î ³»¿ëÀ» ÀÔ·ÂÇßÀ» ¶§, ó¸®ÇؾßÇÒ ºÎºÐÀÌ µé¾î°¡ ÀÖ½À´Ï´Ù.


4. ChatInput.java º¸±â


ChatInput.java


import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;


/**

 * Servlet implementation class ChatLogin

 */

public class reChatInput extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException{

DO(req, res);

//get ¸Þ¼Òµå·Î ÆäÀÌÁö¸¦ È£ÃâÇßÀ»¶§ DO ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï

//´Ù.

}

public void doPost(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException{

DO(req, res);

//post ¸Þ¼Òµå·Î ÆäÀÌÁö¸¦ È£ÃâÇßÀ»¶§ DO ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï

//´Ù.

}

public void DO(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException{

res.setContentType("text/html;charset=KSC5601");

PrintWriter out = res.getWriter();

req.setCharacterEncoding("KSC5601");

String id = req.getParameter("id");

if(id == null || id.trim().length() == 0){

res.sendRedirect("/chat.html");

return;

}//ChatLogin°ú ¸¶Âù°¡Áö·Î id°¡ Á¦´ë·Î ³Ñ¾î¿Ô´ÂÁö È®ÀÎÀ» ÇÕ´Ï´Ù.

   //¾È ¿Ô´Ù¸é ´Ù½Ã chat.htmlÆäÀÌÁö·Î µ¹¾Æ°¡Áö¿ä.

out.println("<html><head>"                        );

out.println("<script language = 'JavaScript'>    ");


//ÀÚ¹Ù½ºÅ©¸³Æ® ºÎºÐ ½ÃÀÛ

out.println("function send(form) {               ");

out.println(" form.msg.value = form.temp.value;");

//msgÀÇ value°ª¿¡ tempÀÇ value°ªÀ» ³Ö¾î ÁÝ´Ï´Ù.

//¿Ö³ÄÇϸé Àü´ÞÇÒ¶§ value°ªÀ» ºóÄ­À¸·Î ÇؾßÁö¸¸,,, ´ÙÀ½ ÅؽºÆ®¸¦

//ÀÔ·ÂÇÒ¶§ ´Ù½Ã Áö¿ì°í ¾²´Â ºÒÆíÀ» ¾ø¾Ù¼ö Àְŵç¿ä.

//target¼Ó¼ºÀ¸·Î ÇöÀç ÆäÀÌÁö´Â ±×³É À¯Áö µÈ´Ù´Â °ÍÀ» ¾Æ¼Å¾ßÇØ¿ä!!

//¸¸¾à ±×³É ¹Ù·Î temp°¡ ¾Æ´Ñ msg¿¡ ÀÔ·ÂÀ» ¹Þ°í resetÀ» Çعö¸®¸é

//ÀÔ·ÂÇÑ ³»¿ë ÀÚü°¡ Áõ¹ßÀ» Çعö¸³´Ï´Ù.

//±×·¡¼­ ÀÌ·¸°Ô ¹ø°Å·Ó°Ô ÇÁ·Î±×·¡¹Ö ÇÏ´Â °ÍÀÌÁö¿ä.


out.println(" form.temp.value = '';            ");

//ÀÌ°Ô resetÀ» ÇÑ °ÍÀÔ´Ï´Ù.


out.println(" form.temp.focus();               ");

  //focus¶ó´Â °ÍÀº ´ëÃæ °¨ÀÌ ¿À½ÃÁÒ? Ä¿¼­°¡ tempÀ§¿¡ ±ôºýÀÌ°Ô ÇØÁÝ´Ï´Ù.


out.println(" return true;                     ");

//return true¸¦ ÀÌ¿ëÇؼ­ µ¥ÀÌÅ͸¦ ³Ñ°ÜÁÝ´Ï´Ù. onsubmit return true¿¡

//´ëÇؼ­´Â °Ë»öÀ» Çغ¸¼¼¿ä. ³ª¸§ Áß¿äÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® ÄÚµù ±â¹ý?

//ÀÔ´Ï´Ù.


out.println("}                                   ");

//ÀÚ¹Ù½ºÅ©¸³Æ® ºÎºÐ ³¡


out.println("</script>                           ");

out.println("<title>äÆà ·Î±×ÀÎ</title></head>       ");

out.println("<body>                              ");

out.println("<form method = post action =ChatServlet               ");

//¾Õ¿¡¼­ ¸»¾¸µå¸°´ë·Î äÆà ³»¿ëÀº method¸¦ post·Î Àü´ÞÇÕ´Ï´Ù.

//ÆäÀÌÁö°¡ óÀ½À¸·Î ·ÎµùÇßÀ»¶§¿Í ¾Æ´Ò¶§¸¦ ±¸ºÐÇϱâ À§Çؼ­Áö¿ä,


out.println("onSubmit='return send(this)' target='main'>            ");

//¿£Å͸¦ ´­·¶À»¶§ send ÇÔ¼ö¸¦ ½ÇÇàÇÕ´Ï´Ù. targetÀº mainÀε¥ frame¿¡ 

//¼³Á¤ÇÑ name ¼Ó¼º°ªÀ¸·Î ChatServlet.java ºÎºÐÀÌÁö¿ä.


out.println("¸Þ½ÃÁö : <input type = text size = 50 name= temp>         ");

out.println("<input type = hidden name = msg>                       ");

out.println("<input type = hidden name = id value='"+id+"'>         ");

//³Ñ°ÜÁÙ ºÎºÐÀÔ´Ï´Ù. ¸Þ½ÃÁö¿Í ¾ÆÀ̵𰡠µÇ°Ú³×¿ä. temp¿Í msgÀÇ °ü°è

//´Â ÀÚ¹Ù½ºÅ©¸³Æ® ºÎºÐ¿¡¼­ ¼³¸íÀ» ÇÏ°Ú½À´Ï´Ù.

out.println("</form>                             ");

out.println("</body></html>                      ");

}

}





Ãâó: http://webclass.tistory.com/entry/¼­ºí¸´-ÇÁ·Î±×·¡¹Ö-5-Ŭ¶óÀ̾ðÆ®-´ç±â±â-¼­ºí¸´-frameÀ»-ÀÌ¿ëÇÑ-äÆÃ-ÇÁ·Î±×·¥-1 [Welcome PHP World!!!!]