Let me see if I understand this correctly.
a) JBoss AS and Apache HTTPD are running on the same Server 2003 system
b) If you run IE on the Server 2003 system and access pages in JBoss AS then you get a quick response.
c) If you run IE on a remote system and access pages in JBoss AS you get a slow response
d) If you run IE on the same remote system and access a page in Apache you get a fats response.
Possible things I can think of:
1) I assume that JBoss AS is using port 80 and Apache is using 80. Might there be some kind of firewall (or other security product) that is monitoring port 8080 more than 80? You can test if this is the case by temporarily setting the HTTP port in JBoss AS to 80.
2) There is some strange interaction between Java and the network. You can test this by installing another app server or servlet container (such as Resin), deploy as simple web app to it and try accessing it (deploy that same app to JBoss AS an verify that the simple app also has poor response times.) If you run into the same problem, then it could be a JVM/network issue. You might want to check which DLLs are loaded into the JVM (use Process Monitor from sysinternals to do this)
3) Could be some network glitch. You'd need some network monitoring tools to track this down. Many enterprise-grade switched come with monitoring built-in, but you'll need someone who knows how to configure such things to help you.
There are probably other possibilities.
Based on the your reply,
1.) Jboss AS is listening to 8080, AJP 8009 (which is default). Apache is on 80
2.) I'm currently proceed this test, will post the result soon.
additional : I found out, if my jsp consist of "request.getServerName()" or request.getContextPath(), I may face the ultimate slow problem. Other than that is working fine !
The above issue only happen when I run IE on a remote system (Internet).
Still headache on it, currently what I'm trying to do is remove all the 'ContextPath' to hardcode application name.
example : <%=request.getContextPath() + "/sampleServlet"%> to <%="/projName/sampleServlet"%>
I could see why getServerName() could be slow - especially if the app server has to contact a remote DNS to get the name. But I don't see why getContextPath() should be slow, unless it is also trying to resolve the name before replying.