Обучение Java. Сервлеты

       

Инициализация сервлета


По умолчанию инициализация класса HttpServlet инициализирует сервлет и идентифицирует инициализацию. Чтобы проинициализировать сервлет определенным образом, переопределите метод init согласно той версии JSDK, которую используете: метод init(ServletConfig) для версии 2.0 и метод init() для версии 2.1. При переопределении метода init следуйте следующим правилам: 

  • В случае возникновения ошибки инициализации, которая приводит сервлет в состояние неработоспособности, вызывайте исключение UnavailableException.

    Как пример возникновения такого типа ошибок - невозможность установления необходимого сетевого соединения.

  • Не вызывайте метод System.exit. 
  • Только для версии 2.0: Сохраняйте параметр ServletConfig так, чтобы метод getServletConfig мог вернуть эту величину. Самый простой способ реализовать это - надо, чтобы новый метод init вызывал super.init.
  • Здесь приведен пример метода init для версии 2.1:

    public class BookDetailServlet ... {

    public void init() throws ServletException { BookDBFrontEnd bookDBFrontEnd = (BookDBFrontEnd)getServletContext().getAttribute( "examples.bookstore.database.BookDBFrontEnd");

    if (bookDBFrontEnd == null) { getServletContext().setAttribute( "examples.bookstore.database.BookDBFrontEnd", BookDBFrontEnd.instance()); } ... }

    Как видите метод init простой: он пытается получить параметр, и если параметр еще не получил значения, он создает его.

    Есть и другие инициализирующие задачи, которые сервлет может выполнять. Например, если сервлет использует базу данных, метод init может открыть соединение с ней и в случае неудачи вызвать исключение UnavailableException. Ниже приведен псевдокод о том, как мог бы выглядеть метод init:

    public class DBServlet ... {

    Connection connection = null;

    public void init() throws ServletException {

    // Соединяемся с базой данных перед запросами

    try { databaseUrl = getInitParameter("databaseUrl"); ...

    // Тем же способом берем параметры пользователя и пароля

    connection = DriverManager.getConnection(databaseUrl, user, password); } catch(Exception e) { throw new UnavailableException (this, "Could not open a connection to the database"); } } ... }



    Содержание  Назад  Вперед







    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий