DNS can't help you here: The only ports it knows about are its own (53) and the ones encoded in SRV records.

If I remember correctly Tomcat allows you to set up name-based virtual hosts, which is what it sounds like you want (stick your apps in different named vhosts rather than on different ports).

Moving your "port 8080" app to port 80 on another IP is also an option.

If you need to keep the app on port 8080 for some reason clever use of mod_rewrite or HTTP/301 redirects can be made to do what you want ("If the host is "example2" redirect the user to port 8080"). Deeper levels of complexity are left as a (painful) exercise for the reader.

You should also be able to solve this at the firewall level using two NAT rules, assuming the websites can be bound to seperate IPs. You NAT one of the websites through from external port 80 to internal port 8080.

As an aside, I prefer a port other than 8080, as that's conventionally used for Web Proxies.