I don't think this is about complexity.
Strictly speaking, Java does not do this; a servlet engine and the Servlet API does it.
I really disagree with your characterization of PHP. As a language, it has nearly all the possibilities that Java has. Strictly speaking, the Java folks could have easily written an Apache module that would do a one-shot interpretation and execution just like PHP. That has nothing to do with the language and is a totally separate issue.
What does it matter? PHP is still significantly different from Java, especially when it comes to typing. Compared to Java, PHP is very loosely typed, and I might prefer it over Java for enterprise-class apps if there were a servlet-type engine for it.
Again, "servlets" are not part of the language. I think PHP should have (optional) namespaces, and I would be surprised if we didn't see POSIX threading capabilities in PHP soon.
The way PHP is executed by the web server has nothing to do with the language itself. I'm not asking anyone to change the way PHP is executed. I'm just wondering if the servlet option is available.
I think you'd find that Java performs extraordinarily well on the server, and the lack of an app server for PHP has just made it easier to program for (which is its biggest advantage over languages like Java).
I would agree that it's made PHP much easier to program for.