logo
Ответы к экзамену по ПИИ

Дескриптор развертывания web-приложения. Параметры инициализации web-приложения: назначение, принципы применения.

Дескриптор развертывания является важной частью web-приложения, предназначенный для хранения его основных параметров.

Дескриптор развертывания приложения представляет собой xml-файл, корневым элементом которого является тег <web-app>. Дескриптор приложения может содержать достаточно много различных и повторяющихся элементов. Порядок элементов внутри <web-app> и их синтаксис определяется схемой XML.

В самом простом случае дескриптор развертывания состоит только из одного тега

<web-app>, внутри которого ничего нет. В нашем случае, имеется еще три тега: <displayname>, <welcome-file-list> и <welcome-file>.

Тег <display-name> не является обязательным, но если есть, то не может повторяться более одного раза. Этот тег предназначен для указания имени webприложения, которое потом может быть использовано в графическом интерфейсе. Для этого имени не требуется уникальность и его значение не оказывает влияния на работу приложения.

Тег <welcome-file-list> тоже не является обязательным и предназначен для указания списка стартовых страниц web-приложения. Имена файлов странниц указываются внутри тега <welcome-file-list> с помощью одного или более тегов <welcome-file>.

Может быть указано несколько стартовых страниц для одного webприложения. В этом случае поиск их осуществляется в указанном порядке.

Дескриптор развертывания web-приложения содержит информацию необходимую web-контейнеру для взаимодействия с приложением.

Параметры инициализации сервлета и их значения описываются в теле соответствующего тега <servlet> дескриптора развертывания приложения. На примере фрагмента дескриптора развертывания приложения, описывающего сервлет Hhh с одним па-раметром инициализации.

<servlet>

<servlet-name>Hhh</servlet-name>

<servlet-class>Hhh</servlet-class>

<init-param>

<param-name>fhtml</param-name>

<param-value>male.html</param-value>

</init-param>

</servlet>

Единственный параметр инициализации в примере имеет имя fhtml и значение male.html. Значение параметров инициализации всегда имеют строкой тип. В общем случае параметров инициализации может быть больше, чем один.

Получить значение параметра инициализации в сервлете можно с помощью метода getInitParameter интерфейса Servlet. На примере фрагмент сервлета, считывающего значение параметра fhtml.

public class Hhh extends HttpServlet implements Servlet {

protected void doGet(HttpServletRequest rq, HttpServletResponse rs)

throws ServletException, IOException {

String fhml = getInitParameter("fhtml");

rq.getRequestDispatcher("/" + fhml).forward(rq, rs);

}

}