In Struts, there is exactly one RequestProcessor instance per module, which handles all requests for that module. This is a singleton pattern within each module context. It's not one-per-application (multiple modules exist), not one-per-request (too expensive), and not one-per-ActionServlet (the module is the key).