What Kedar has written is right. (1) Basically web.xml is a deployment descriptor for application. When you have servlets in application you require 1.1) web.xml : Using web.xml developers can declare initialization parameters for Servlets (ServletConfig) and initialization parameters for application (ServletContext). Not only this but some times we also require init parameters for jsp. So they can be given to jsp using web.xml We can also configure session timeouts, listerners etc. So web.xml(deployment descriptor) is required 1.2) WEB-INF -> classes : In this directory we store servlets,java beans, utility classes. So this also required. 1.3) WEB-INF -> lib : Some times we use third party library i.e. jar files in our application. That time we keep these lib files in lib directory. If you dont want to use this directory you can keep library i.e. jar file in common/lib folder which is under Tomcat Home Directory.
So if you are using only jsp based application, then you might be having few java beans used with it. So these all directories are required.
"This specification defines a hierarchical structure used for deployment and packaging purposes that can exist in an open file system, in an archive file, or in some other form. It is recommended, but not required, that servlet containers support this structure as a runtime representation."
That says to me that WEB-INF is highly recommended, but not mandatory. It would be a mean exam question that asked about such fine distinctions though.