有没有办法在 中定义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 回答