API Servlet standar tidak mendukung fasilitas ini. Anda mungkin ingin menggunakan filter penulisan ulang URL untuk ini seperti yang Tuckey's (yang mirip dengan HTTPD Apache mod_rewrite), atau menambahkan tanda centang pada doFilter()metode mendengarkan Filter pada /*.
String path = ((HttpServletRequest) request).getRequestURI();
if (path.startsWith("/specialpath/")) {
chain.doFilter(request, response); // Just continue chain.
} else {
// Do your business stuff here for all paths other than /specialpath.
}
Anda dapat, jika perlu, menentukan path-to-be-diabaikan sebagai init-paramfilter sehingga Anda bisa mengendalikannya di bagian web.xmlmanapun. Anda bisa mendapatkannya di filter sebagai berikut:
private String pathToBeIgnored;
public void init(FilterConfig config) {
pathToBeIgnored = config.getInitParameter("pathToBeIgnored");
}
Jika filter merupakan bagian dari API pihak ke-3 dan karenanya Anda tidak dapat memodifikasinya, maka petakan pada yang lebih spesifik url-pattern, mis. /otherfilterpath/*Dan buat filter baru /*yang meneruskan jalur yang cocok dengan filter pihak ke-3.
String path = ((HttpServletRequest) request).getRequestURI();
if (path.startsWith("/specialpath/")) {
chain.doFilter(request, response); // Just continue chain.
} else {
request.getRequestDispatcher("/otherfilterpath" + path).forward(request, response);
}
Untuk menghindari filter ini akan memanggil dirinya sendiri dalam loop tak terbatas, Anda perlu membiarkannya hanya mendengarkan (mengirim) REQUESTdan filter pihak ke-3 FORWARDsaja.
Lihat juga: