2011-03-22 5 views
1

현재 두 개의 필터를 사용하는 응용 프로그램이 있습니다.UrlRewriteFilter 전에 액세스 로그 인쇄

첫 번째 것은 url을 다시 쓰는 UrlRewriteFilter입니다.

<filter> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> 
    <init-param> 
     <param-name>logLevel</param-name> 
     <param-value>DEBUG</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

둘째는 URL과 함께 각 페이지의 실적을 인쇄하는 필터입니다.

<filter> 
    <filter-name>PerfLoggingFilter</filter-name> 
    <filter-class> 
     com.sia.saa.common.filter.PerfLoggingFilter 
     </filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>PerfLoggingFilter</filter-name> 
    <url-pattern>*.form</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

그러나 로그에는 다시 쓰여진 URL 만 인쇄되고 원본 URL은 인쇄되지 않습니다.
URL 재 작성을 계속할 수있는 방법을 제안하십시오. 그러나 로그에는 원본 URL 만 인쇄됩니다.
참고 : 다른 세부 정보가 필요한 경우 질문을 게시하십시오. UrlRewriteFilter이 RequestDispatcher.forward() 사용하기 때문에

답변

2

, 나는 당신이 그 (것)를 기록 할 수 있도록

request.getAttribute("javax.servlet.forward.request_uri") 

로 로깅 필터 원래 요청 URL을 얻을 수 있습니다 같아요.

+0

인쇄하는 동안 request.getAttribute ("javax.servlet.forward.request_uri") 값이 null입니다. 내가 찾아야 할 다른 매개 변수가 있습니까? –

0

첫 번째 필터를 사용하기 전에 두 번째 필터를 사용할 수 있습니까? 두 번째 필터가 먼저 실행되면 원래 URL을 유지하게됩니다. ...

관련 문제