Сервлет

Для работы приложения необходим сервлет jandcode.core.web.AppServlet, который должен работать в контейнере сервлетов, поддерживающим как минимум Servlet API 3.1.

Пример файла web.xml для приложения:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1"
         metadata-complete="true">

    <servlet>
        <servlet-name>jandcode-core-web</servlet-name>
        <servlet-class>jandcode.core.web.AppServlet</servlet-class>
        <init-param>
            <param-name>app</param-name>
            <param-value>app.cfx</param-value>
        </init-param>
        <init-param>
            <param-name>log</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>servlet.ref</param-name>
            <param-value>main.servlet</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <multipart-config/>
    </servlet>

    <servlet-mapping>
        <servlet-name>jandcode-core-web</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <error-page>
        <location>/showerror</location>
    </error-page>

</web-app>

Параметры сервлета

  • app - имя файла с конфигурацией приложения. Если параметр не указан, ищется файл app.cfx в каталоге WEB-INF

  • log - имя файла с настройками логирования logback. Если значение параметра не содержит пути и файл не найден в каталоге WEB-INF, он последовательно ищется в каталогах выше каталога WEB-INF. Если он вообще не найден или параметр не указан, то логирование полностью отключается

  • servlet.ref - имя атрибута контекста сервлета, в который будет помещена ссылка на сервлет. Если параметр не указан, то он игнорируется. Ссылка на сервлет позволяет организовать доступ к приложению сервлета (объекту jandcode.core.App) из другого сервлета:

    AppServlet mainServlet = (AppServlet) getServletContext().getAttribute("main.servlet");
    App mainApp = mainServlet.getApp();

web.xml не обязателен

При запуске web-приложения из командной строки или из ide, web.xml не используется. Его содержимое генерируется в момент запуска web-сервера.