Читать «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">