2013-05-29 3 views
0

Servlet-API를 통해 ServletRegistration을 대체 할 수 있습니까?ServletRegistration을 제거/교체하는 방법은 무엇입니까?

다음 코드는 지정된 서블릿 이름에 대해서만 새 서블릿을 등록 할 수 있지만 이름이있는 서블릿이없는 경우 아무 것도 수행하지 않습니다.

그래서 등록 (다른 ServletClass는 같은 이름으로 대체)하거나 이름으로 제거 할 수있는 가능성을 찾고 있습니다.

답변

0

서블릿을 추가하는 기능은 서블릿 컨텍스트 초기화 중에 제공됩니다. it is impossible to add new servlets at runtime i.e. anytime after the Servlet Context is initialised이 주어지면 서블릿 컨텍스트 초기화 중에 올바른 서블릿 집합을 추가해야합니다.

서블릿을 이름으로 추가 한 다음 서블릿 컨텍스트를 초기화 할 때 다른 서블릿으로 바꾸는 것은 실제로 아무런 의미가 없습니다. 그게 아니야? 사용 사례가 있습니까?

@Balusc 실제로 good alternative 제안 :

a single controller servlet in combination with command pattern is much better suited. 
You could then add commands (actions) during runtime and intercept on it based on the request URI. 
+0

우리의 사용 사례는 테스트를 위해 변경된 구성 (서블릿 동작)입니다. 응용 프로그램 자체는 서블릿을 ServletContextListener에 등록하고 (테스트) 하위 모듈은 서블릿 구현을 덮어 써야합니다. (서블릿 컨텍스트 initilisation 과정에서) 하지만 불가능하면 우리는 다른 솔루션을 시도해야합니다. 감사합니다. – chuem