Since JSPs adhere to a standard API, can I precompile them in my projects and then deploy the result on any server?
Specifically, I'm using Tomcat, JBoss and WebSphere.
No, not really. If you look at the java source that gets created by the JSP compiler, you'll see that it extends a base class that's proprietary to the container. For example, JBoss 4's servlet container generates JSP classes that extend org.apache.jasper.runtime.HttpJspBase
, which is Tomcat and JBossWeb-specific.
So you might be able to reuse pre-compiled JSPs between different tomcat-based servers, but even then it might not work.