I implemented a Http filter using Filter interface and it works fine in localhost. The problem is that in a testing environment when two users want to access to the application this filter does not work like always. It mixes the data between two users. I know it because I have lots of logs reporting me the steps every moment. I don't know if there is any problem with the simultaneous access.
Asked
Active
Viewed 69 times
1
-
You should provide the code – ᄂ ᄀ Nov 15 '13 at 10:24
1 Answers
0
Like servlets, filters are application scoped. There's only one instance of a filter class being created during application startup and the very same instance is being reused across all HTTP requests throughout the application's lifetime. Your problem symptoms indicate that you're for some reason assigning request or session scoped variables as an instance variable of the filter instance, such as request parameters or session attributes, or perhaps even the whole request or session object itself.
For example,
public class MyFilter implements Filter {
private String someParam;
public void doFilter(... ...) {
someParam = request.getParameter("someParam");
// ...
}
}
This is not threadsafe! You should be declaring them in the method local scope:
public class MyFilter implements Filter {
public void doFilter(... ...) {
String someParam = request.getParameter("someParam");
// ...
}
}