* ȸ¿ø°¡ÀÔ * ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£ ã±â   ID PW
Last Modified : 2008.11.20

¼­ºí¸´ ¹®¹ý

JSP´Â ¼­ºí¸´ ±â¹Ý ±â¼úÀÔ´Ï´Ù.
±×·¯¹Ç·Î ¼­ºí¸´¿¡ ´ëÇÑ ±âº»ÀûÀÎ ÀÌÇØ¸¦ ÇÑ ´ÙÀ½ JSP¸¦ ÀÌÇØÇÏ´Â °ÍÀÌ ³´´Ù°í »ý°¢ÇÕ´Ï´Ù.
JSP´Â ÅèŰú °°Àº ¼­ºí¸´ ¿£Áø(¶Ç´Â ÄÁÅ×À̳Ê)¿¡ ÀÇÇØ °á±¹ ¼­ºí¸´À¸·Î º¯È¯ ÈÄ¿¡ ¼­ºñ½ºµË´Ï´Ù.
¼­ºí¸´Àº CGI ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ÀÚ¹ÙÃø ±â¼ú·Î µîÀåÇß°í, JSP´Â ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® Áø¿µÀÇ ASP°¡ Àα⸦ ²øÀÚ ASP¿¡ ´ëÀÀÇϱâ À§ÇÑ ÀÚ¹ÙÃø ±â¼ú·Î ³ªÅ¸³³´Ï´Ù.

¼­ºí¸´Àº javax.servlet °ú javax.servlet.http µÎ°³ÀÇ ÆÑŰÁö·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù.
javax.servlet ÆÑŰÁö´Â ¸ðµç ¼­ºí¸´ÀÌ »ó¼ÓÇϰųª ±¸ÇöÇÏ´Â ÀϹÝÀûÀÎ ÀÎÅÍÆäÀ̽º¿Í Ŭ·¡½º·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
javax.servlet.http ÆÑŰÁö´Â HTTP ÇÁ·ÎÅäÄÝ¿¡ ¸ÂÃá ¼­ºí¸´ Ŭ·¡½º·Î ±¸¼ºµË´Ï´Ù.
javax.servlet.Servlet ÀÎÅÍÆäÀ̽º´Â ¼­ºí¸´ ¾ÆÅ°ÅØÃ³ÀÇ ÇÙ½ÉÀÌ¸ç ¸ðµç ¼­ºí¸´ÀÇ ±âÃʰ¡ µË´Ï´Ù.
Servlet ÀÎÅÍÆäÀ̽º¿¡´Â 5°³ÀÇ ¸Þ¼Òµå°¡ Àִµ¥ ±× Áß °¡Àå Áß¿äÇÑ 3°³ÀÇ ¸Þ¼Òµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.

  • init() : ¼­ºí¸´À» ÃʱâÈ­
  • service() : Ŭ¶óÀÌ¾ðÆ® ¿äû¿¡ ´ëÇÑ ¼­ºñ½º
  • destory() : ÀÚ¿ø¹Ý³³

ÀÌµé ¸Þ¼Òµå´Â ¼­ºí¸´ ¶óÀÌÇÁ»çÀÌŬ(»ý¸íÁÖ±â) ¸Þ¼ÒµåÀÔ´Ï´Ù.
¸ðµç ¼­ºí¸´Àº »ó¼ÓÀ» ÅëÇØ¼­µç ¾Æ´Ï¸é Á÷Á¢ÀûÀÎ ±¸ÇöÀ» ÅëÇØ¼­µç ¹Ýµå½Ã Servlet ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.

1. ¼­ºí¸´ÀÇ ±âº» °ñ°ÝÀÎ ÀÎÅÍÆäÀ̽º¿Í Ŭ·¡½º

¾Æ·¡ ±×¸²Àº ¼­ºí¸´ÀÇ ±âº» °ñ°ÝÀÌ µÇ´Â ÀÎÅÍÆäÀ̽º¿Í Ŭ·¡½º¸¦ º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.
À̾îÁö´Â ¼³¸íÀ» ½±°Ô ÀÌÇØÇϱâ À§Çؼ­´Â ¾Æ·¡ Ŭ·¡½º ´ÙÀ̾î±×·¥À» ±â¾ïÇØ¾ß ÇÕ´Ï´Ù.
(GenericServlet, HttpServletÀÇ ¸ðµç ¼Ó¼º°ú ¸Þ¼Òµå°¡ ±×¸²¿¡ Ç¥½ÃµÈ °ÍÀº ¾Æ´Õ´Ï´Ù.)
Servlets Framework

(1) Setvlet ÀÎÅÍÆäÀ̽º

¸ðµç ¼­ºí¸´Àº Servlet ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.
¼­ºí¸´ÀÇ ¶óÀÌÇÁ»çÀÌŬ ¸Þ¼Òµå¸¦ ¼±¾ðÇϰí ÀÖ´Â ÀÎÅÍÆäÀ̽º°¡ javax.servlet.Servlet ÀÎÅÍÆäÀ̽º ÀÔ´Ï´Ù.
¶óÀÌÇÁ »çÀÌŬ ¸Þ¼Òµå´Â init, service, destory ¸Þ¼ÒµåÀÔ´Ï´Ù.

init

init() ¸Þ¼Òµå´Â ¼­ºí¸´ÀÌ ±× ÀÏ»ýÀ» ½ÃÀÛÇÏ°Ô ÇÏ´Â ¸Þ¼ÒµåÀÔ´Ï´Ù.
init() ¸Þ¼Òµå´Â ¼­ºí¸´ÀÌ ÀνºÅϽº°¡ µÈ ÈÄ ¼­ºí¸´ ÄÁÅ×À̳ʿ¡ ÀÇÇØ È£ÃâµÇ´Âµ¥ Çѹø¸¸ È£ÃâµË´Ï´Ù.
¼­ºí¸´Àº ¾î¶² ¿äûÀ» ¹Þ±â Àü¿¡ ¹Ýµå½Ã ¹Ýµå½Ã init ¸Þ¼Òµå°¡ ¼º°øÀûÀ¸·Î ¼öÇàµÇ¾î¾ß¸¸ ÇÕ´Ï´Ù.
init() ¸Þ¼Òµå°¡ ¼º°øÀûÀ¸·Î ¼öÇàµÇ¸é ºñ·Î¼Ò ¼­ºí¸´Àº ¼­ºñ½º »óŰ¡ µË´Ï´Ù.

init ( config : ServletConfig )

void init(ServletConfig config) throws ServletException;

init() ¸Þ¼Òµå´Â ÆÄ¶ó¹ÌÅÍ·Î ServletConfig °´Ã¼¸¦ Àü´Þ¹Þ½À´Ï´Ù.
ServletConfig °´Ã¼´Â ¼­ºí¸´ÀÇ ¼³Á¤°ú ÃʱâÈ­ ÆÄ¶ó¹ÌÅÍ Á¤º¸¸¦ ´ã°í ÀÖ½À´Ï´Ù.
init() ¸Þ¼Òµå´Â ServletException À» ´øÁú ¼ö ÀÖµµ·Ï ¼±¾ðµÇ¾î ÀÖ½À´Ï´Ù.

service

service() ¸Þ¼Òµå´Â Ŭ¶óÀÌ¾ðÆ®°¡ ¼­ºí¸´À» ¿äûÇÏ¸é ¼­ºí¸´ ÄÁÅ×À̳ʿ¡ ÀÇÇØ È£ÃâµÇ´Â ¸Þ¼ÒµåÀÔ´Ï´Ù.

service ( req : ServletRequest, res : ServletResponse )

void service( ServletRequest req, ServletResponse res) throws ServletException,IOException;

service() ¸Þ¼Òµå´Â ServletRequest ¿Í ServletResponse 2°³ÀÇ ÆÄ¶ó¹ÌÅ͸¦ °¡Áý´Ï´Ù.
ServletRequest ´Â Ŭ¶óÀÌ¾ðÆ® ¿äû Á¤º¸¸¦ ´ã°í ÀÖ½À´Ï´Ù.
ServletResponse ´Â ¿äû¿¡ ´ëÇÑ ÀÀ´äÀ» Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Çϱâ À§ÇØ »ç¿ëÇÕ´Ï´Ù.
service() ¸Þ¼Òµå´Â Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» ¼­ºí¸´ÀÌ ÀÀ´äÇϵµ·Ï ¼­ºí¸´ ÄÁÅ×À̳ʿ¡ ÀÇÇØ È£ÃâµË´Ï´Ù.
¼­ºí¸´Àº ¸ÖƼ½º·¹µå ÇÁ·Î±×·¥ÀÎ ¼­ºí¸´ ÄÁÅ×ÀÌ³Ê ¼Ó¿¡¼­ µ¿ÀÛÇϱ⠶§¹®¿¡ ¼ö¸¹Àº Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû¿¡ ´ëÇØ ÁöüÇÏÁö ¾Ê°í ÀÀ´äÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
±×·¯¹Ç·Î ¼­ºí¸´¿¡¼­ °øÀ¯µÇ´Â ÀÚ¿ø(ÆÄÀÏÀ̳ª ³×Æ®¿öÅ© Ä¿³Ø¼Ç, Ŭ·¡½º º¯¼ö, ÀνºÅϽº º¯¼ö)À̶ó¸é ¸ðµÎ µ¿±âÈ­µÇ¾î¾ß ÇÕ´Ï´Ù.
¼­ºí¸´ ÇÁ·Î±×·¡¹Ö¿¡¼­ Ŭ·¡½º º¯¼ö³ª ÀνºÅϽº º¯¼ö´Â º¸Åë ¸¸µéÁö ¾Ê½À´Ï´Ù.

destory

¼­ºí¸´ ¶óÀÌÇÁÀÇ ³¡À» ÀǹÌÇÕ´Ï´Ù.
À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ shutdown µÉ¶§, ¼­ºí¸´ÀÇ destory() ¸Þ¼Òµå°¡ È£ÃâµË´Ï´Ù.

destory ()

void destroy();

(2) GenericServlet Ãß»óŬ·¡½º

GenericServlet´Â Servlet¸¦ ±¸ÇöÇÑ Å¬·¡½ºÀÔ´Ï´Ù.
GenericServlet ÀÇ service() ¸Þ¼Òµå´Â Ãß»ó ¸Þ¼ÒµåÀ̱⠶§¹®¿¡ GenericServlet ¸¦ »ó¼ÓÇÏ´Â ÀÚ½Ä Å¬·¡½º¿¡¼­´Â ÀÌ service() ¸Þ¼Òµå¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.

<<abstract>> + service ( req : ServletRequest, res : ServletResponse )

public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;

(3) HttpServlet Ŭ·¡½º

HttpServlet Ŭ·¡½º´Â GenericServlet Ãß»ó Ŭ·¡½º¸¦ »ó¼ÓÇÕ´Ï´Ù.
HttpServlet Ŭ·¡½º´Â GenericServlet ÀÇ service() Ãß»ó ¸Þ¼Òµå¸¦ ±¸ÇöÇϰí ÀÖ½À´Ï´Ù.
µû¶ó¼­ HttpServlet Ŭ·¡½º¸¦ »ó¼ÓÇϴ Ŭ·¡½º´Â service() ¸Þ¼Òµå¸¦ ÀϹÝÀûÀ¸·Î ±¸ÇöÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â GenericServlet ÀÇ service () Ãß»ó ¸Þ¼Òµå¸¦ ±¸ÇöÇÑ ¸Þ¼ÒµåÀÔ´Ï´Ù.

+ service ( req : ServletRequest, res : ServletResponse )

public void service(ServletRequest req, ServletResponse res) throws ServletException,IOException {.. }

¸Þ¼ÒµåÀÇ ±¸Çö ³»¿ëÀº ´ÜÁö Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» protected service() ¸Þ¼Òµå¿¡ Àü´ÞÇÏ´Â °ÍÀÔ´Ï´Ù.
¾Æ·¡´Â proctected service () ¸Þ¼ÒµåÀÔ´Ï´Ù.

# service ( req : HttpServletRequest, res : HttpServletResponse )

protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException {.. }

HttpServlet ÀÇ + service() ´Â ´ÜÁö # service() ¸Þ¼Òµå¿¡°Ô Á¦¾î±ÇÀ» ³Ñ±â´Â ¿ªÇÒ¸¸ ÇÕ´Ï´Ù.
HttpServlet Ŭ·¡½ºÀÇ # service() ¸Þ¼Òµå°¡ È£ÃâµÇ¸é ÀÌ ¸Þ¼Òµå´Â request ¾È¿¡¼­ HTTP METHOD ŸÀÔ°ª(POST, GET)À» Àо°í ÀÌ °ª¿¡ µû¶ó¼­ doGet(), doPost() ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.
ÀÌ doGet(), doPost() °¡ ¿ì¸®°¡ ¿À¹ö¶óÀ̵ù ÇØ¾ß ÇÏ´Â ¸Þ¼ÒµåÀÔ´Ï´Ù.
HTTP METHOD ŸÀÔÀÌ GET À̸é doGet()¸¦, HTTP METHOD ŸÀÔÀÌ POST À̸é doPost()¸¦ ¿À¹ö¶óÀ̵ù ÇØ¾ß ÇÕ´Ï´Ù.
HttpServlet Ŭ·¡½ºÀÇ # service () ¸Þ¼Òµå¿¡ Àü´ÞµÇ´Â ÆÄ¶ó¹ÌÅÍ, HttpServletRequest ¿Í HttpServletResponse ´Â GenericServlet Ŭ·¡½º¿¡ Àü´ÞµÇ´Â ÆÄ¶ó¹ÌÅÍ¿´´ø ServletRequest, ServletResponse °¢°¢À» »ó¼ÓÇÑ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù.
HttpServletRequest ¿Í HttpServletResponse ¸¦ ±¸ÇöÇÑ Å¬·¡½º´Â ¼­ºí¸´ ÄÁÅ×À̳ʰ¡ »ý¼ºÇÏ¿© ¼­ºí¸´ÀÇ + service () ¸Þ¼Òµå¿¡ ¾Æ±Ô¸ÕÆ®·Î Àü´ÞµË´Ï´Ù.
ÀÌ·¸µí HttpServletRequest, HttpServletResponse ¸¦ ±¸ÇöÇÑ Å¬·¡½º´Â ¼­ºí¸´ ÄÁÅ×À̳ʸ¦ Á¦ÀÛÇÏ´Â º¥´õÀÇ ¸òÀÔ´Ï´Ù.

