2014-09-21 2 views
0

같은 서블릿이 :매핑은 web.xml에

<servlet> 
     <servlet-name>Bla</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value></param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Bla</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

내가 저지 필터와 approp 있습니다. web.xml 설정은 다음과 같습니다.

<servlet> 
     <servlet-name>MY API</servlet-name> 
     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name> 
      <param-value>BlaResponseFilter</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>MY API</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

목표는 필터를 모든 응답에 바인딩하는 것입니다.

작동하지 않습니다 물론

인해 동일한 경로 (/ *)

그것을 할 수있는 또 다른 방법은 무엇에 여러 서블릿 매핑? 응답이 이미 생성되었지만 사용자에게 요청을 보내기 전에 특수 코드를 실행해야합니다.

+0

는 지금까지 시도 했는가? 그리고 ** ContainerResponseFilter ** 및 사용자 정의 ** MessageBodyWriter **에 대한 내용은 무엇입니까? – zyexal

답변

0

배포 설명자에서 com.sun.jersey.spi.container.ContainerRequestFilters 값은 com.sun.jersey.spi.container.ContainerRequestFilter 인터페이스를 구현하고 filter 메서드를 재정의해야하는 클래스 여야합니다.

그래서 제공 가치는 합법적이지 않습니다. 그것은 regiter 그런

package some.package.filter; 
import com.sun.jersey.spi.container.ContainerRequest; 
import com.sun.jersey.spi.container.ContainerRequestFilter; 

public class BlaResponseFilter implements ContainerRequestFilter { 
@Override 
public ContainerRequest filter(ContainerRequest request) { 
    // you custom operations 
    return request; 
} 
} 

: 당신 자신의 필터를 만들기

<servlet> 
    <servlet-name>MY_API</servlet-name><!-- Avoid space characters --> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name> 
     <param-value>some.package.filter.BlaResponseFilter</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>MY_API</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping>