The jobs of web-container is,
Communication support: The container provides an easy way for your servlet to talk to your web server. You do not have to build ServerSocket, lister port, create streams, etc. the container knows the protocol between the web server and itself, so that your servlet need not worry about the API between webserver and your own application code.
Life cycle management: The container controls the life and death of your servlet. It takes care of loading clsses, instantiating and initializing the servlets, invoking the servlet methods, and making servlet instance illegible for garbage collection.
Multithreading support: The container automatically creates a new thread for every servlet request it receives.
Declarative security: with the container you get to use an XML deployment descriptor to configure security without hard code.
JSP support: The container support jsp code and it convert the JSP to real java(servlet) code.