我现在遇到了Servlet过滤器的麻烦。我的问题是 - 我想验证每当用户更改url(输入url,redirect,...)时,我会使用Forward dispatcher创建一个简单的过滤器。但是,它会导致另一个问题 - 我每次执行1次动作时都不想做.Filter。例如:单击一个按钮。 我的方法只能满足第一个麻烦。 你有我的问题的解决方案吗?谢谢。
答案 0 :(得分:0)
您可以使用以下代码检查事件来源:
String[] eventSource = request.getParameterMap().get("javax.faces.source");
eventSource[0]
这里为您提供了在xhtml上设置的按钮ID。
所以在doFilter
方法中,您可以执行以下操作来简单地完成针对该请求的过滤器:
if (eventSource != null &&
eventSource.length > 0 &&
eventSource[0].equals("myButtonId"))
{
chain.doFilter();
return;
}