Action are not servlets, correct. But there is an
ActionServlet (the "controller") that determines what action will handle each request. It's configured in the web.xml because that's where you configure servlets.
Actions are configured in the
Struts configuration file because they're framework-specific classes--nothing to do with default
Java web application mechanisms. They *could* have used a configuration mechanism that leveraged the web.xml file, I suppose (although I'm not sure if that capability existed when Struts 1 first came about), but it's separate, which makes sense to me.