PHP and scripts run through CGI (not FastCGI) are about the only things that work this way. Almost everything else has a long-lived process that runs & responds to requests. A typical web application will have a static server (Apache, Nginx...) in front, handling client requests directly. For static files (Javascript, CSS and so on), it'll just send the file; for things that require your app to respond, it will pass the request on to your application & then forward the response to the client.
One example would be a simple Python/Django install. We have Apache running on the server. As part of our Apache configuration, we're running mod_wsgi. The mod_wsgi module allows Apache to fire up a number of Python interpreters that have long-running jobs in them. When a request comes in, Apache sees that it should go to Python & hands the request over to mod_wsgi and mod_wsgi passes the request into your already loaded & running Django application.
Another example would be a Ruby on Rails application running behind Nginx and Mongrel. Mongrel is a web server that lets Ruby applications live inside of it. It's really good at serving dynamic pages but it's a little slow at static stuff, so we set up Nginx for that. Nginx serves the static content (like Apache did in the last example) but whenever a request for one of the dynamic pages comes in, Nginx just acts as a proxy and forwards the request to Mongrel.
There's a minor difference between the two cases but it's not really worth delving into unless you're handling server architecture for a high-volume website.
A third setup comes in with Node.js. With Node, the web server is your application.