Pauschal kann man das nicht beantworten, jede Technik hat ihren Anwendungsbereich. Grundsätzlich kann man aber schon etwas abgrenzen:
PHP eignet sich am Besten für kleinere Projekte ohne Integration anderer Sprachen und beschränkt auf einen einzigen Server, die nicht zeitkritisch oder transaktionskritisch sind.
Die Einarbeitungszeit in PHP ist von den von dir genannten Sprachen die kürzeste, die Möglichkeiten aber auch am eingeschränktesten.
ASP.NET würde ich persönlich in mittelgroße bis große Projekte einordnen, die unter anderem darauf angewiesen sind auch mit Modulen in anderen Sprachen zu arbeiten, z.B. Assemblies in C# oder C++.NET. Allerdings wie so oft der Nachteil auf MS-Server beschränkt zu sein (wenn es nativ laufen soll). Sehr großes Spektrum an Möglichkeiten, größere Einarbeitungszeit (wenigstens nach meinem beschränkten Wissenstand), also eher nicht geeignet für kleinere Projekte oder priate Projekte.
JSP/Servelets/Java Beans sind wohl am universellsten einetzbar was die Plattform angeht, allerdings erfordert es auch einen entsprechenden Server. Es ist eine recht Komplexe Programmierung, also auch lange Einarbeitungszeit. Leistungsmäßig (bei guter Programmierung) nach meinen Quellen und beschränkten Erfahrungen ist es ASP.NET und Konsorten mindestens gleichwertig. Durch die Komplexität und die Erfordernis von z.B. Tomcat ist es allerdings auch nicht unbedingt für den Hausgebrauch geeignet.