Примечания к исследованию Jsp&Servelet (1)
Автор:Eve Cole
Время обновления:2009-07-02 17:15:10
1.1. Написание программы-сервлета
1.2 Написание программы Jsp
1.3. Компиляция программы сервлетов
1.4. Упаковка программы сервлетов и Jsps
1.5 Создайте дескриптор развертывания
1.1. Написание программы-сервлета
Проблема Вы хотите написать сервлет как веб-приложение. Решение Напишите класс Java, который наследуется от javax.servlet.http.HttpServlet. Сначала необходимо залить пакет классов servlet.jar. Для компиляции этой программы сервлета вам понадобится библиотека классов.
Обсуждение Программа-сервлет — это класс Java, который используется для ответа на динамический контент, запрашиваемый клиентом через сеть. Если вы знакомы с (CGI)-программами, то сервлеты технологии Java могут полностью заменить программы CGI. Часто называемая веб-компонентом, программа сервлетов, выполняемая в среде выполнения, будет предоставляться контейнером сервлетов, таким как Tomcat и Bea WebLogic.
Примечание. Веб-контейнер может быть
Сервлеты устанавливаются в веб-контейнер как часть веб-приложения. Это приложение будет содержать WEB-ресурсы. Подобно страницам HTML, изображениям, мультимедийным клипам, сервлетам, файлам конфигурации jsps, xml, классам среды выполнения Java и библиотекам классов. Когда веб-приложение развертывается в веб-контейнер, контейнер генерирует и загружает экземпляры класса сервлета Java в JVM. . Обрабатывать запросы сервлетов.
Все сервлеты наследуют интерфейс javax.servlet.Servlet. Программисты, разрабатывающие веб-приложения, пишут специальный сервлет.
Унаследованный от javax.servlet.http.HttpServlet, абстрактный класс реализует интерфейс сервлета и специально разработан для обработки HTTP-запросов.
Когда веб-контейнер генерирует экземпляр сервлета, его основная последовательность следующая:
1. Контейнер сервлетов сначала вызывает метод init() сервлета, который инициализирует ресурс, который будет использовать сервлет. Зарегистрирован как регистратор. Этот метод init() будет вызываться только один раз в течение всего жизненного цикла сервлета.
2. Метод init() инициализирует объект, который наследует интерфейс java.servlet.ServletConfig. Этот объект позволяет сервлету инициализировать параметры, объявленные в дескрипторе развертывания. ServletConfig также предоставляет сервлету доступ к объекту javax.servlet.ServletContext, который сервлет может использовать для регистрации информации, отправки запросов к другим веб-компонентам и использования других веб-ресурсов в том же приложении.
3. Контейнер сервлетов вызывает метод service() этого сервлета, чтобы ответить на некоторые запросы сервлета. На основе HttpServlets функция service() автоматически вызывает соответствующий метод HTTP для обработки запроса, вызывая метод doGet() или doPost() сервлета. В нескольких примерах пользователь отправляет запрос Post, а сервлет отвечает на запрос, выполняя метод doPost().
4. При вызове методов doPost() и doGet() двух основных HttpServlet контейнер сервлетов генерирует объекты javax..servlet.http.HttpServletRequest и HttpServletResponse и передает их в качестве параметров этим методам обработки запросов.
http://www.downcodes.com/
5. Управлять жизненным циклом сервлета или определять время обработки этого экземпляра сервлета по запросу запроса и время существования на виртуальной машине Java. Когда контейнер сервлетов начинает удалять сервлет, будет вызван метод Destroy() сервлета, в котором могут быть освобождены все ресурсы, такие как соединение с базой данных.
Пример Типичный HttpServlet
пакет com.mydev;
импортировать java.io.IOException импорт java.io.PrintWriter;
импортировать java.util.Enumeration; импортировать javax.servlet.ServletException;
импортировать javax.servlet.http.HttpServlet;
импортировать javax.servlet.http.HttpServletRequest;
импортировать javax.servlet.http.HttpServletResponse;
//Необходимо наследовать интерфейс HttpServlet
публичный класс FirstServlet расширяет HttpServlet ...{
public void doGet (запрос HttpServletRequest, ответ HttpServletResponse) выдает ServletException, java.io.IOException ... {
//устанавливаем MIME-тип ответа, "text/html"
response.setContentType("текст/html");
//используем PrintWriter для отправки текстовых данных клиенту, запросившему
//сервлет
java.io.PrintWriter out = response.getWriter();
//Начинаем сборку HTML-контента out.println("<html><head>");
out.println("<title>Страница справки</title></head><body>");
out.println("<h2>Пожалуйста, отправьте свою информацию</h2>");
//убедитесь, что метод="post" чтобы метод службы сервлета
// вызывает doPost в ответ на эту форму submit
out.println( "<form Method="post" action ="" + request.getContextPath() + "/firstservlet" >");
out.println("<table border="0"><tr><td valign="top">");
out.println("Ваше имя: </td> <td valign="top">");
out.println("<input type="text" name="firstname" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Ваша фамилия: </td> <td valign="top">");
out.println("<input type="text" name="lastname" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Ваш адрес электронной почты: </td> <td valign="top">");
out.println("<input type="text" name="email" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("<input type="submit" value="Отправить информацию"></td></tr>");
out.println("</table></form>"); out.println("</body></html>");
}
//дополучить
public void doPost (запрос HttpServletRequest, ответ HttpServletResponse) выдает ServletException, java.io.IOException ... {
//отображаем имена и значения параметров
Перечисление paramNames = request.getParameterNames( );
Строка имя_параметра;
//здесь будет храниться имя параметра
логическое пустоеEnum = ложь;
если (! paramNames.hasMoreElements())
пустойEnum = правда;
//устанавливаем MIME-тип ответа, "text/html"
response.setContentType("текст/html");
//используем PrintWriter для отправки текстовых данных клиенту
java.io.PrintWriter out = response.getWriter();
//Начинаем сборку HTML-контента
out.println("<html><head>");
out.println("<title>Отправленные параметры</title></head><body>");
если (emptyEnum) ...{
out.println( "<h2>К сожалению, запрос не содержит параметров</h2>");
} еще ...{
out.println( "<h2>Вот отправленные значения параметров</h2>");
}
while(paramNames.hasMoreElements()) ...{
parName = (String) paramNames.nextElement( );
out.println( "<strong>" + parName + "</strong> : " + request.getParameter(parName));
out.println("<br />");
}//пока
out.println("</body></html>");
}
//допост
}
Вы можете заметить, что doGet() и doPost() выбрасывают ServletException и IOException. Это потому, что response.getWriter() выдает исключение ввода-вывода.
http://blog.csdn.net/bruceleey/archive/2007/02/07/1503843.aspx