2. °£´ÜÇÑ ¼­ºí¸´ ¿¹Á¦¿Í ¼³¸í

Áö±Ý±îÁö ¼­ºí¸´ÀÌ ¹«¾ùÀÌ°í ¾î¶»°Ô ÀÛµ¿Çϴ¿¡ °üÇÑ ³»¿ëÀ̾ú½À´Ï´Ù.
ÀÌÁ¦ °£´ÜÇÑ ¼­ºí¸´ ¿¹Á¦¸¦ ¸¸µé¾î º¸°Ú½À´Ï´Ù.

SimpleServlet.java

package example;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class SimpleServlet extends HttpServlet {
  public void doGet( HttpServletRequest req, HttpServletResponse res ) 
    throws ServletException, IOException {
    doPost(req,res);
  }

  public void doPost( HttpServletRequest req, HttpServletResponse res ) 
    throws ServletException, IOException {
    res.setContentType( "text/html;charset=euc-kr" );
    PrintWriter out = res.getWriter();
    
    out.println("<html>");
    out.println("<body>");
    
    //¿äûÇÑ Å¬¶óÀ̾ðÆ®ÀÇ IP¸¦ Ãâ·ÂÇÕ´Ï´Ù.
    out.println("´ç½ÅÀÇ IP ´Â " + req.getRemoteAddr() + "ÀÔ´Ï´Ù.\n");
    out.println("</body></html>");
    out.close();
  }
}

SimpleServlet °¡ init() °ú destory() ¸Þ¼Òµå¸¦ ±¸ÇöÇϰí ÀÖÁö ¾Ê½À´Ï´Ù.
ÀÌ ¸Þ¼ÒµåµéÀº GenericServlet ÀÌ ±¸ÇöÇϰí Àֱ⿡ ±¸ÇöÇÏÁö ¾Ê¾Æµµ µÇ´Â °ÍÀÔ´Ï´Ù.

(1) SimpleServletÀ» ÄÄÆÄÀÏ, ½ÇÇà

(a) ROOT À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ WEB-INF/web.xml ÆÄÀÏÀ» ¿­°í web-app ¿¤¸®¸ÕÆ®ÀÇ ÀÚ½Ä ¿¤¸®¸ÕÆ®·Î ¾Æ·¡¸¦ Ãß°¡ÇÕ´Ï´Ù.

web.xml

.. Áß°£ »ý·« ..

    <servlet>
      <servlet-name>SimpleServlet</servlet-name>
      <servlet-class>example.SimpleServlet</servlet-class>
    </servlet>

    <servlet-mapping>
      <servlet-name>SimpleServlet</servlet-name>
      <url-pattern>/servlet/SimpleServlet</url-pattern>
    </servlet-mapping>

.. Áß°£ »ý·« ..

(b) SimpleServlet.java ¸¦ ¼Ò½º°¡ ÀÖ´Â Æú´õ¿¡¼­ ¾Æ·¡¿Í °°ÀÌ ÄÄÆÄÀÏÇÕ´Ï´Ù.
javac -d C:/www/myproject/WEB-INF/classes -classpath C:/apps/tomcat/common/lib/servlet-api.jar SimpleServlet.java

package javax.servlet.http does not exist

SimpleServlet.java ¸¦ ÄÄÆÄÀÏÇÒ ¶§ À§¿Í °°Àº ÄÄÆÄÀÏ ¿¡·¯°¡ ³ª¿Â´Ù´Â °ÍÀº ÀÚ¹Ù ÄÄÆÄÀÏ·¯°¡ javax.servlet.http ÆÑŰÁö¸¦ ãÁö ¸øÇÑ´Ù´Â Àǹ̷Î, classpath ¿É¼ÇÀÇ °ªÀ¸·Î servlet-api.jar ÆÄÀÏÀÇ Ç®ÆÐ½º¸¦ À߸ø Àû¾ú±â ¶§¹®ÀÔ´Ï´Ù.
¸¸¾à C:/apps/tomcat ¿Í ´Þ¸® Áß°£¿¡ °ø¹éÀÌ ÀÖ´Â µð·º·Î¸®(¿¹¸¦ µé¸é, C:/apps/Tomcat 5.5 )¿¡ Tomcat À» ¼³Ä¡Çß´Ù¸é classpath ¿É¼Ç¿¡ °ªÀ» ÁÙ ¶§ "" À¸·Î ¹­¾îÁÖ¸é µË´Ï´Ù.
´Ù¸¥ ¹æ¹ýÀ¸·Î´Â CLASSPATH ¶õ ȯ°æº¯¼ö¿¡ TOMCAT_HOME/common/lib/servlet-api.jar ¸¦ Ãß°¡ÇØÁÖ¸é ¾Æ·¡¿Í °°ÀÌ classpath ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾Ê°íµµ ÄÄÆÄÀÏÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
javac -d C:/www/myproject/WEB-INF/classes SimpleServlet.java

