Нет лучшего решения или основы. Вам лучше определить, даже для себя, что именно вы хотите, чтобы приложение делало, а затем искать наиболее подходящую технологию. Чтобы не быть слишком абстрактным, я бы посоветовал вам ознакомиться с Struts, Spring и GWT (Google Web Toolkit).
У каждого из них есть свои плюсы и минусы, поэтому дело не в том, чтобы стать гуру только в одном из них, а в том, чтобы лучше знать их всех, чтобы принять правильное решение, когда это необходимо.