МТИ

Московский технологический институт

Дистанционное обучение в МТИКонтакты

Телефон: +7 (495) 648-62-26, 8 800 700 33 04

В своей деятельности Московский технологический институт сочетает фундаментальные традиции российского академического образования и последние достижения в области новых образовательных технологий. Благодаря этому студенты получают все преимущества современного образования: качество, доступность, непрерывность, технологичность и актуальность.

Адрес: Российская Федерация, 119334, Центральный федеральный округ,
Московская область, г. Москва, Ленинский проспект, дом 38а

Приемная комиссия НОУ ВО МТИ
Российская Федерация, 119334, Центральный федеральный округ,
Московская область, г. Москва, Ленинский проспект, дом 38а
+7 (495) 648-62-26, 8 800 700 33 04

Филиал НОУ ВО МТИ в городе Оренбурге
460018, Приволжский федеральный округ, Оренбургская область,
г. Оренбург, проспект Победы, дом 75г
+7 (3532) 30-50-07

Электронная почта: education@mti.edu.ru

Личный кабинет МТИ

Главная страница личного кабинета

Вход в личный кабинет

Помощь с тестами и экзаменами

Сдача дисциплин

Сдача дисциплин

Специальности

  • Факультет техники и современных технологий ;
  • Факультет экономики и менеджмента;
  • Колледж МТИ;
  • Moscow Business School.

Стоимость обучения 2018/2019

Стоимость обучения.

Ссылка на сайт

http://mti.edu.ru/

Личный кабинет

Ссылка на личный кабинет

http://mti.edu.ru/mobile

Материалы для МТИ

Как написать заявление, задание, план-график, план-проект для ВКР в МТИ?

Начальным этапом выполнения дипломной работы в МТИ является подготовка следующих документов: заявления, задания, план-проекта и план-графика. Разберемся на примерах что должны включать данные бланки.

Заявление на утверждение темы ВКР (образец)

Задание по ВКР (бланк)

 

План-график (пример)

План-проект (образец)

Нужна помощь с подготовкой ВКР? Обращайтесь к нам! Окажем поддержку в подготовке всей необходимой документации и выполним дипломную работу на высокий балл.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лабораторный практикум по Java для МТИ. Введение

Содержание

 

Введение

Данный лабораторный практикум посвящен изучению курса «Разработка приложений на Java» и включает в себя полный спектр задач по практическому созданию веб-приложений на языке Java и освоению технологий Java EE. Состав лабораторного практикума соответствует профессиональным стандартам по программированию и предназначен для развития у студентов и слушателей умений и навыков, необходимых для создания веб-приложений и для перехода к углубленному изучению Java EE.

Каждая лабораторная работа охватывает основные методы, используемые в современном программировании, а также включает практические задачи, входящие в учебные курсы современных ИТ-компаний, использующих Java в качестве языка прикладной разработки веб-приложений. В конце каждой лабораторной работы приводятся вопросы для самопроверки с целью закрепления ключевых моментов, изложенных в данной работе.

Пособие предназначено для слушателей программ переподготовки в сфере ИТ по
программам обучения «Разработка веб-приложений на Java» и «Разработка бизнес-приложений на Java».
В учебном классе или на рабочем месте слушателя необходимо установить следующее ПО:

  1. JDK версии 1.6 (включает JRE): ссылка на скачивание
  2. Maven 3: ссылка на скачивание
  3. Eclipse EE: ссылка на скачивание

Все необходимые библиотеки для разработки приложений на Java EE, далее
будет необходимо скачивать через maven.

Для самостоятельного изучения технологий Java предлагается воспользоваться
следующими онлайн-ресурсами:

  1. http://maven.apache.org/run-maven/index.html#Quick_Start – Сборка и создание проектов при помощи Maven.
  2. http://www.seostella.com/ru/category/spring-3-x/page-5.html – Разработка на базе
    фреймворка Spring 3.
  3. http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/ – Введение в технологию Servlets из Java EE.
  4. http://docs.oracle.com/javaee/ – Документация по технологии Java EE.
  5. http://bellsouthpwp.net/b/i/billsigg/jstl-quick-reference.pdf – Документация по технологии JSTL.
  6. http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm – Документация по технологии Java server pages(JSP).
  7. http://www.hibernate.org/docs – Документация по технологии Hibernate.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лабораторный практикум по Java для МТИ. Лабораторная работа №1

