- •Вопросы по java
- •Базовые типы данных и литералы. Операторы. Классы-оболочки.Операторы управления.
- •М ассивы.
- •Статические методы и поля. Модификатор native. Модификатор synchronized. Логические блоки.
- •Параметризованные классы. Параметризованные методы. Методы с переменным числом параметров.
- •Наследование. Использование final.
- •Использование super и this.
- •Переопределение методов и полиморфизм. Полиморфизм и расширяемость.
- •Клонирование объектов. “Сборка мусора” и освобождение ресурсов.
- •Интерфейсы.
- •Статический импорт.
- •Внутренние (inner) классы. Вложенные (nested) классы. Анонимные (anonymous).
- •Класс String.
- •Классы StringBuilder и StringBuffer.
- •Регулярные выражения.
- •Интернационализация текста.
- •Иерархия и способы обработки. Оператор throw.Ключевое слово finally.
- •Собственные исключения. Наследование и исключения. Отладочный механизм assertion.
- •Класс File. Байтовые и символьные потоки ввода/вывода. Предопределенные потоки.
- •Класс Scanner.
- •Коллекции. Общие определения.
- •Списки.
- •Множества.
- •Карты отображений.
- •Управление приоритетами и группы потоков. Управление потоками. Потоки-демоны.
- •Методы synchronized. Инструкция synchronized.
- •Интерфейс ServletContext. Интерфейс ServletConfig
- •Интерфейсы ServletRequest и HttpServletRequest. Интерфейсы ServletResponse и HttpServletResponse.
- •Обработка запроса. Многопоточность.
- •Стандартные элементы action. Jsp-документ.
- •Технология взаимодействия jsp и сервлета.
-
Обработка запроса. Многопоточность.
Распределенное приложение может быть эффективным только в случае, если оно способно принимать информацию от физически удаленных клиентов.
При нажатии кнопки типа происходит подтверждение формы и вызывается сервлет. В форме задан метод POST, при помощи которого происходит передача дан- ных формы в виде отдельных заголовков. Если не задавать этот метод, то по умолчанию будет использоваться метод GET, и данные формы будут передаваться через универсальный запрос (URL), в который к адресу будут добавлены значения соответствующих элементов.
Контейнер сервлетов будет иметь несколько потоков выполнения, распреде- ляемых согласно запросам клиентов. Вероятна ситуация, когда два клиента одновременно вызовут методы doGet() или doPost(). Метод service() должен быть написан с учетом вопросов многопоточности. Любой доступ к разделяемым ресурсам, которыми могут быть файлы, объекты, необходимо защитить ключе- вым словом synchronized. Можно синхронизировать и весь сервлет целиком, но причиной, почему это не делается, является возможность нахождения критической секции вне основно- го пути выполнения программы.
-
Стандартные элементы action. Jsp-документ.
Наиболее используемыми являются стандартные действия версии JSP 2.0. Они позволяют создавать правильные JSP –документы с помощью следующих тегов: 1) jsp:declaration – объявление, аналогичен тегу <%! ... %>; 2) jsp:scriptlet – скриптлет, аналогичен тегу <% ... %>; 3) jsp:expression – скриптлет, аналогичен тегу <%= ... %>; 4) jsp:text – вывод текста; 2 jsp:useBean – позволяет использовать экземпляр компонента Java Bean. Если экземпляр с указанным идентификатором не существует, то он будет создан с областью видимости page (страница), request (за- прос), session (сессия) или application (приложение). Объявля- ется, как правило, с атрибутами id (имя объекта), scope (область ви- димости), class (полное имя класса), type (по умолчанию class). <jsp:useBean id=”ob” scope=”session” class=”test.MyBean” />
Создан объект ob класса MyBean, и в дальнейшем через этот объект можно вызывать доступные методы класса. Специфика компонентов JavaBean в том, что если компонент имеет поле field, экземпляр ком- понента имеет параметр field, а метод, устанавливающий значение, должен называться setField(type value), возвращающий значе- ние – getField(). package test; public class MyBean { private String field = "нет информации"; public String getField() { return info; } public void setField(String f) { field = f; } } 5) jsp:setProperty – позволяет устанавливать значения полей ука- занного в атрибуте name объекта. Если установить значение property в «*», то значения свойств компонента JavaBean будут установлены таким образом, что будет определено соответствие между именами параметров и именами методов-установщиков (setter-ов) ком- понента: <jsp:setProperty name=”ob” property=”field” value=”привет” /> e) jsp:getProperty – получает значения поля указанного объекта, преобразует его в строку и отправляет в неявный объект out: <jsp:getProperty name=”ob” property=”field” /> f) jsp:include – позволяет включать файлы в генерируемую страницу при запросе страницы: <jsp:include page=”относительный URL” flush=”true”/> g) jsp:forward – позволяет передать запрос другой странице: <jsp:forward page=”относительный URL”/> h) jsp:plugin – замещается тегом <OBJECT> или <EMBED>, в зави- симости от типа браузера, в котором будет выполняться подключаемый апплет или Java Bean. i) jsp:params – группирует параметры внутри тега jsp:plugin. 6) jsp:param – добавляет параметры в объект запроса, например в эле- ментах forward, include, plugin. 7) jsp:fallback – указывает содержимое, которое будет использовать- ся браузером клиента, если подключаемый модуль не сможет запустить- ся. Используется внутри элемента plugin. В качестве примера можно привести следующий фрагмент: <jsp:plugin type=”bean | applet” code=”test.com.ReadParam”
width=”250” height=”250”> <jsp:params> <jsp:param name=”bNumber” value=”7” /> <jsp:param name=”state” value=”true” /> </jsp:params> <jsp:fallback> <p> unable to start plugin </p> </jsp:fallback> </jsp:plugin> Код апплета находится в примере 5 главы 11, и пакет, в котором он объявлен, должен быть расположен в корне папки /WEB-INF, а не в папке /classes. Элементы <jsp:attribute>, <jsp:body>, <jsp:invoke>, <jsp:doBody>, <jsp:element>, <jsp:output> используются в основном при включении в страницу пользовательских тегов.
JSP-документ Предпочтительно создавать JSP-страницу в виде JSP-документа – коррект- ного XML-документа, который ссылается на определенное пространство имен, содержит стандартные действия JSP, пользовательские теги и теги ядра JSTL, XML-эквиваленты директив JSP. В JSP-документе вышеперечисленные пять те- гов неприменимы, поэтому их нужно заменять стандартными действиями и кор- ректными тегами. JSP-документы необходимо сохранять с расширением .jspx. Директива taglib для обычной JSP: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> для JSP-документа: <jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core"/> Директива page для обычной JSP: <%@ page contentType="text/html"%> для JSP-документа: <jsp:directive.page contentType="text/html" /> Директива include для обычной JSP: <%@ include file="file.jspf"%> для JSP-документа: <jsp:directive.include file="file.jspf" />