Jeśli chodzi o Javowy odpowiednik .NET, to zainteresuj się frameworkiem JavaServer Faces - jest to framework dla JSP (JavaServer Pages) i Javy.
Ogólnie to jest tak, że C# + ASP to coś jak Java + JSP. Na pierwsze jest framework .NET, a na drugie - JSF.
Skorzystanie z JSF oczywiście także wiąże się z przepisaniem całego serwisu, ale jeśli poprzednio korzystałeś z dot neta, to myślę że JSF przypasuje ci bardziej niż PHP (C# jest oparty o Javę, a sam dot net jest zrobiony na wzór JSF).
Do tego dla JSF są bardzo fajne środowiska programistyczne, nawet wizualne (czyli coś jak Visual Studio), np. NetBeans od Sun Microsystems, Eclipse (z odpowiednimi rozszerzeniami), jest też coś od IBM'a oraz od Oracla.
Ponieważ JSF jest otwartą technologią, istnieje wiele jej implementacji (wzorcowa od Sun Microsystems, MyFaces od Apache, są też implementacje IBMa, Oracla i jeszcze jakaś).
Jako serwer możesz wykorzystać np. Apache Tomcat, GlassFish, RedHat JBoss, Oracle OC4J (jeśli chodzi o te bardziej znane).
Jeśli ściągniesz sobie NetBeans, to dostajesz od razu do tego GlassFish'a i cały framework JSF (w przypadku Eclipsa musisz osobno instalować framework i serwer, no i rozszerzenia do wizualnego tworzenia aplikacji w JSF). Ale niestety w Debianie na razie jest stara wersja NetBeans (6.0.1, w której jakoś nie bardzo mogłem się doszukać Visual JSF...) - warto skorzystać z czegoś nowszego, przynajmniej z wersji 6.1 (niedługo będzie stabilne 6.5 - w tych wersjach wizualne JSF już jest). Środowiska od IBM'a, Oracla czy RedHata też pewnie dostarczają wszystkiego co trzeba od razu.
Co do baz danych, to dobrym zwyczajem jest korzystanie z narzędzi takich jak Hibernate (
http://en.wikipedia.org/wiki/Hibernate_(Java), po angielsku na to mówią "persistance layer"), lub podobnych - jest to taki interfejs między aplikacją a bazą danych, wykorzystujący wzorzec programistyczny Data Access Object - dzięki temu aplikacja jest niezależna od rodzaju bazy danych i jeśli chcesz zmienić bazę np. z MySQL na Oracle, to zmieniasz tylko kilka linijek w konfiguracji Hibernata i nie musisz grzebać w kodzie aplikacji (w pracy zajmuję się projektem, który robimy razem z inną firmą - oni hostują aplikację na swoim serwerze i używają bazę danych Oracla, a my piszemy kod do aplikacji i nasze robocze kopie bazy stoją na MySQLu - Hibernate bardzo ułatwia taką współpracę, bo każdy może korzystać ze środowiska bazodanowego jakie zna i jakie lubi).