Содержание

 

Лабораторная работа №1
Установка Tomcat. Настройка сборщика Maven,
создание и запуск веб-приложения с помощью Maven

Цель работы

  1. Познакомиться с корпоративными средствами создания и сборки приложений Java
    EE.
  2. Создать веб-приложение посредством Maven и импортировать его под Eclipse.
  3. Разобраться в понятиях «зависимость» и «плагин» в Maven.

Программное обеспечение

  1. Eclipse
  2. Maven 3
  3. JDK 1.6

Необходимая теоретическая подготовка

  • Представление о разработке на языке Java и прохождение большей части вводных
    занятий по разработке на Java core (SE).
  • Умение скачать и произвести установку JDK.
  • Умение скачать и распаковать eclipse.
  • Умение скачать и распаковать maven.

Теоретическая часть

Для написания программного кода удобнее использовать специальную интегрированную среду разработки (Eclipse, IDE), которая обеспечивает удобное редактирование кода, подсветку синтаксиса, вызов компилятора (интерпретатора), средства отладки и другие инструменты, значительно упрощающие написание кода и сборку итоговых файлов.
Последнюю версию Eclipse можно скачать с официального сайта (ссылку см. выше, в
разделе Введение). По желанию можно выбрать и скачать другие среды разработки,
например, IntelliJ IDEA. Оба этих средства являются необходимыми средствами корпоративной разработки в различных компаниях.

Apache Maven POM (Проектно-Объектная Модель) – технология,
созданная для автоматизации сборок Java-проектов, основой которой является
XML-язык.

Maven – инструмент для сборки Java-проекта: компиляции, создания
jar, создания дистрибутива программы, генерации документации(
http://www.apache-maven.ru/)
.

Простые не командные проекты можно собирать и в командной строке. Если собирать
крупные проекты используя командную строку, то команды сборки будут большими,
поэтому их иногда записывают в bat или sh скрипты. Но такие скрипты зависят от платформы.
Для того чтобы избавиться от зависимости от платформы и упростить написание
скрипта, используют инструменты для сборки проекта.
Основные преимущества Maven:
— Независимость от определённой OS.
— Управление зависимостями проекта.
— Возможна сборка из командной строки любой системы.
— Хорошая интеграция с различными средами разработки.
— Декларативное описание проекта.
Maven обеспечивает декларативную сборку любого проекта – используя файл проекта
pom.xml, который содержится декларативное описание, а не отдельные команды.
Все задачи по обработке файлов Maven выполняет через плагины. В заданиях настоящего лабораторного практикума будут использоваться плагины для создания, сборки, а также запуска проекта.
Информация программного проекта, поддерживаемого фреймворком Maven, находится
в XML-файле pom.xml. При исполнении Maven проверяет, прежде всего, содержит
ли этот файл все необходимые данные и все ли данные правильно записаны. После этого производит запуск требуемых плагинов.
В Maven кроме понятий зависимости и плагина имеется понятие жизненного цикла.

Жизненный цикл проекта – список фаз, определяющий порядок
действий при его построении.

На рисунке ниже приведены основные фазы сборки проекта в Maven.

Рисунок 1. Основные фазы сборки проекта в Maven

В Maven также имеется стандартный жизненный цикл для чистки (cleaning) (запускается
командой clean), который осуществляет очистку проекта.
Pom-файл состоит из многих элементов. Основные из них – корневой сегмент и заголовок.

В Maven каждый проект идентифицируется парой groupId artifactId. Во избежание конфликта имен:

  • groupId – наименование организации или подразделения. Обычно записывают доменное имя организации или сайта проекта.
  • artifactId – название проекта.

Внутри тэга version, как можно догадаться, хранится версия проекта.
Тремя тегами groupId, artifactId, version (далее – GAV) можно однозначно идентифицировать jar-файл приложения или библиотеки. Если состояние кода для проекта не зафиксировано, то в конце к имени версии добавляется «-SNAPSHOT», что обозначает, что версия в разработке и результирующий jar-файл может меняться.
Тег <packaging>…</packaging> определяет, какого типа файл будет создаваться как результат сборки. Возможные варианты pom, jar, war, ear 2.

Зависимости

Зависимости – это очень важная часть pom.xml, которая хранит
список всех зависимостей, используемых в проекте и подпроектах.

Как и сам проект, любая библиотека идентифицируется тремя тэгами :
groupId, artifactId, version. Объявление зависимостей заключено в тэг <dependencies>…</dependencies>.

Тэг <build> является необязательным тегом.

Раздел, указанный тегом <build>, содержит полную информацию по
сборке приложения, который описывает, где хранятся исходные файлы, какие
ресурсы используются и какие плагины настроены.

Maven плагины позволяют задать дополнительные действия, которые будут выполняться
при сборке.
Для Maven существует еще одно понятие – репозиторий.

Репозиторий – специальное место для MAVEN, предназначенное для
хранения артефактов таких как jar-файлов, pom-файлов, javadoc, исходников.

Существуют следующие виды репозиториев:

  • Локальный репозиторий – по умолчанию расположен в <home директория>/.m2/repository – и является персональным для каждого пользователя.
    В локальном репозитории хранятся артефакты, которые были скачаны из центрального репозитория, либо были добавлены другими способами. При запуске команды install
    в проекте собирается архив jar, который и будет сохранён в локальный репозиторий.
  • Центральный репозиторий – расположен по адресу http://repo1.maven.org/maven2/
    и доступен для чтения для всех пользователей в интернете. Заполнением центрального репозитория занимаются команды разработки различных технологий и библиотек, которые и будут использоваться в дальнейшем.

Для запуска Maven из командной строки используется команда mvn.

Практическая часть

I. Настройка инструментариев и среды для разработки приложений на JAVA

Для того чтобы начать работу со сборщиком приложения Maven необходимо провести
настройку среды. Для этого нужно:

1. Установить переменную окружения M2_HOME.
Для этого необходимо в Windows кликнуть правой кнопкой мыши на Компьютер, затем
Свойства → Дополнительные параметры → Переменные среды → Системные
переменные и там добавить «M2_HOME» и «Путь к распакованному Maven».

2. Установить переменную окружения PATH.
В Windows в переменной PATH добавить к списку директорий строку
%M2_HOME%\bin».

3. Установить переменную окружения JAVA_HOME, которая указывает путь к
установленному JDK (по аналогии с предыдущими пунктами)

Результат должен быть таким же, как на рисунке ниже.

Рисунок 2. Настройка среды

4. Проверить корректность установки, набрав в командной строке mvn –version.
Требуемый результат должен быть таким, как показано на рисунке ниже.

Рисунок 3. Проверка работы Maven

Необходимо посмотреть вывод этой команды и проверить, что все пути к maven и
java верны. Если что-то не работает, причина, скорее всего, в неправильном указании пути к jdk. В случае ошибки необходимо внимательно проверить пути.

II. Создание веб-приложения

1. Выполнить команду для генерации шаблона приложения и дальнейшей разработки.

mvn archetype:generate -DgroupId={project-packaging} —
DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

Указать параметры project-packaging, project-name самостоятельно, то есть придумать
название проекта и пакет для его хранения.

2. Просмотреть и изучить структуру созданного шаблона приложения. Необходимо
разобраться и изучить его структуру, а так же доработать при необходимости.
Для этого необходимо открыть проводник, перейти в каталог созданного приложения
и просмотреть структуру приложения.
3. Перейти в каталог \src\main из сформированного приложения и создать папку java,
которая по умолчанию отсутствует для данного типа приложения. В ней будут находиться исходники разрабатываемых классов, которые буду использоваться при работе приложения в дальнейшем.
4. Необходимо собрать созданный проект и проверить его корректность сборки. Из
корня приложения запустить команду mvn clean install. Результат должен быть таким,
как показано на рисунке ниже, со статусом BUILD SUCCESS. Это означает, что приложение правильно создано и успешно компилируется в готовую сборку, которая
является конечным этапом разработки приложения.

Рисунок 4. Вывод работы maven в консоли

5. Найти и просмотреть файлы созданного веб-приложения (.war) в локальном
репозитории, собранные в архив <home директория> /.m2/repository/ <groupIdPath>/
<artifactId>/ <version>/ <artifactId>-<version>.war.
Эти файлы будут использоваться при запуске приложения на сервер или при
настройке зависимостей на собранные библиотеки в других приложениях.

Рисунок 5. Структура репозитория

III. Настройка приложения для среды разработки eclipse

1. Выполнить команду из корня созданного приложения:

mvn eclipse:clean eclipse:eclipse

Данная команда создает каркас приложения под ide eclipse при помощи запуска плагина
maven(eclipse:eclipse).
2. После успешного выполнения данной команды, необходимо запустить приложение
eclipse.

IV. Создание базового проекта

1. Зайти в пункт меню File → New и выбрать Java project. Теперь проект создан.
2. Необходимо провести настройку JAVA для созданного проекта, так как по
умолчанию приложение настроено на JRE, а следует перенастроить работу с JDK
(JRE в данном случае не подходит, т.к. является исполнительной средой для JAVA,
а не средой для разработчика).
3. Для настройки JAVA в среде Eclipse необходимо зайти в меню Windows → Preferences
(см. рисунок ниже).

Рисунок 6. Меню Windows Preferences

4. Выбрать Java →Installed JREs и добавить ранее установленный JDK как основой.

Рисунок 7. Настройка JDK в Eclipse

5. Выполнить команду import ранее созданного приложения при помощи maven.
Для этого нажать правой кнопки мыши в пустом поле вкладки Project Explorer и выбрать
команду Import. (см. рисунок ниже).

Рисунок 8. Выбор пункта меню Import

6. В появившемся меню выбрать тип проекта Exisiting projects into Workspace.

Рисунок 9. Меню импорта существующего проекта.

7. Найти проект, созданный при помощи maven, и нажать finish.

Если все действия выполнены правильно, то в итоге в боковом меню появится проект
(см. рисунок ниже).

Рисунок 10. Созданный проект в меню

V. Разработка и наполнение проекта

Созданный проект готов к разработке и наполнению.

1. Подключить дополнительный плагин для запуска веб-сервера jetty с помощью maven. Для этого необходимо открыть pom.xml и в раздел <build>… </build> добавить
плагин jetty (см. ниже). Сохранить изменения в проекте.
2. Запустить веб-сервер jetty
Для запуска веб-сервера jetty с помощью данного плагина из командной строки,
необходимо запустить команду mvn jetty:run.
По умолчанию сервер запускается по порту 8080. По успешному запуску из командной
строки, выведется сообщение об успешном запуске сервера (см. рисунок ниже).

Рисунок 11. Сообщение об успешном запуске сервера

Далее необходимо запустить веб-браузер, установленный на вашем компьютере, и
перейти по ссылке http://localhost:8080. Должна отобразиться успешно отработанная страница с вашего вебсервера (см. рисунок ниже).

Рисунок 12. Отображение страницы в веб-браузере

Отчет о выполнении работы
1. Отчет о проделанной работе с подробным описанием этапов выполнения работы,
что и для чего было сделано.
2. Файлы исходного кода созданного проекта.

Вопросы для самопроверки
1. Чем отличаются зависимости от плагинов в Maven?
2. В чем особенность этапа жизненного цикла clean и чем он отличается от запуска
плагина eclipse:clean?
3. Разобрать состав проектного файла pom.xml (ссылка). Какие теги за что отвечают?
4. Что такое локальный и удаленный репозиторий (maven repository)?
5. Какие есть особенность и параметры и плагина mvn archetype:generate?
6. Разобрать в настройке дополнительных параметров плагина maven jetty. Как применяются дополнительные параметры и на что они влияют?

Литература
1. http://www.apache-maven.ru/ – Документация по Maven.
2. http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin – Документация по
настройке Jetty-плагина для Maven.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лабораторный практикум по Java для МТИ. Лабораторная работа №2

Содержание

 

Лабораторная работа №2
Создание веб-приложения на базе Servlets и JSP

Цель работы

1. Познакомиться со средствами создания веб-приложений Java EE при помощи
технологии Servlets и JSP.
2. Создать веб-приложение используя технологии Servlets и JSP.
3. Запустить приложение в серверной среде и проверить его работу.

Программное обеспечение

1. Eclipse
2. Maven 3
3. JDK 1.6
4. Jetty

Необходимая теоретическая подготовка

  • Разобраться в основе технологии Servlets из Java EE.
  • Разобраться в технологии JSP.
  • Необходимо понимать процесс и этапы создания веб-приложения.

Теоретическая часть

Servlets
Для разработки используя технологий Servlets и JSP нужно научиться понимать, когда
стоит использовать данные технологии, а в каких – нет. Далее будет рассмотрено на
примеразх, для чего были придуманы сервлеты и страницы JSP и что они делают.
При работе с веб-сайтом все взаимодействия и работа с ним происходят через браузере.
За занавесом данного процесса, веб-сервер получает запросы от пользователя или
клиента и передает их своим функциям на выполнение (возможно, другим серверам) или производит обработки запросов с помощью обращения к данным, а также генерирует результаты для отображения в браузере различных обработок.

Сервлет – диспетчер процесса, который находится на веб-сервере и
обрабатывает различные входящие запросы и выдаёт исходящие ответы
на них.

Можно использовать сервлет для записи в поток, который добавляет содержимое к
веб-странице, но при этом, как правило, происходит смешение логики представления и
бизнес-логики.
Большинство Java-сервлетов, с которыми работают программисты, предназначены
для ответов на различные HTTP-запросы в рамках текущего веб-приложения. Следовательно,
каждому разработчику системы следует знать HTTP-классы из пакетов
javax.servlet и javax.servlet.http. При создании Java-сервлета обычно создается подкласс
класса HttpServlet.
Ниже приведен экземпляр создания сервлета.

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorld extends HttpServlet {
private ServletConfig config;
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
public void destroy() {
}
public ServletConfig getServletConfig() {
return config;
}
public String getServletInfo() {
return «A Simple Servlet»;
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType(«text/html»);
PrintWriter out = resp.getWriter();
out.println(«<html><head>»);
out.println(«<title>A Sample Servlet!</title>»);
out.println(«</head>»);
out.println(«<body>»);
out.println(«<h1>Hello, World!</h1>»);
out.println(«</body></html>»);
out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(req, resp);
}
}

Сам HTTP-протокол, не связан с Java. HTTP-протокол это просто спецификация, которая
определяет, какими должны быть запросы к серверу и его ответы. Сервлет заключают
эти конструкции протокола в Java-классы, имеющие удобные методы и которые облегчают работу с этими конструкциями в рамках языка Java.
Когда пользователь посылает запрос через URL сервлету, сервер преобразуют их в
HttpServletRequest и передают адресату, как это настроено в конфигурационных
файлах контейнера сервлетов или сервера, который используется в данный момент.
Когда сервер заканчивает работу с запросом, JRE упаковывает и собирает результаты
в HttpServletResponse и передает HTTP-ответ назад клиенту, пославшему текущий
запрос.
При обычном взаимодействии с веб-приложением посылается несколько запросов
и, соответственно, на них приходит несколько ответов. Все они обрабатываются в контексте сессии, которая в Java хранится в объект класса HttpSession. Так же можно обратиться к этому объекту при обработке запросов в классе и провести необходимые изменения, если требуется.

Контейнер, такой например как Jetty, управляет средой исполнения сервлетов.
Имеется возможность по настройке способов функционирования J2EE-сервера, который
необходимо настроить для функционирования сервлетов с внешним миром. Как будет
описано далее, используя различные конфигурации файлов контейнера, это обеспечивает мост от URL, введенного пользователем в браузере, к сервлетам, обрабатывающим запросы пользователей, в который транслируется URL. Во время работы приложения сервер загружает и инициализирует сервлеты, а так же управляет их жизненным циклом.

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

Жизненный цикл сервлета состоит из следующих шагов:
1. Если отсутствует сервлет в контейнере, тогда
Класс сервлета загружается самим контейнером.
Далее Контейнер используя класс сервлета создает его экземпляр.
Создание происходит вызовом метода init(). Этот метод инициализирует сам
сервлет и всегда вызывается первым, до того, как сервлет начинает обслуживать
запросы пользователей. За весь цикл жизни сервлета метод init() вызывается
только один раз.
2. Далее происходит обслуживание клиентских запросов. Запросы обрабатываются в
своих отдельных потоках. Сервер вызывает метод service() для каждого запроса
из запросов. Данный метод определяет тип запроса и отправляет его в
соответствующий этому типу метод для обработки. Разработчик должен
предоставить реализацию для всех этих методов, если есть такая необходимость.
Если поступил запрос, метод для которого не был разработан, будет вызван метод
родительского класса и завершается возвращением ошибки инициатору.
3. В случае если серверу необходимо удалить сервлет, он вызывает метод
destroy(), который снимает сервлет из эксплуатации.

JSP (JavaServer Pages)

JSP (JavaServer Pages) – это технология, которая позволяет
разработчикам легко и просто создавать содержимое, которое имеет
статические, динамические компоненты.

По сути, любая JSP страница является простым текстовым документом, который
содержит текст двух определённых типов:
1. статические данные, которые оформляются в виде одного из текстового формата
HTML, XML;
2. JSP теги и элементы, конструируют динамическое содержимое страницы.

Кроме этого могут использоваться различные библиотеки JSP-тегов, для добавления
Java-кода в статичное содержимое JSP-страниц. Это одна из наиболее применимых
технологий, так как весь код страницы транслируется в java-код сервлета с помощью компилятора JSP-страниц, а далее компилируется в байт-код виртуальной машины. Контейнеры сервлетов (Jetty или Tomcat), способные исполнять JSP-страницы, написаны на языке Java, который может работать на различных платформах.
Пример JSP-страницы приведен ниже.

<html>
<head>
<title> Очень простая страница JSP </title>
</head>
<body>
<h1> Очень простая страница JSP </h1>
<НЗ> Этот пример показывает, как работать с выражениями JSP</H3>
Текущая дата: <%= new java.util.Date()%>
<br>
Значение переданного параметра «param»: <%= request.getParameter(«param»)%>
</body>
</html>

Для настройки работы сервлета и JSP страниц на сервере необходимо описать его
в дескрипторе развертывания, который в технологии Java EE, является файл web.xml. В веб-приложениях Java используют файл дескриптора развертывания для определения
способа сопоставления URL с сервлетами, URL которых требуют аутентификации и других сведений. Этот файл называется web.xml и находится в WAR приложения в каталоге WEB-INF/. Это XML-файл, корневым элементом которого является <web-app>. Файл web.xml является частью стандарта сервлета для веб-приложений.
Пример дескриптора представлен ниже.

<?xml version=»1.0″ encoding=»ISO-8859-1″?>
<!DOCTYPE web-app PUBLIC «-//Sun Microsystems, Inc.//DTD Web Application
2.2//EN»
«http://java.sun.com/j2ee/dtds/web-app_2.2.dtd»>
<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

 

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

При получении сервером запроса для приложения используется дескриптор развертывания, который и сопоставляет URL запроса с кодом, который и обработавает запрос.

Практическая часть
1. Необходимо открыть ранее созданное веб-приложение и провести разбор каталога
создаваемого проекта. Структура каталога должна быть примерно такой, как
представлено на рисунке ниже.

Рисунок 13. Структура каталога создаваемого проекта

  • В каталоге src/main – будут располагаться исходники(/java) Java и файлы настройки
    создаваемого приложения(/resources).
  • Каталог webapp является носителем всей служебной информации по настройке создаваемого
    веб-приложения. В данном каталоге будут храниться jsp-файлы, а также
    конфигурационные настройки для корректного функционирования приложения на
    сервере.
  • Web.xml – является дескриптором веб-приложения.
  • В каталоге /target будут собираться и храниться до следующей сборки файлы создаваемого
    приложения, в том числе и собранный архив проекта, подготовленный
    для установки на сервер.

2. Необходимо создать пакет для исходников java.
3. Создать и реализовать сервлеты в соответствии с заданным вариантом задания (см. ниже).

Вариант 1.
Создать сервлет, который:

  • принимает 3 входящих параметра: имя, фамилию, отчество;
  • создает новый файл в любом заданном каталоге на жестком диске
  • создает новый файл по фамилии и записывает все переданные параметры в каждую
    строку в файле.

В качестве результата необходимо выдать html-страницу с указанием созданного
файла. Если файл с именем в качестве фамилии уже существует, требуется отобразить
html-страницу с ошибкой.

Вариант 2.
Создать сервлет, который:

  • в качестве параметра принимает имя картинки-файла, по которому, он должен открыть из заранее заданного каталога с картинками;
  • необходимо считать картинку в память выдать ее в качестве ответа на запрос.
    Если картинка с переданными именем файла не была найдена, требуется отобразить
    html-страницу с ошибкой.

4. Необходимо создать jsp-страницу, содержащую html-форму для отправки данных и
параметров сервлетам в соответствии с заданным вариантом задания.

Отчет о выполнении работы
1. Файлы исходного кода реализованной логики.

Вопросы для самопроверки
1. В чем отличия Jsp и Servlets?
2. Для чего нужен этап жизненного цикла сервлета init?
3. Что произойдет, если удалить или не создать файл web.xml?

Литература
1. http://www.tutorialspoint.com/jsp/jsp_form_processing.htm – Создание рабочих форм на Jsp.
2. http://orlova.rsue.ru/content/sst/j2ee2.htm – Разработка простейшей страницы JSP,
использующей JSP-выражения
3. http://www.bsu.by/Cache/pdf/87983.pdf – книга сервлетам.
4. http://theopentutorials.com/examples/java-ee/servlet/how-to-create-a-servlet-with-eclipseand-tomcat/ – создание сервлетов с нуля.
5. http://www.redbooks.ibm.com/redbooks/pdfs/sg245755.pdf — книга по разработке servletтов

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лабораторный практикум по Java для МТИ. Лабораторная работа №3

Содержание

 

Лабораторная работа №3
Настройка и подключение фильтров в веб-приложении

Цель работы

  1. Расширить знания по созданию лисенеров и веб-фильтров.
  2. Запустить приложение в серверной среде и проверить работу лисенеров и вебфильтров.

Программное обеспечение

  1. Eclipse
  2. Maven 3
  3. JDK 1.6
  4. Jetty

Необходимая теоретическая подготовка

  • Понимание технологии Servlets из Java EE.
  • Понимание теории создания лисенеров веб-приложения.
  • Понимание теории создания веб-фильтров.
  • Понимание теоретических причин использования и создания лисенеров и вебфильтров в приложениях.

Теоретическая часть

Сервлетный фильтр – это Java код, применимый для повторного
использования и позволяющий изменять содержание HTTP-запросов,
ответов и различную информацию, в заголовках HTML.

Основная цель сервлетного фильтра это занимается предварительной обработкой
запроса и/или последующей обработкой ответа, исходящего от сервлета.
Сервлетные фильтры используются для:

  • перехватывания инициации сервлета до того, как сам сервлет будет инициирован;
  • определения содержания запроса;
  • изменения http заголовков и данных из запроса;
  • модификации заголовков и данных ответа, в которые складывается получаемый ответ;
  • перехвата обработки сервлета после обращения к нему.

Примеры вызова сервлета с использованием фильтра и без использования приведены
ниже.Рисунок 14. Примеры вызова сервлета без фильтров и с их использованием

Фильтр может быть сконфигурирован так, что он будет обрабатывать один сервлет
или группу сервлетов. Базой для создания фильтров служит интерфейс javax.servlet.Filter, который должен реализовывать три метода (см. рисунок ниже).

Рисунок 15. Методы javax.servlet.Filter

В итоге, сервер вызывает метод init один раз, чтобы запустить фильтр, а после
вызывает метод doFilter столько раз, сколько запросов будет передано к данному
фильтру.
Ниже приведен экземпляр сервлетного фильтра.

import javax.servlet.*;
import java.io.IOException;
/**
*/
public class SimpleServletFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
String active = request.getParameter(«active»);
if(!»blockTheRequest».equals(active)){
filterChain.doFilter(request, response);
}
}
public void destroy() {
}
}

