Servlets are an effective replacement for CGI. Servlets provide a way to generate dynamic documents that are easier to write and faster to run. CGI makes a new process for every request, making it slower & more memory-expensive. Servlets solve these problems. As regards ur 2nd question, most web applications have an authentication mechanism, which relies on either cookies or database. If u need further information on how this comes about, let me know.