【问题标题】:Request destroyed before initialization初始化前销毁的请求
【发布时间】:2015-08-10 12:18:54
【问题描述】:

我正在用 ServletRequestListener 做实验。当我运行程序时,我得到以下输出。一些请求在初始化之前就被破坏了。这是为什么呢?

New request arrived to server :/projeDB/
Request destroyed : /projeDB/javax.faces.resource/primefaces.css.xhtml;jsessionid=2CDF29CD90D3EB1143D06AACAF7BA387
Request destroyed : /projeDB/javax.faces.resource/jquery/jquery.js.xhtml;jsessionid=2CDF29CD90D3EB1143D06AACAF7BA387
Request destroyed : /projeDB/javax.faces.resource/primefaces.js.xhtml;jsessionid=2CDF29CD90D3EB1143D06AACAF7BA387
New request arrived to server :/projeDB/javax.faces.resource/jquery/jquery.js.xhtml;jsessionid=2CDF29CD90D3EB1143D06AACAF7BA387
Request destroyed : /projeDB/javax.faces.resource/jquery/jquery-plugins.js.xhtml;jsessionid=2CDF29CD90D3EB1143D06AACAF7BA387
Request destroyed : /projeDB/javax.faces.resource/theme.css.xhtml
New request arrived to server :/projeDB/javax.faces.resource/primefaces.js.xhtml;jsessionid=2CDF29CD90D3EB1143D06AACAF7BA387
New request arrived to server :/projeDB/javax.faces.resource/jquery/jquery-plugins.js.xhtml;jsessionid=2CDF29CD90D3EB1143D06AACAF7BA387
New request arrived to server :/projeDB/javax.faces.resource/primefaces.css.xhtml;jsessionid=2CDF29CD90D3EB1143D06AACAF7BA387
New request arrived to server :/projeDB/javax.faces.resource/theme.css.xhtml
Request destroyed : /projeDB/javax.faces.resource/images/ui-icons_38667f_256x240.png.xhtml
New request arrived to server :/projeDB/javax.faces.resource/images/ui-icons_38667f_256x240.png.xhtml

我的 ServletRequestListener :

public class RequestListener implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("New request arrived to server :" + ((HttpServletRequest) sre.getServletRequest()).getRequestURI())  ; 
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("Request destroyed : " + ((HttpServletRequest) sre.getServletRequest()).getRequestURI());
    }
}

【问题讨论】:

    标签: servlet-listeners


    【解决方案1】:

    你没有切换方法中的打印语句吗?您在requestInitialized() 方法中打印出请求已被销毁,反之亦然。

    【讨论】:

    • 我想知道为什么客户请求这些资源。客户如何知道缺少资源?我在我的页面上使用 primefaces 5.2 标签。
    • 我不确定我是否理解。 ServletRequestListener 处理程序的调用绑定到请求对象的生命周期。客户端何时将请求发送到服务器资源取决于服务器发送的响应以及客户端处理它们的方式。你是说你不明白为什么客户端向 /projeDB/javax.faces.resource/primefaces.css.xhtml;jsessionid=2CDF29CD90D3EB1143D06AACAF7BA387 发送请求?如果您的客户端是浏览器,请使用 HttpWatch,您将在那里看到所有您需要的内容
    • 是的,这就是我想知道的。服务器是否通过响应告知客户端您需要这些资源才能完全查看页面?如果是这样,响应的哪一部分包含客户端将需要的未来资源的信息?
    • 如果客户端需要显示一些东西,服务器会响应一个 HTML 页面。此 HTML 页面包含资源 - 静态图像、动态内容、客户端代码 (JavaScript) 等。当必须显示的内容不能直接在 HTML 代码中可用时,必须从某个地方获取。例如,当您指定页面的 CSS 样式时,您还添加了客户端必须从中获取它的 URL。这就是它知道要请求哪些资源的方式——通过浏览 HTML 代码中的链接并确定它必须联系哪些资源
    猜你喜欢
    • 2015-07-18
    • 2023-03-30
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多