1. Since struts nothing more than a framework that runs on top of a J2EE web application, a struts web application must have everything any other J2EE Web application has. The answer is yes, you do need a web.xml file, and whatever other xml files are required by the J2EE application server you're running your application on. Not only that, but the web.xml must have some very specific configuration information in it for Struts to run properly. My advice is to begin any new Struts application with the materials in the struts-blank.war file that is provided with the download. Then examine the entries in the web.xml file, and you will see what I mean.
2. To my knowledge, a struts web application will run on any J2EE application server that conforms to J2EE 1.3 or above.