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-param
filter sehingga Anda bisa mengendalikannya di bagian web.xml
manapun. 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) REQUEST
dan filter pihak ke-3 FORWARD
saja.
Lihat juga: