After I started maintaining quite a few blogs I have been asked this question several times, and my answer has remained the same ever since I hosted my first website. Initially I was using blogspot for my blogs, but when I realized the benefits of having a proper domain name, i registered through the default host of Blogspot, godaddy.com.
And when i realised advantages of using WordPress for my blogs, I had to make a choice of webhost. So I researched a little and found that godaddy.com was the cheapest available option andtheir hosting was also the feature packed. It even supported Java (deploying WAR files) in a PHP hosting account.
Its almost three years since I hosted my first website with them and not a single minute did I have a downtime or performance issues. The basic hosting used to cost 3$ but now it costs 5$ with unlimited domains (any number of subdomains and domains), 10 different SQL Databases(with unlimited data in each of them), PHP 5 and many more features.
But when I wanted to host JSP/Java godaddy wasnt the best option, as godaddy doesnt provide a private JVM (virtual), the advantage of which is you can deploy any time and you can restart the server. Thats when i found EATJ.com which even provides a free trial (which will need you to manually restart tomcat server every 6 hours). So here are my suggestions.
PHP/ASP.net / Basic Java hosting – godaddy.com
JSP/Java private JVM – EATJ.com