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

Атрибуты системных объектов. Назначение. Принципы применения. Атрибуты контекста

Атрибуты являются динамически элементами контекста и могут быть установлены, изменены или удалены в методах сервлетов или в скриплетах JSP. На рис. 5.7 приводится фрагмент сервлета, использующего атрибуты контекста.

public void init() throws ServletException {

super.init();

this.Ab = new ABean("qwerty");

ServletContext sc = getServletContext();

String a1 = "a1";

Integer n1 = 3;

sc.setAttribute("atr_a1", a1);

sc.setAttribute("atr_n1", n1);

sc.setAttribute("atr_Ab", Ab);

}

protected void service(HttpServletRequest rq, HttpServletResponse rs)

throws ServletException, IOException {

ServletContext sc = getServletContext();

PrintWriter pw = rs.getWriter();

Enumeration en = sc.getAttributeNames();

String x;

while (en.hasMoreElements()) {

x = (String) en.nextElement();

pw.println("<br />" + x + "= " + sc.getAttribute(x));

}

}

В методе init сервлета осуществляется установка значений атрибутов с помощью метода контекстаsetAttribute. Первый параметр этого метода задает имя атрибута, второй – его значение. Обратите внимание на атрибут с именемatr_Ab– его значением является ссылка на объект java-класса с именемABean.

В методе serviceсервлета с помощью методов контекстаgetAttributeNames иgetAttributeв окно браузера выводится имена всех атрибутов и их значения. Следует знать, что некоторые атрибуты могут создаваться и устанавливаться самими webконтейнером. Для того чтобы не изменить или не удалить их, необходимо в документации сервера выяснить имена этих атрибутов и не использовать их в своих приложениях. При необходимости удалить атрибут используют методremoveAttribute.