を仕事に失敗した私は、サーブレットにフィルタを追加しようとしています: filter
設定はこのようなものです:のJava:サーブレットへのフィルタが正しく
@WebFilter(filterName = "AFilter",urlPatterns = "/*", servletNames = "AServlet")
public class AFilter implements Filter {
public void destroy() {
System.out.println("filter is dying");
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
chain.doFilter(req, resp);
System.out.println("filter is working");
}
public void init(FilterConfig config) throws ServletException {
System.out.println("filter is born");
}
と私のAServlet
はこのようなものです:
@WebServlet(name = "AServlet",urlPatterns = "/AServlet")
public class AServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("AServlet");
}
howeve、私は、サーブレットとフィルタのマッピングを設定するには、アノテーションを使用していますので、
web.xml
ファイルが空である
}
私はこの出力を得たWebアプリケーションを実行しようとすると、Rの問題がある:
AFilter is born
AFilter is working
AFilter is working
AFilter is working
いくつかのプログラムがAFilter
3回を起動していると私はアクセスしようとしたとき、私はこれ、とも把握することができなかったようですWebブラウザからAservlet
:
AServlet
AFilter is working
これは、私が成功しAServlet
を訪問し、AFilter
が同様にその仕事をしているようだということは本当に紛らわしいです:http://localhost:80/AServlet
は、私は、コンソールは、このようなものです参照してください。誰かが間違っていることを教えてもらえますか?前もって感謝します。 (私が使用しているIDEはIntellij IDEA Ultimate版です)
フィルタ 'doFilter'メソッドがWebアプリケーションの起動時に3回呼び出され、urlpattern ="/* "の下にある' index.jsp'がデフォルトのランディングページである理由を知りましたが、だからurlpattern = '/ web/service /'を変更し、フィルタは作業行になっていますが、 'AServlet'にアクセスすると、上記の問題はまだ残っています。 – User3301