Ответ 1
- web.xml. Стандартный дескриптор развертывания, определенный Java EE (в частности, Servlet JSR, но используемый многими JSR). Он используется для указания метаданных, используемых веб-контейнером, для развертывания приложения переносимым образом через серверы приложений (например, конечная точка URL сервлета). В Java EE 6 и выше это необязательно (в зависимости от технологий, которые вы используете), когда метаданные предоставляются аннотациями в вашем Java-коде, например @WebServlet.
- glassfish-web.xml. Каждый сервер приложений предлагает специфические для реализации функции. Чтобы настроить эти функции для GlassFish, используйте glassfish-web.xml. Это задокументировано в GlassFish Documentation.
- sun-web.xml: устаревший дескриптор развертывания сервера приложений и заменен на glassfish-web.xml. Уже не имело смысла иметь это имя после того, как Oracle была приобретена Oracle. Это имя файла по-прежнему поддерживается для обратной совместимости, но вы должны перейти на glassfish-web.xml.
Вам может понадобиться файл web.xml или нет. Это зависит от функций Java EE, которые вы используете. По умолчанию не используйте ни один из этих файлов и просто используйте аннотации Java EE, такие как @WebServlet. Когда вы создаете свое приложение и, возможно, начинаете использовать некоторые функции, для которых требуется файл web.xml(например, для определения JavaServer Faces FacesServlet), используйте файл web.xml. Что касается glassfish-web.xml, вы используете его только, если у вас есть специальные функции GlassFish для настройки для вашего приложения.
Учебник Java EE также является хорошим способом изучения Java EE и в комплекте с Java EE 7 SDK вместе с GlassFish 4.