有没有办法在 中定义web.xml某个 servlet 过滤器必须只执行一次?
1070 次
2 回答
0
不,这Filter不是为了。无论Filter做什么,都应该由 aServletContextListener代替。
@WebListener
public class Config implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// Do stuff during server startup.
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// Do stuff during server shutdown.
}
}
当您还没有使用 Servlet 3.0时,请以旧的方式@WebListener将其删除并注册,web.xml如下所示:
<listener>
<listener-class>com.example.Config</listener-class>
</listener>
如果您真的坚持使用 a Filter,您可能会滥用该init()工作的方法并调用chain.doFilter(request, response)该doFilter()方法。
于 2012-05-16T17:21:37.983 回答
0
一个回合的方法是拥有类变量并在首次访问时设置它,并将所有功能代码放在一个检查这个变量的“if”块中。
于 2012-05-16T17:21:57.797 回答