When you type www.google.com into you web browser it opens a connection on the default port 80 to the Google server (via a DNS lookup to see what IP address www.google.com is) and requests the web page. The Google server responds with a web page which your browser draws on screen (usually by making further calls for images, CSS and JavaScript).
When you go to localhost:8080 it's the exact same thing. Localhost server name always resolves to the machine you are running on and uses the fake IP address of 127.0.0.1 (your computer will have two IP addresses - this fake one that every computer has and the real one). So you must have a Tomcat instance running locally listening for connections on port 8080.
Why port 8080 rather than the default http port 80? Well that's in case you have a webserver in place already.
Typically you have web servers and app servers.
Web servers (like Apache httpd) serve up static pages. In effect it's like a fancy one-way FTP server. You open a TCP connection and ask for a file using the HTTP commands (typically GET). The webserver returns a HTML file and your browser downloads it and parses it, sees it needs other images and requests those. A webserver is very fast but basically lifts files off the local disk and returns them.
An App Server (like Tomcat or JBoss) is similar except it typically runs code to "create" the page you are asking for, rather than lifts it straight from disk. What it does to create that page is up to your application. It could connect to a database, run a program, randomly serve a page... Etc. When you log on to your online banking for example, the app server sets up a session for you, returns that session id in a cookie which your browser resends back each time you make a request until you log out. So if you ask for the "my balances" page then the bank looks up who you are based on your session id, then goes to its database to get your name and bank balance, then creates a page saying "Hi John Smith, your balance is €100." App servers are typically slower, but more versatile than Webservers.
Many places have a WebServer running in default port of 80, and then AppServer running on a secondary port (like 8080). So static pages are served fast and when users click on a link which takes them to a dynamic page, the link either goes to 8080 (which the app server responds to) or web server is setup to forward certain requests to the app server (in which case it still looks like the default port 80 and so looks a little nicer to the user).
Of course this is a very high level overview and nothing is that black and white. Most Webservers can create some dynamic content by running scripts (typically CGI via she'll scripts using perl or PHP) and most app servers can also serve plain files like a webserver. In fact it's possible to just run an app server and change the tomcat port number from 8080 to 80.
Finally many applications are moving away from serving full HTML pages for each request to the app server (which seen as slow and inefficient) and are instead responding with just the data snippets using AJAX to send JSON or XML. Back to the original www.google.com you used to type in your search query, hit Search and get a page of your results. Now instead, as you type, your browser is continually sending AJAX requests to Google which responds with up to date search results based on what you've typed so far and then your browser updates the page. It means no need to wait for user to submit the page so faster and more dynamic to the user (like an old school desktop app would be).