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

web-programmirovanie_metodicheskie_ukazania

.pdf
Скачиваний:
68
Добавлен:
09.02.2015
Размер:
606.97 Кб
Скачать

Методические указания по выполнению лабораторных работ по разработке web-приложений (2014)

журналы:

void log(String msg) — запись сообщения в журнал web-сервера.

void log(String message, Throwable t) — запись в журнал web-сервера сообщения об ошибке.

По умолчанию журналы находятся в папке «log» сервера.

6.2.2. Фильтры

Интерфейс фильтров — javax.servlet.Filter. Основные методы:

public void init(FilterConfig filterConfig) - инициализация фильтра. public void doFilter(ServletRequest request, ServletResponse

response, FilterChain chain) - исполнение фильтра. public void destroy() - уничтожение фильтра.

Подробнее можно ознакомиться по адресу: http://docs.oracle.com/javaee/6/api/javax/servlet/Filter.html

Настройка фильтров осуществляется в дескрипторе развертывания web.xml, там указываются имя фильтра, на какие страницы/сервлеты он действует и каким классом реализуется.

<filter> <display-name>LogFilter</display-name> <filter-name>LogFilter</filter-name>

<filter-class>etu.edu.web.LogFilter</filter-class> </filter>

<filter-mapping> <filter-name>LogFilter</filter-name> <url-pattern>/auth.jsp</url-pattern>

</filter-mapping>

Простейший класс реализации фильтра, обеспечивающий вывод ip-адреса пользователя и URL, к которому он обращается приведён ниже:

public class LogFilter implements Filter { private ServletContext conteхt; public LogFilter() {}

public void destroy() {}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chаin) throws IOException, ServletException {

HttpServletRequest httpReq = (HttpServletRequest)

request;

String ip = httpReq.gеtRemotеAddr(); String uri = httpReq.gеtRequestURI();

- 31 -

Методические указания по выполнению лабораторных работ по разработке web-приложений (2014)

context.log("ip: " + ip + ", uri: " + uri);

сhain.doFilter(request, rеspоnsе);

}

public void init(FilterConfig сonfig) throws ServletException

{

context = config.getServletContext();

}

}

Рекомендуется в лабораторной работе создать класс фильтрации с использованием «Wizard» (мастера NetBeans) и затем скорректировать логику работы фильтра.

6.2.3. AJAX-запрос

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

<script>

function loadXMLDoc() { var xmlhttp;

if (window.XMLHttpRequest)

// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest();

else // code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange=function() {

if (xmlhttp.readyState==4 && xmlhttp.status==200) // Action to do

document.getElementById("RESULT").innerHTML=xmlhttp.respo nseText;

}

xmlhttp.open("GET","SERVER_URL",true); xmlhttp.send();

}

</script>

В данном примере обращение происходит к SERVER_URL, в качестве результата ожидается HTML, который записывается в тег с идентификатором RESULT. По адресу SERVER_URL может находиться сервлет или JSP-страница, которые генерируют не целую страницу, а фрагмент HTML.

Для работы скрипта необходимо определить DIV для хранения результата и объект или таймер, который будет вызывать AJAX-запрос.

- 32 -

Методические указания по выполнению лабораторных работ по разработке web-приложений (2014)

<div id="RESULT">Текст для замены</div>

<button type="button" onclick="loadXMLDoc()">Вызов AJAXзапроса</button>

6.2.4. Таймеры в JavaScript

В JavaScript есть возможность создавать и останавливать таймеры.

Создание таймера: setInterval(function(){FUNCTION_NAME()},TIME_INTERVAL).

<script>

var myVar = setInterval(function(){myTimer()},1000); function myTimer() {

...

}

</script>

Остановка таймера: clearInterval(TIMER_NAME).

<button onclick="clearInterval(myVar)">Stop time</button>

6.3. Решение задач лабораторной работы

Дополнительных методов не требуется. Достаточно будет правильно выполнить основные этапы.

6.4. Задание

Необходимо реализовать журналирование всех действий пользователя и донастроить «Личный кабинет». Основные требования:

1.Все действия пользователя в интернет-магазине журналируются (в журнале указаны дата действия, на какой странице оно было выполнено, описание действия, его параметры). Журнал ведётся с использованием штатных средств Log4j.

2.В «Личном кабинете» реализована возможность оставлять свои комментарии и впечатления от использования интернет-магазина. Страница сохранения комментариев и их просмотра работает с использованием AJAX (страница не перезагружается после добавления комментария, комментарий немедленно отображается в списке комментариев пользователя), комментарии пользователя сохраняются в БД с использованием Hibernate. Для каждого комментария в БД хранятся дата-время и текст.

3.В «Личном кабинете» отображаются текущие дата и время с учётом локализации.

4.Все страницы поддерживают локализацию.

Заключение

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

- 33 -

Методические указания по выполнению лабораторных работ по разработке web-приложений (2014)

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

Настоятельно рекомендуется оформлять программный код с использованием соглашений о стиле программирования на Java:

http://www.literateprogramming.com/javaconv.pdf

После успешного выполнения всех лабораторных работ преподавателю необходимо предоставить:

1.архив проекта со всеми исходными кодами;

2.архив БД;

3.«скриншоты» всех страниц web-приложения;

4.руководство пользователя интернет-магазина.

Оглавление

 

Лабораторная работа №1. Разработка приложений с использованием сервлетов ...............

3

Лабораторная работа №2. Разработка приложений с использованием Java Server Pages

 

(JSP) ...........................................................................................................................................

10

Лабораторная работа №3. JSP Standard Tag Library, JSP Expression Language...................

16

Лабораторная работа №4. Авторизация пользователя..........................................................

21

Лабораторная работа №5. Работа с базой данных ................................................................

24

Лабораторная работа №6. Журналирование и AJAX-запросы ............................................

30

Заключение ...............................................................................................................................

33

- 34 -

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]