小编use*_*661的帖子

doFilter调用两次,打算行为?

我正在研究Java EE servlet教程并尝试了心情示例.我注意到,一旦servlet调用在链中,第二次不是,就会调用doFilter两次.

我在TimeOfDayFilter.java和MoodServlet.java中添加了一些printlns来显示它.

TimeOfDayFilter.java:

    ...
    System.out.println("TimeOfDay before"); //added
    chain.doFilter(req, res);
    System.out.println("TimeOfDay after"); //added
    ...
Run Code Online (Sandbox Code Playgroud)

MoodServlet.java:

    ...
    response.setContentType("text/html;charset=UTF-8");

    System.out.println("MoodServlet"); //added

    PrintWriter out = response.getWriter();
    ...
Run Code Online (Sandbox Code Playgroud)

调用servlet时glassfish服务器(3.1)窗口的结果如下:

    INFO: mood was successfully deployed in 406 milliseconds.
    INFO: TimeOfDay before
    INFO: MoodServlet
    INFO: TimeOfDay after
    INFO: TimeOfDay before
    INFO: TimeOfDay after
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?如果是这样,额外通话的原因是什么?

java servlets glassfish java-ee servlet-filters

11
推荐指数
2
解决办法
9523
查看次数

标签 统计

glassfish ×1

java ×1

java-ee ×1

servlet-filters ×1

servlets ×1