Fuzzy I am going to get booed out of the room but I would recommend .Net (and specifically c#).
php is likely the "standard". There seems to be more bitcoin web-app code in php than any other language (maybe more than all other languages combined). I agree that C++ is likely the last choice when it comes to web development. Maybe for back end processing but even then ... meh.
Top 3 IMHO:
php
java
.net (I know I won't get no love for this one)
As far as how to link the "front end" and the "back end" the simplest as pointed out above is to use the plain ole bitcoind running in server mode and have your web app communicate with it via the JSON API. If you want to go more complex there are libraries which allow building custom applications which interface with the network. You should be able to write a simple php application which pulls some data from the bitcoind and displays it on a webpage pretty easy. Your "hello world" could be something like showing the current block height, and balance of your wallet. Useless but a good way to get your server setup, write some php code, and figure out how to communicate with the bitcoind. Everything else is just the same concept on a larger scale/scope.
Throwing a little theory into the discussion. Wait wait don't do to sleep yet it's not bad.
A good application should be based on the ntier model. So at the lowest level you have your datastore. This could be something as simple as a text file but more likely is a database (MySQL is the most common). Above that your have your low level plumbing which allows data access. Luckily you won't be writing this. Libraries to do that have existed for some time now. The next level up is your business logic. This is where bitcoind (or some custom bitcoin processing engine) fits in. It is the "smarts" of your project. The presentation layer should have no real "smarts". It is simply for pre-validating user input (make sure to validate again in the business layer, and watch out for SQL Injection), and displaying the data (looking shiny).
Likely all that made about no sense and your first app will be "1 tier" (no that isn't a real thing) where a single blob of code handles everything from presentation to writing to the database. You will find it becomes very difficult to maintain the application and even more difficult to keep it secure.