You don't give a lot of an idea about the environment in which you are running the tests. For example, are you using the same JVM? This affects things. What is the OS? How many CPUs? How much memory? What are the heap size settings? Was the system in a quiescent state before you started the tests? Depending on the JVM, some initial GC can occur on the system.
It is also a little unfair including JBoss if you are not using the main JBoss components - e.g. running EJB business logic. In this instance, you are not really measuring anything involving JBoss in an active sense.
There are a few other things to consider. Tomcat is the chosen reference model. It implements quite a number of features that lends it overhead and bloat. None of the bytecode in a standard distribution is optimized. JBoss itself includes many services - enabled by default - such as the JMX services, deployment scanner, JMS and so on.
An independent test of servlet container performance (does not include BEA due to permission to publish results):
This should give some idea of setup for performance testing the servlet container.