Добавил:
Кафедра ВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Краденные лабы / 8308ДовженкоАЕ_лр2

.pdf
Скачиваний:
4
Добавлен:
08.04.2023
Размер:
289.1 Кб
Скачать

МИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА) Кафедра ВТ

ОТЧЕТ по лабораторной работе №2

по дисциплине «Распределенные системы и сети» Тема: Сервлеты

Студентка гр. 8308

 

Довженко А.Е.

Преподаватель

 

Бекенева Я.А.

 

 

 

 

 

Санкт-Петербург, 2022

Цель работы

Знакомство с технологией построения Web-приложений на основе сервлетов.

Задание к лабораторной работе

Реализовать сервлет, который при запуске приложения (метод GET)

отображал страницу, позволяющую ввести своё имя, фамилию и e-mail в

текстовые поля и по нажатию кнопки «отправить» (метод POST) выводил бы страницу, где показывалось, что именно было введено. Если какое-то поле было оставлено пустым, то выводить сообщение о том, что данное поле не заполнялось.

Результаты выполнения работы

При выполнении данной лабораторной работы было сформирован сервлет

NewServlet.java, содержащий методы doGet и doPost. Метод doGet вызывается при передаче HTTP-протоколом данных посредством запроса GET и формирует

HTML-сраницу с помощью разметки, позволяющую ввести данные в соответствующие поля ввода и по нажатию кнопки осуществить передачу,

которая осуществляется при помощи запроса POST. Передача обрабатывается методом doPost, который в свою очередь строит другую HTML-страницу,

содержащую введенные данные.

Полная распечатка файла NewServlet.java представлена в приложении А.

2

Иллюстрация работы Web-приложения

При обращении к сервлету посредством запроса методом doGet()

формируется страница, представленная на рис. 1

Рис 1

Рис 2

Код метода doGet(), формирующего представленную страницу:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter();

try {

//Создание HTML-страницы out.println("<html>");

out.println("<head><title>Ввод данных</title></head>"); out.println("<body bgcolor='#DCDCDC'>"); out.println("<h2>Введите данные</h2>");

out.println("<form method='post'>"); out.println("<label>Имя: "); out.println("</br><input type='text' name='name'>"); out.println("</br></label>"); out.println("</br><label>Фамилия: ");

out.println("</br><input type='text' name='surname'>"); out.println("</br></label>"); out.println("</br><label>Почта: "); out.println("</br><input type='mail' name='mail'>"); out.println("</br></br></label>");

out.println("<button type='submit'>Ввод</button>"); out.println("</form></body></html>");

} finally { out.close();

}

}

3

Данная страница позволяет ввести данные пользователя (рис. 2) и при нажатии кнопки «Ввод» вызывает метод doPost(), формирующий в качестве ответа на запрос другую страницу (рис. 3), содержащую введенные данные. При отсутствии входных данных выведется сообщение о незаполнении (рис. 4).

Рис 3

Рис 4

Код метода doPost(), обрабатывающего данные и формирующего страницу:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=UTF-8"); String name = request.getParameter("name");

String surname = request.getParameter("surname"); String mail = request.getParameter("mail");

PrintWriter out = response.getWriter(); // Получение потока для вывода ответа try {

out.println("<html>"); out.println("<head><title>Данные</title></head>"); out.println("<body bgcolor='#DCDCDC'>"); out.println("<h2>Введенные данные</h2>");

if (Objects.equals(name, ""))

out.println("<p>Поле имени не заполнялось.</p>");

else

out.println("<p>Имя: " + name + "</p>"); if (Objects.equals(surname, ""))

out.println("<p>Поле фамилии не заполнялось.</p>");

else

out.println("<p>Фамилия: " + surname + "</p>"); if (Objects.equals(mail, ""))

out.println("<p>Поле почты не заполнялось.</p>");

else

out.println("<p>Почта: " + mail + "</p>");

} finally { out.close();

}

}

4

Выводы.

В результате выполнения лабораторной работы ознакомилась с технологией построения Web-приложений на основе сервлетов.

Был реализован сервлет, который при запуске приложения (метод GET)

отображает страницу, позволяющую ввести своё имя, фамилию и e-mail в

текстовые поля и по нажатию кнопки «отправить» (метод POST) выводит страницу, где показывается, что именно было введено. Если какое-то поле было оставлено пустым, то выводится сообщение о том, что данное поле не заполнялось.

5

ПРИЛОЖЕНИЕ А

NewServlet.java

package rslab2;

import java.io.IOException;

import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet;

import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse;

// библиотечный класс для работы с потоками вывода import java.io.PrintWriter;

import java.util.Objects;

public class NewServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public NewServlet() { super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8"); // Задание типа кодировки для параметров запроса

response.setContentType("text/html;charset=UTF-8"); // Задание типа содержимого для ответа

PrintWriter out = response.getWriter(); // Получение потока для вывода ответа

try {

//Создание HTML-страницы out.println("<html>");

out.println("<head><title>Ввод данных</title></head>"); out.println("<body bgcolor='#DCDCDC'>"); out.println("<h2>Введите данные</h2>");

out.println("<form method='post'>"); out.println("<label>Имя: "); out.println("</br><input type='text' name='name'>"); out.println("</br></label>"); out.println("</br><label>Фамилия: ");

out.println("</br><input type='text' name='surname'>"); out.println("</br></label>"); out.println("</br><label>Почта: "); out.println("</br><input type='mail' name='mail'>"); out.println("</br></br></label>");

out.println("<button type='submit'>Ввод</button>"); out.println("</form></body></html>");

} finally { out.close();

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8"); // Задание типа кодировки для параметров запроса

response.setContentType("text/html;charset=UTF-8"); // Задание типа содержимого для ответа

6

String name = request.getParameter("name");

String surname = request.getParameter("surname");

String mail = request.getParameter("mail");

PrintWriter out = response.getWriter(); // Получение потока для вывода ответа

try {

out.println("<html>"); out.println("<head><title>Данные</title></head>"); out.println("<body bgcolor='#DCDCDC'>");

out.println("<h2>Введенные данные</h2>"); if (Objects.equals(name, ""))

out.println("<p>Поле имени не заполнялось.</p>");

else

out.println("<p>Имя: " + name + "</p>");

if (Objects.equals(surname, ""))

out.println("<p>Поле фамилии не заполнялось.</p>");

else

out.println("<p>Фамилия: " + surname + "</p>");

if (Objects.equals(mail, ""))

out.println("<p>Поле почты не заполнялось.</p>");

else

out.println("<p>Почта: " + mail + "</p>");

} finally { out.close();

}

}

}

7