Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 415

Ильдар Шаукатович Хабибуллин

Аннотации сервлета

Всю конфигурацию сервлета типа HttpServlet, которая была описана в предыдущих пунктах и которая записывается обычно в конфигурационный файл web.xml, тожно сделать с помощью аннотаций прямо в коде сервлета. В таком случае конфигурационный файл web.xml становится необязательным. Если же файл web.xml присутствует, то записанные в нем значения будут перекрывать значения, указанные в аннотации. Это удобно в тех случаях, когда надо изменить конфигурацию сервлета без его перекомпиляции.

Аннотации находятся в пакете javax.servlet.annotation, который надо указать в операторе import. Вот как они выглядят:

import javax.servlet.*;

import j avax.servlet.annotation.*;

@WebServlet(name="informer", urlPatterns={"/InfoServlet"}, initParams={

@WebInitParam(name="unit", value="1"), @WebInitParam(name="invoke", value="yes")

})

public class InfoServlet extends HttpServlet{

// Код сервлета .. .

}

Аннотация @WebServlet соответствует элементу <servlet> конфигурационного файла web.xml. Если в аннотации нет параметра name, то имя сервлета будет совпадать с полным именем класса сервлета, включая его пакет. Параметр urlPatterns можно заменить параметром value. Нельзя записывать оба эти параметра в одной аннотации, хотя один из них обязательно должен присутствовать.

Аннотация @WebInitParam соответствует элементу <init-param>. Она содержит имя и значение начального параметра. Совокупность начальных параметров записывается в аннотации @WebServlet параметром initParams, в фигурных скобках.

Пример сервлета класса HttpServlet

Приведем пример сервлета, осуществляющего регистрацию клиента Web-приложения- некоторой системы дистанционного обучения (СДО). Сервлет RegPrepServlet

принимает запрос от HTML-формы, соединяется с базой данных, заносит в нее полученную информацию и отправляет клиенту подтверждение регистрации в виде страницы HTML, содержащей форму для выбора учебного курса. В листинге 26.4 приведена HTML-форма регистрации клиента. Ее вид показан на рис. 26.2.

Листинг 26.4. Форма регистрации клиента СДО

<html><head>

<^^е>Регистрация</title>

<META http-equiv=Content-Type

content="text/html; charset=windows-1251">

</head>

<body><h2 align="center">Дистанционная система обучения Qn,0</h2> <р>Для регистрации занесите сведения о себе в следующие поля:</р>

<br>

<form method="POST" action=

"">

<pre>

Фамилия: <input type="text" size="40" name="surname">

Имя: <input type="text" size="40" name="name">

Отчество: <input type="text" size="40" name="secname">

E-mail: <input type="text" si ze="4 0" name="addr">