The answers depend on whether by "Portal" do you mean a portal application implemented against the Portlet API (
JSR 168) or some proprietary portal API. For example,
Jetspeed is a portal framework and runs on
Tomcat (web container, not an application server). Then again, most portal implementations come from appserver vendors such as IBM and BEA and thus run on an application server. The point being, there are implementations of the Portlet API on both web and app containers so if you comply with JSR 168
you should be able to switch from appserver A to appserver B to webserver C without major problems.
This should've answered to 1-3. Unfortunately, I am not able to answer to your last question.
[ August 07, 2003: Message edited by: Lasse Koskela ]