2016-10-03 13 views
0

새 서블릿을 만들고 함께 필터 할 때이 작업을 수행하는 방법에 대한 예제가 많이 있지만 web.xml에 이미 정의 된 필터를 사용하고 싶습니다.3.0 사양을 사용하여 동적으로 서블릿을 만들 때 기존의 정적으로 생성 된 필터에 어떻게 등록합니까?

+0

불행하게도 그것은 다른 방법으로 주위 - 필터가 서블릿에 적용하고 필터를 서블릿 "이름"의 목록을 제공 할 수 있습니다. 필터에 대한 web.xml을 수정할 수 있습니까? – stdunbar

+0

아니요, 문제의 요점입니다. – rmp

답변

1

이 (A ServletListener에서) 작동합니다

ServletContext sc = event.getServletContext(); 

// dynamically register servlet 
ServletRegistration.Dynamic reg = sc.addServlet("MyServlet", MyServlet.class); 
reg.addMapping("/MyUrl/*"); 

// register new servlet with an existing filter 
FilterRegistration fr = sc.getFilterRegistration("MyExistingFilterInWebXML"); 
EnumSet<DispatcherType> all = EnumSet.allOf(DispatcherType.class); 
fr.addMappingForServletNames(all, false, "MyServlet"); 
+0

솔루션을 게시 해 주셔서 감사합니다. – stdunbar