OSGi 이야기

HTTP Service

НooпeУ 2011. 11. 14. 23:49
HTTP 서비스는 사용자가 웹브라우저를 통해 서버에 특정 URI의 리소스를 요청하면 HTTP Request를 받아서 사용자가 요청한 리소스를 넘겨주는 역할을 하는 것이다. OSGi에서는 기본적으로 서블릿과 각종 리소스 타입을 지원한다.

서블릿 -

public interface HttpService {

public void registerService(String alias, //서블릿의 alias로 외부에서 서블릿을 요청할 uri 값과 매핑 
Servlet servlet, //서블릿 객체
Dictionary initParams, //서블릿을 초기화할 때 전달할 인자
HttpContext context); //서블릿을 등록할 HttpContext

public void registerResources(String alias, //리소스의 alias 
String name, //리소스의 내부 파일명
HttpContext context); //리소스를 등록한 httpContext

 public void unregister(String alias);

public HttpContext createDefaultHttpContext(); 
}

registerServlet과 registerResource의 마지막 인자는 httpContext로 이 객체는 리소스나 서블릿이 실제로 등록되는 개체이다. HTTP서비스느느 이 HTTP Context에게 서블릿이나 리소스를 요청하는 작업을 하게 된다. 만약 이 인자가 Null이면 자동으로 createDefaultHttpContext()를 호출하여 생성한 후 사용하게 된다. 이 HttpContext는 다음과 같은 메소드를 가지며, 사용자 인증등을 처리하거나 새로운 타입의 MIME을 등록해야 한다.