(c) C:/apps/Apache2/conf/httpd.conf ÆÄÀÏÀ» ¿­°í
JkMount /*.jsp tomcat1 ´ÙÀ½¿¡ JkMount /servlet/* tomcat1 ¸¦ Ãß°¡ÇÕ´Ï´Ù.

httpd.conf

.. Áß°£ »ý·« ..

JkMount /*.jsp tomcat1
JkMount /servlet/* tomcat1

.. Áß°£ »ý·« ..

(d) ¾ÆÆÄÄ¡, Tomcat À» Àç½ÃÀÛÇÑ ÈÄ http://localhost/servlet/SimpleServlet ·Î ¹æ¹®ÇÕ´Ï´Ù.

(2) SimpleServlet ÄÚµå ¼³¸í

SimpleServlet ¿¡¼­ doGet()°ú doPost() ÀÌ µÎ ¸Þ¼Òµå´Â HttpServlet ÀÇ doGet(), doPost() ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å ÇÑ ¸Þ¼ÒµåÀÔ´Ï´Ù.
¸ðµç ºñÁî´Ï½º ·ÎÁ÷ÀÌ ÀÌ ¸Þ¼Òµå¿¡ Á¸ÀçÇÕ´Ï´Ù.
¿¹Á¦¿¡¼­ doGet() ¸Þ¼Òµå´Â ´Ü¼øÈ÷ doPost() ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.

¾Æ·¡ ÄÚµå´Â ÀÀ´ä(HttpServletResponse)ÀÇ ÄÁÅÙÃ÷ŸÀÔÀ» ¼ÂÆÃÇÏ´Â ÀÛ¾÷À» ÇÕ´Ï´Ù.
ÀÌ ÄÚµå´Â ¼­ºí¸´¿¡¼­ ´Ü Çѹø¸¸ »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù.
¶ÇÇÑ OutputStream À¸·Î¼­ PrintWriter ¸¦ ÄÚµùÇϱ⿡ ¾Õ¼­ À§ ÄÚµù ÀÛ¾÷ÀÌ ÀÌ·ç¾îÁ® ÀÖ¾î¾ß ÇÕ´Ï´Ù.
PrintWriter ÀÇ È¹µæÀº HttpServletResponse ÀÇ getWriter() À» È£ÃâÇÔÀ¸·Î½á ÀÌ·ç¾îÁý´Ï´Ù.

res.setContentType( "text/html;charset=euc-kr" );
PrintWriter out = res.getWriter();

PrintWrtier´Â Ŭ¶óÀÌ¾ðÆ®·ÎÀÇ ÀÀ´äÀ¸·Î º¸³»´Â ½ºÆ®¸²¿¡ ±ÛÀ» ¾µ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù.
±×·¯¸é Ŭ¶óÀ̾ðÆ®ÀÇ ºê¶ó¿ìÀú¿¡¼­ ÀÌ ±ÛÀ» º¼ ¼ö ÀÖ°Ô µË´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ®¿¡ ÅØ½ºÆ®¸¦ º¸³¾ ¼ö ÀÖ´Â °´Ã¼¿¡ ´ëÇÑ ·¹ÆÛ·±½º(out)¸¦ ¾ò¾úÀ¸¹Ç·Î,
ÀÌ °´Ã¼¸¦ »ç¿ëÇÏ¿© Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
ÀÌ ¸Þ½ÃÁö´Â HTML¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.
ÀÌ´Â ¸Þ½ÃÁö°¡ Ŭ¶óÀ̾ðÆ®ÀÇ À¥ºê¶ó¿ìÀú¿¡ º¸ÀÌ°Ô Çϱâ À§ÇÔÀÔ´Ï´Ù.
´ÙÀ½ ¸î ¶óÀÎÀº À̰ÍÀÌ ¾î¶»°Ô ÇàÇØÁö´ÂÁö º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.

out.println( "<html>" );
out.println( "<body>" );
//¿äûÇÑ Å¬¶óÀ̾ðÆ®ÀÇ IP¸¦ Ãâ·ÂÇÕ´Ï´Ù.
out.println( "´ç½ÅÀÇ IP ´Â " + req.getRemoteAddr() + "ÀÔ´Ï´Ù.\n" );

À§¿¡¼­ º¸µíÀÌ SimpleServlet´Â Ŭ¶óÀÌ¾ðÆ®¿¡°Ô HTMLÀ» º¸³»±â À§ÇØ PrintWriterÀÇ println()¸Þ¼Òµå¸¦ »ç¿ëÇϰí ÀÖ½À´Ï´Ù.
req.getRemoteAddr() ºÎºÐÀº Ŭ¶óÀÌ¾ðÆ®¿¡¼­ º¸³»¿Â Á¤º¸¸¦ ÀÌ¿ëÇÕ´Ï´Ù.
Áï, HttpServletRequest ÀÇ getRemoteAddr() ¸Þ¼Òµå¸¦ È£ÃâÇÏ¿© Ŭ¶óÀ̾ðÆ®ÀÇ ÁÖ¼Ò¸¦ ¹Ýȯ¹Þ°í ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô, HttpServeltRequest ´Â Ŭ¶óÀÌ¾ðÆ®°¡ º¸³»°Å³ª, Ŭ¶óÀÌ¾ðÆ®¿¡ °üÇÑ Á¤º¸¸¦ ´ã°í ÀÖ½À´Ï´Ù.

´ÙÀ½Àº ±âº»ÀûÀ¸·Î ÇѹøÀº ÀÐ¾î ºÁ¾ß ÇÒ ¼­ºí¸´ Ŭ·¡½º¿Í ¸Þ¼Òµå¸¦ Á¤¸®ÇØ ³õÀº °ÍÀÔ´Ï´Ù.

3. ¼­ºí¸´ Ŭ·¡½º, ÀÎÅÍÆäÀ̽º ¿ä¾à

Servlet ÀÎÅÍÆäÀ̽º
init (config:ServletConfig)
service(req:ServletRequest, res:ServletResponse)
destroy()
getServletConfig() : ServletConfig
¼­ºí¸´ ÃʱâÈ­¿¡ °ü·ÃµÈ º¯¼ö¸¦ °¡Áö°í ÀÖ´Â ServletConfig °´Ã¼¸¦ ¸®ÅÏ
getServletInfo() : String
¼­ºí¸´¿¡ ´ëÇÑ °£´ÜÇÑ Á¤º¸¸¦ ¸®ÅÏ
ServletConfig ÀÎÅÍÆäÀ̽º
getInitParameter(name:String) : String
name¿¡ ÇØ´çÇÏ´Â ÃʱâÈ­ ÆÄ¶ó¹ÌÅÍ °ªÀ» ¸®ÅÏ
getInitParameterNames() : Enumeration
¼­ºí¸´ÀÇ ÃʱâÈ­ ÆÄ¶ó¹ÌÅÍ À̸§µéÀ» Enumeration ŸÀÔÀ¸·Î ¸®ÅÏ
getServletContext() : ServletContext
ServletContext ¸¦ ¸®ÅÏ
getServletName() : String
¼­ºí¸´ ÀνºÅϽºÀÇ À̸§ ¸®ÅÏ
+ GenericServlet Ãß»ó Ŭ·¡½º
ÇÁ·ÎÅäÄÝ¿¡ ¹«°üÇÑ ±âº»ÀûÀÎ ¼­ºñ½º ±â´ÉÀ» Á¦°øÇϴ Ŭ·¡½º·Î Servlet, ServletConfig ÀÎÅÍÆäÀ̽º¸¦ ±¸Çö
+ init()
¼­ºí¸´ ÃʱâÈ­ ¸Þ¼Òµå·Î, GenericServletÀÇ init(config:ServletConfig) ¸Þ¼ÒµåÀÇ ÀÇÇØ È£ÃâµÊ
<<abstract>> + service (req:ServletRequest, res:ServletResponse)
Servlet ÀÎÅÍÆäÀ̽ºÀÇ service() ¸Þ¼Òµå¸¦ Ãß»ó ¸Þ¼Òµå·Î ³²°ÜµÒ.
HttpServlet Ãß»ó Ŭ·¡½º
GenericServlet Ãß»ó Ŭ·¡½º »ó¼Ó
# doGet (req:HttpServletRequest, res:HttpServletResponse)
HTTPÀÇ GET ¿äûÀ» ó¸®Çϱâ À§ÇÑ ¸Þ¼Òµå
# doPost (req:HttpServletRequest, res:HttpServletResponse)
HTTPÀÇ POST ¿äûÀ» ó¸®Çϱâ À§ÇÑ ¸Þ¼Òµå
+ service (req:ServletRequest, res:ServletResponse)
GenericServlet Ãß»óŬ·¡½ºÀÇ Ãß»ó ¸Þ¼Òµå service() ±¸Çö, ¾Æ·¡ service() ¸Þ¼Òµå¿¡ È£Ãâ
# service (req:HttpServletRequest, res:HttpServletResponse)
Ŭ¶óÀÌ¾îÆ®ÀÇ ¿äû¿¡ µû¶ó doGet(), doPost() ¸Þ¼Òµå È£Ãâ
ServletContext ÀÎÅÍÆäÀ̽º
¼­ºí¸´ÀÌ ¼­ºí¸´/JSP ÄÁÅ×ÀÌ³Ê¿Í Åë½ÅÇϱâ À§Çؼ­ »ç¿ëÇÏ´Â ¸Þ¼Òµå Á¦°ø( ¿¹¸¦ µé¸é ÆÄÀÏÀÇ MIME ŸÀÔÀ» ¾ò°Å³ª RequestDispatcher¸¦ ¾ò°Å³ª ·Î±×ÆÄÀÏ¿¡ ±â·ÏÇϱ⠵îµî..) À¥ ¾ÖÇø®ÄÉÀ̼Ǹ¶´Ù ÇϳªÀÇ ServletContext °´Ã¼°¡ Á¸ÀçÇϰí ServletContext ´Â ServletConfigÀÇ getServletContext() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼­ ¾òÀ» ¼ö ÀÖÀ½.
À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÀüüÀÇ °øµ¿ ÀúÀå¼Ò¸¦ ¿ªÇÒÀ» Çϴµ¥ ServletContext ¿¡ ÀúÀåµÈ µ¥ÀÌÅÍ´Â ServletContext ¸¦ °øÀ¯ÇÏ´Â ¼­ºí¸´À̳ª JSP¿¡¼­ ÀÚÀ¯·Ó°Ô Á¢±ÙÇÒ ¼ö ÀÖÀ½.
setAttribute (name:Strng, value:Object)
µ¥ÀÌÅ͸¦ À̸§°ú °ªÀÇ ½ÖÀ¸·Î ÀúÀåÇÑ´Ù.
getAttribute (name:String) : Object
À̸§À» ÀÌ¿ëÇØ¼­ ÀúÀåµÈ µ¥ÀÌÅ͸¦ ¸®ÅÏ
removeAttribute(name:String)
name¿¡ ÇØ´çÇÏ´Â µ¥ÀÌÅ͸¦ »èÁ¦
getInitParameter(name:String) : String
À¥ ¾ÖÇø®ÄÉÀÌ¼Ç Àü¿µ¿ª¿¡ ´ëÇÑ ÃʱâÈ­ ÆÄ¶ó¹ÌÅÍ À̸§¿¡ ÇØ´çÇÏ´Â °ª ¹Ýȯ
getRequestDispatcher(path:String) : RequestDispatcher
ÁÖ¾îÁø Path ¸¦ À§ÇÑ RequestDispatcher ¸¦ ¸®ÅÏ
getRealPath(path:String) : String
ÁÖ¾îÁø °¡»ó PathÀÇ ½ÇÁ¦ Path¸¦ ¸®ÅÏ
getResource(path:String) : URL
ÁÖ¾îÁø Path ¿¡ ÇØ´çµÇ´Â ÀÚ¿øÀÇ URLÀ» ¸®ÅÏ
log(msg:String)
·Î±×¿¡ ±â·Ï
log(String message, Throwable throwable)
·Î±×¿¡ ±â·Ï
RequestDispatcher ÀÎÅÍÆäÀ̽º
Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» ´Ù¸¥ ÀÚ¿ø(¼­ºí¸´,JSP µî)À¸·Î Àü´ÞÇϱâ À§Çؼ­ »ç¿ë
forward(req:ServletRequest, res:ServletResponse)
Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» ´Ù¸¥ ÀÚ¿øÀ¸·Î Àü´Þ
include(req:ServletRequest, res:ServletResponse)
´Ù¸¥ ÀÚ¿øÀÇ ³»¿ëÀ» ÀÀ´ä¿¡ Æ÷ÇÔ
ServletRequest ÀÎÅÍÆäÀ̽º
¼­ºí¸´¿¡ ´ëÇÑ Å¬¶óÀ̾ðÆ®ÀÇ ¿äû Á¤º¸À» ´ã°í ÀÖÀ½.
setAttribute(name:String,o:Object)
°´Ã¼¸¦ ÁÖ¾îÁø À̸§À¸·Î ÀúÀå
getAttribute(name:String) : Object
ÁÖ¾îÁø À̸§ÀÇ ÀúÀåµÈ µ¥ÀÌÅ͸¦ ¸®ÅÏ
removeAttribute(name:String)
ÁÖ¾îÁø À̸§ÀÇ µ¥ÀÌÅ͸¦ »èÁ¦
getInputStream() : ServletInputStream
Ŭ¶óÀÌ¾ðÆ® ¿äûÀÇ ¹Ùµð¿¡ ÀÖ´Â ¹ÙÀ̳ʸ® Å×ÀÌÅ͸¦ Àбâ À§ÇÑ ÀÔ·Â ½ºÆ®¸² ¸®ÅÏ
getParameter(name:String) : String
Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû¿¡ Æ÷ÇԵǾî ÀÖ´Â ÆÄ¶ó¹ÌÅÍ À̸§¿¡ ÇØ´çÇÏ´Â °ª ¸®ÅÏ
getParameterNames() : Enumeration
Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû¿¡ Æ÷ÇԵǾî ÀÖ´Â ¸ðµç ÆÄ¶ó¹ÌÅÍ À̸§À» Enumeration ŸÀÔÀ¸·Î ¸®ÅÏ
getParameterValues(name:String) : String[]
ÁÖ¾îÁø À̸§ÀÇ ÆÄ¶ó¹ÌÅÍ °ªÀ» String ¹è¿­·Î ¸®ÅÏ, µ¿ÀÏÇÑ À̸§À¸·Î °ªÀÌ ¿©·¯ °³ ÀÖÀ» °æ¿ì »ç¿ë
getServletPath() : String
"/" ·Î ½ÃÀÛÇÏ´Â °æ·Î¸¦ ¸®ÅÏ. °æ·Î¿¡ Äõ¸®½ºÆ®¸µÀº Æ÷ÇÔµÇÁö ¾ÊÀ½.
HttpServletRequest ÀÎÅÍÆäÀ̽º
ServletReqeust »ó¼Ó
getCookies() : Cookie[]
ºê¶ó¿ìÀú°¡ Àü´ÞÇÑ ÄíŰ ¹è¿­À» ¸®ÅÏ
getSession() : HttpSession
ÇöÀç ¼¼¼Ç(HttpSession)À» ¸®ÅÏ
getSession(created:boolean) : HttpSession
ÇöÀç ¼¼¼ÇÀ» ¸®ÅÏ, ¸¸¾à ¼¼¼ÇÀÌ ¾ø´Â °æ¿ì created °¡ true ÀÌ¸é ¼¼¼ÇÀ» »ý¼ºÈÄ ¸®ÅÏ
ServletResponse ÀÎÅÍÆäÀ̽º
Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÀ´äÀ» º¸³»±â À§ÇØ »ç¿ë
getOutputStream() : ServletOutputStream
ÀÀ´ä¿¡ ¹ÙÀ̳ʸ® µ¥ÀÌÅ͸¦ Àü¼ÛÇϱâ À§ÇÑ Ãâ·Â ½ºÆ®¸² ¸®ÅÏ
getWriter() : PrintWriter
ÀÀ´ä¿¡ ¹®ÀÚ µ¥ÀÌÅ͸¦ Àü¼ÛÇϱâ À§ÇÑ Ãâ·Â ½ºÆ®¸² ¸®ÅÏ
setContentType(type:String)
Ŭ¶óÀÌ¾ðÆ®·Î Àü´ÞµÇ´Â ³»¿ëÀÇ MIME ŸÀÔÀ» ¼³Á¤
HttpServletResponse ÀÎÅÍÆäÀ̽º
ServletResponse ÀÎÅÍÆäÀ̽º¸¦ »ó¼Ó, HTTP ÀÀ´äÀ» Ŭ¶óÀÌ¾ðÆ®¿¡ Àü¼ÛÇÏ´Â ¿ªÇÒ
addCookie(cookie:Cookie)
ÀÀ´ä¿¡ Äí۸¦ Àü¼Û
sendRedirect(location:String)
ÁÖ¾îÁø URL·Î ¸®´ÙÀÌ·ºÆ®
HttpSession ÀÎÅÍÆäÀ̽º
getAttribute(name:String) : Object
setAttribute(name:String, value:Object)
removeAttribute(name:String)
invalidate()
Cookie
+ Cookie(name:String, value:String)
+ getDomain() : String
+ getMaxAge() : int
+ getName() : String
+ getPath() : String
+ getSecure() : boolean
+ getValue() : String
+ setDomain(pattern:String)
+ setMaxAge(expiry:int)
+ setPath(uri:String)
+ setSecure(flag:boolean)
+ setValue(newValue:String)

Âü°í

http://java.sun.com/javaee/5/docs/api/