如何編寫一個篩選器類以將響應從一個servlet傳遞到另一個以及GET參數?servlet鏈篩選器
這是什麼,我已經試過大綱(我得到了大部分來自this question)
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TranslateFilter implements Filter {
private FilterConfig config = null;
public void init(FilterConfig config) throws ServletException {
this.config = config;
}
public void destroy() {
config = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, response);
..
RequestDispatcher dispatch = request.getRequestDispatcher("/Translate");
dispatch.forward(request, response);
..
}
}
,這在web.xml
<servlet-mapping>
<servlet-name>process</servlet-name>
<url-pattern>/Process
</servlet-mapping>
<servlet-mapping>
<servlet-name>translate</servlet-name>
<url-pattern>/Translate
</servlet-mapping>
<filter-mapping>
<filter-name>processChain</filter-name>
<servlet-name>process</servlet-name>
</filter-mapping>
但它沒有不工作。它不會轉發到第二個servlet。我沒有調試環境設置,所以我不知道它失敗的位置,但有人能指出我正確的方向嗎?
'chain.doFilter(request,response);'是否有條件? –
@JigarJoshi你問是否返回一個布爾值? –
爲什麼不把它作爲原始問題的一部分發布?您已經省略了我提供的答案的一些重要細節,即您應該傳遞一個響應包裝器,該包裝器充當緩衝區而不是原始響應對象。 – kschneid