Атрибуты системных объектов. Назначение. Принципы применения.
Атрибуты контекста
Атрибуты являются динамически элементами контекста и могут быть установлены, изменены или удалены в методах сервлетов или в скриплетах 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.