Подтвердить что ты не робот

Мне действительно нужен web.xml для веб-приложения на основе сервлета?

Я не работаю над веб-проектами в реальном мире. В университете мы использовали оба сервлета и Spring для веб-разработки Java. В обоих проектах нам были предоставлены уже настроенные файлы web.xml, и мы делали в них лишь незначительные изменения. Теперь мне нужно создать веб-приложение с нуля. Я создал новый класс Servlet в Eclipse и не создал автоматически web.xml. Затем я googled, и я читал из нескольких ресурсов, что web.xml действительно не нужен, но это рассуждение было поставлено в пару предложений, поэтому я не уверен, что использование аннотаций вместо web.xml не будет проблемой. Я буду очень рад, если нет необходимости настраивать web.xml, потому что я не настроил его самостоятельно, и я хочу больше сосредоточиться на бизнес-логике.

Заранее благодарю!

4b9b3361

Ответ 1

Вам не нужен файл web.xml, если у вас есть контейнер, поддерживающий последние спецификации j2ee. Здесь - ссылка на простой пример сервлета, который использует аннотацию и здесь вы может найти то же самое для Spring MVC; Я размещаю здесь пример для удобства

public class MyWebApplicationInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext container) {
        ServletRegistration.Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet());
        registration.setLoadOnStartup(1);
        registration.addMapping("/example/*");
    }

}

Здесь - еще одна ссылка, которая показывает, как использовать другие доступные аннотации (@ServletFilter, @WebServletContextListener); вы можете загрузить форму спецификации здесь, чтобы получить более подробный обзор аннотаций, доступных через j2ee.

Ответ 2

Начиная с сервлета 3, web.xml не требуется. Вы захотите использовать что-то вроде Tomcat 7 или 8 (лучший выбор). Для сырых сервлетов это хорошая отправная точка.

Если вы хотите использовать современный Spring, Grails 3 - отличный способ. Эта сторона ставит все эти проблемы, и Grails является очень продуктивной основой для веб-разработки. Вы можете думать об этом как Ruby on Rails, построенный поверх Spring и Hibernate.

В этот момент вам не нужно писать какой-либо web.xml для настройки, если вы не используете фреймворк, который ему нужен. Я не знаю о Spring mvc, но Grails не требует от вас этого, и он использует большую часть того, что вы уже использовали для использования.

Ответ 3

<build>
    <finalName>yourapp</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

В pom.xml код шаблона запрещает Maven вызывать ошибку, потому что нет файла web.xml. В веб-приложениях Java требуется файл web.xml; однако, поскольку спецификация сервлета 3.0 (реализована в версиях Tomcat 7 и более поздних версий), она больше не требуется.

Ответ 4

Другой способ (Spring 3.1+) -

Реализация абстрактного базового класса WebApplicationInitializer с именем AbstractDispatcherServletInitializer упрощает регистрацию DispatcherServlet путем простого переопределения методов для указания отображения сервлета и расположения конфигурации DispatcherServlet -

public class MyWebAppInitializer extends AbstractDispatcherServletInitializer {

    @Override
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }

    @Override
    protected WebApplicationContext createServletApplicationContext() {
        XmlWebApplicationContext cxt = new XmlWebApplicationContext();
        cxt.setConfigLocation("/WEB-INF/spring/dispatcher-config.xml");
        return cxt;
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }

}

Ответ 5

Независимо от того, нужен ли вам web.xml, зависит от того, какую спецификацию сервлета вы требуете в своем приложении. Если вы создадите приложение с использованием спецификации 3.0, вы можете использовать аннотации для объявления своих сервлетов и развертывания в контейнере без необходимости использования файла web.xml. Это было сделано как часть JSR-315.

Ответ 6

Используйте Spring Boot, который будет управлять контейнером и всей конфигурацией шаблона для вас. Вы можете создать готовый к запуску скелет с Initializr.

Ответ 7

Нет, нет web.xml для servlet based application, если вы используете версию сервлета >3.0 и tomcat 7, поскольку она не будет работать в предыдущих версиях tomcat.

Аннотации представляют метаданные. Если вы используете аннотацию, дескриптор развертывания (файл web.xml) не требуется. Посмотрите Здесь для всех доступных аннотаций.