1. If you're trying to detect that DNS is returning a valid hostname, the first part of your example fulfills that objective.
2. If you're trying to detect the life of a DNS based host, you're much better off relying on an ICMP ping instead of using heavy top-level protocols like HTTP which in themselves could fail.
3. If you only care about detecting that the HTTP server on such named host is alive, then the second part of your post would probably be sufficient, through HTTP servers can be quite broken but still respond to a client. Once again, it all depends on what you mean by 'DNS monitoring'.
PS: The naming framework in java might not be the best solution for low level DNS solutions. A cursory look at google found dnsjava, which is a client that is specifically designed for high and low level DNS resolution. If you really care about DNS, and not so much the reachability of the results, you may want to look at this library.
This will take every ounce of my mental strength! All for a tiny ad: