grizzly À¥¼­ºñ½º °³¹ß ÇÁ·¹ÀÓ¿öÅ©
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

HTTP¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â Áß°è¼­¹ö¸¦ °³¹ßÇÒ·Á°í ÇÏ´Ùº¸´Ï ã°ÔµÈ ³à¼®ÀÌ´Ù. JavaÀÇ »õ·Î¿î I/O API ÀÎ NIO¸¦ Áö¿øÇϰí ÀÖ´Ù°í ÇÑ´Ù. ¹®¼­¸¦ ã¾Æº¸´Ï ¸®´ª½º ±¸ÇöÀÇ °æ¿ì epollÀÇ ±¸ÇöÀÎ °ÍÀ¸·Î µÇ¾î ÀÖ´Ù. epollÀÎ ¸¸Å­ ¼º´É¿¡ À־ ÀÕÁ¡À» ¾òÀ» ¼ö ÀÖÁö ½Í´Ù.

¾Æ·¡´Â grizzly ¸¦ ÀÌ¿ëÇØ¼­ ¸¸µç °£´ÜÇÑ À¥¼­¹ö´Ù.
import com.sun.grizzly.http.SelectorThread; 
import com.sun.grizzly.tcp.Adapter; 
import com.sun.grizzly.tcp.OutputBuffer; 
import com.sun.grizzly.tcp.Request; 
import com.sun.grizzly.tcp.Response; 
import com.sun.grizzly.util.buf.ByteChunk; 
 
import java.net.HttpURLConnection; 
 
public class HttpServer implements Adapter { 
    public static void main(String[] args) 
    { 
        SelectorThread st = new SelectorThread(); 
        st.setPort(8087); 
        st.setAdapter(new HttpServer()); 
        System.out.println("My Test Web Server"); 
        try 
        { 
            st.initEndpoint(); 
            st.startEndpoint(); 
        } 
        catch(Exception e) 
        { 
            System.out.println("Exception in SelectorThread"+e); 
             
        } 
        finally 
        { 
            if(st.isRunning()) 
            { 
                st.stopEndpoint(); 
            } 
        } 
    } 
    public void service(Request request, Response response) throws Exception 
    { 
        String requestURI=request.requestURI().toString(); 
         
        System.out.println("New Incomming request with URI: "+requestURI); 
        System.out.println("Request Method is : "+request.method()); 
        if(request.method().toString().equalsIgnoreCase("GET")) 
        { 
            response.setStatus(HttpURLConnection.HTTP_OK); 
            byte[] bytes = "Here is my response text".getBytes(); 
             
            ByteChunk chunk = new ByteChunk(); 
            response.setContentLength(bytes.length); 
            response.setContentType("text/plain"); 
            chunk.append(bytes, 0, bytes.length); 
            OutputBuffer buffer = response.getOutputBuffer(); 
            buffer.doWrite(chunk, response); 
            response.finish(); 
        } 
    } 
    public void afterService(Request request, Response response) 
    { 
        request.recycle(); 
        response.recycle(); 
    } 
 
    public void fireAdapterEvent(String string, Object object) 
    { 
         
    } 
} 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.