После того, как класс-фильтр создан, его следует установить в контейнер и «приписать»
к одному или нескольким сервлетам . Объявление и подключение фильтра проводится
в дескрипторе web.xml внутри элементов <filter> и <filter-mapping>. Для
подключения фильтра к сервлету следует использовать теги <filter-name> и
<servlet-name>.
Ниже приведен пример объявления фильтра.

<filter>
<filter-name>myFilter</filter-name>
<filter-class>servlets.SimpleServletFilter</filter-class>
</filter>

Ниже приведен пример подключения фильтра к сервлету.

<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>*.simple</url-pattern>
</filter-mapping>

В приведённом коде дескриптора web.xml объявлен класс-фильтр FilterConnect
с именем myFilter. Фильтр myFilter в разделе <filter-mapping> подключен к сервлету
ServletName.
Порядок, по которому контейнер сервлетов выстраивает цепочку фильтров для запроса,
определяется следующим набором правил:

  • цепочка, определяемая шаблоном url, выстраивается в таком порядке, в котором
    встречаются описания фильтров в web.xml;
  • последовательность сервлетов, заданных с помощью servlet-name, выполняется
    в аналогичной последовательности, в какой эти элементы присутствуют в дескрипторе
    web.xml.

Для связи фильтра с пользовательскими страницами HTML или группой сервлетов
следует использовать тег <url-pattern>. Фильтр будет применен ко всем вызовам.
Ниже приведен пример подключения фильтра к HTML-страницам.

