I have a few problems with Java, some are philosophical, some pragmatic, some stylistic.
My first major problem with using Java as a server side solution, is that I've seen a lot of people trying to write their business rules in a bunch of java beans. Business rules should really reside in the database, so that programs can't just change them when they feel like it. Java tends to run slow, and letting it handle transactions is a recipe for disaster (i.e. server overload)
If you have an online store, that needs to ensure that several sql queries either all run or none run, then build the transaction into procedural sql, embed it in the database, and let the server side scripting language simply request the transaction and handle the error condition should the transaction fail, or tell the user that it worked, and their book is on the way.
My next problem with Java is that it's much more difficult to build and troubleshoot a running JSP server than it is an Apache/PHP server. Even Cold Fusion is a simpler solution to maintain.
Next, I'm not a fan of OO languages as my front side language (i.e. in the web server, not the sql server.) I like OO for things in databases, and postgresql fits the bill nicely there, as do some other more expensive databases. Again, let the database manipulate the objects, not the upper layer language.
Finally, a java server needs more resources to handle the same load as a PHP box doing the same thing. This means that the upper limit on simo connects and transactions per second is lower on a given piece of hardware for Java than for PHP.
I've tested fairly low end hardware with PHP/apache/postgresql scripts that could run anywhere from 2 to 20 transactions a second, with anywhere from 10 to 100 simo connections. That's with the database on the same single CPU 400MHz box as the web server, and only 128 Meg RAM. At 256 Meg of ram, I can usually double that number up to 200 simos, but only get about 5 tps at that level.
Lastly, the main reaons we like PHP for intranet programming is all the great stuff it can do almost right out of the box:
- pdf printing
- pop/imap interface
- ldap
- database connectivity out the wazoo
- dynamic image creation
- verisign, cybercash and CCVS for credit cards
- XML parsing
- spell checking
- Recoding from one data format to another
- Corba
- shockwave
Why not talk the boss into letting you keep PHP while building JSP for a few test projects. Once you've had a chance to see the development time of projects in both, then make a decision.