Qu'est-ce que WEB-INF utilisé dans une application web Java EE?

Je travaille sur une application web Java EE avec le code source suivant la structure:

src/main/java                 <-- multiple packages containing java classes
src/test/java                 <-- multiple packages containing JUnit tests
src/main/resources            <-- includes properties files for textual messages
src/main/webapp/resources     <-- includes CSS, images and all Javascript files
src/main/webapp/WEB-INF
src/main/webapp/WEB-INF/tags
src/main/webapp/WEB-INF/views

Le peu qui m'intéresse c'est WEB-INF - il contient web.xml, des fichiers XML pour la création de servlets, Printemps bean câblage des contextes et des JSP des balises et des points de vue.

J'essaie de comprendre quelles sont les contraintes/définit cette structure. E. g. serait des fichiers JSP toujours être à l'intérieur de WEB-INF ils ou pourraient-ils être quelque part d'autre? Et est-il autre chose qui pourrait aller dans WEB-INF? Wikipédia est La GUERRE des fichiers entrée mentionne classes pour les classes Java et lib pour les fichiers JAR - pas sûr que j'ai pleinement compris lorsque celles-ci seraient nécessaires, en plus des autres emplacements de fichiers source.