Java servlets are programs that run on a web server, acting as a middle layer between client requests and server applications, allowing for dynamic web content creation. They operate through a defined life cycle, including initialization, request processing, and destruction, and are preferred over CGI for better performance and resource management. Session tracking in servlets allows for maintaining user states across requests, using various techniques such as URL rewriting and HTTP sessions.