<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>

Практическая часть
1. Необходимо открыть ранее созданное веб-приложение и создать новый package в
структуре в src/main/java с название com.test.servlet.filters.MyFirstFilter (см. рисунок
ниже).

Рисунок 16. Создание нового package в структуре в src/main/java

Код должен иметь следующее содержание:

import javax.servlet.*;
import java.io.IOException;
/**
*/
public class MyFirstFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
System.out.println(“MyFirstFilter is running!”);
filterChain.doFilter(request, response);

}
public void destroy() {
}
}

2. В web.xml следует настроить фильтры для работы по указанному url.

<filter>
<filter-name>MyFirstFilter</filter-name>
<filter-class>com.test.servlet.filters.MyFirstFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFirstFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>

3. Запустить приложение и проверить работу фильтра по указанному url в web.xml.
4. Создать собственный фильтр для приложения в соответствии с указанным вариантом
задания.

Вариант 1. Создать фильтр, который:

  • читает 3 входящих параметра (имя, фамилия, отчество);
  • логирует их в консоль.

Если один из параметров пустой, требуется отобразить html-страницу с ошибкой.

Вариант 2. Создать фильтр, который:

  • читает параметр в виде имя картинки-файла;
  • логирует параметр в консоль.

Если параметр пустой, требуется отобразить html-страницу с ошибкой.

Отчет о выполнении работы
1. Файлы исходного кода реализованной логики.

Вопросы для самопроверки
1. Для чего нужны фильтры?
2. Как создается последовательность из фильтров?
3. Что произойдет, если не вызывать метод doFilter в фильтре?

Литература
1. http://www.bsu.by/Cache/pdf/87983.pdf – книга сервлетам.
2. http://theopentutorials.com/examples/java-ee/servlet/how-to-create-a-servlet-with-eclipseand-tomcat/ – создание фильтров с нуля.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *