Содержание
- 2. Схема обмена Cookie Server GET /index.jsp HTTP/1.0 200 OK Set-Cookie: name=vasya name=vasya Browser name=vasya Browser GET
- 3. Cookie Response Header: Set-Cookie: cname=cvalue;Expires=Tue, 14-Feb-2006 23:13:26 GMT;Path=/ Request Header: Cookie: cname=cvalue Internet Explorer: ...\Documents and
- 4. Класс javax.servlet.http.Cookie Cookie(String name, String value) get/setName(String) get/setValue(String) get/setAge(int) get/setPath(String) is/setSecure(boolean) get/setVersion(int)
- 5. Пример использования.Cookie Cookie c = new Cookie("cname", "cvalue"); c.setPath("/"); c.setMaxAge(3600); response.setContentType = "text/html"; response.addCookie(c); Cookie cookies[]
- 6. Преимущества Cookie Отслеживание сеанса пользователя Пользовательские настройки Подстановка имени и пароля при повторном заходе на сайт
- 7. Недостатки Cookies Не представляют угрозу безопасности, но угрожают конфиденциальности: eMail с HTML текстом может загружать Web-ресурсы,
- 8. Отслеживание сеанса HTTP – stateless протокол каждый запрос – отдельное соединение сервер не имеет данных о
- 9. Сессии сессия page1 page2 page3 set get set get set get
- 10. Сессии Для организации сессий существует три типичных подхода: Cookies response.addCookie(“JSESSIONID”, sessionId); URL-rewriting http://www.some.com/page.jsp?jsessionid=12345 http://www.some.com/page.jsp/12345 http://www.some.com/page.jsp;jsessionid=12345 Скрытые
- 11. Cессии в Java Объект сессии создается каждый раз при получении запроса от нового клиента и впоследствии
- 12. Интерфейс HttpSession Высокоуровневый интерфейс для работы с сеансами; Автоматически обеспечивает поддержку сеанса при помощи cookies или
- 13. Реализация сессий В случае использования cookies автоматически формируется Cookie с именем JSESSIONID и значением типа 02395C69B8FB84D3278B49F1B05F3379,
- 14. Сессии в Java Web-контейнер page1 page2 page3 jsessionid=1 jsessionid=1 jsessionid=1 HttpSession jsessionid=1 param1=abc HttpSession jsessionid=2 param1=qwe
- 15. Пример работы с сессией Фрагмент сервлета, проверяющего правильность ввода имени и пароля … // Установка времени
- 16. Данные, общие для всего приложения Объект ServetContext существует в единственном экземпляре для одного WEB-приложения. В нем
- 17. Установка атрибутов В качестве атрибутов выступают объекты Атрибуты можно устанавливать на уровне запроса request.setAttribute(“myattr”, new Integer(1));
- 18. Фильтры Фильтр – это Java-код, пригодный для многократного использования и позволяющий осуществлять операции над содержимым HTTP-запросов,
- 19. Роль фильтра в обработке запроса Браузер Web-контейнер Сервлет Фильтр Фильтр Запрос Ответ
- 20. Интерфейс javax.servlet.Filter Интерфейс Filter имеет следующие методы: init(FilterConfig); doFilter(ServletRequest, ServletResponse, FilterChain); destroy().
- 21. Жизненный цикл фильтра Инициализация Список фильтров Создание одного экземпляра каждого фильтра web.xml Обработка запросов destroy() FilterConfig
- 22. Цепочка фильтров Предназначена для обработки запроса последовательно несколькими фильтрами. Представлена интерфейсом javax.servlet.FilterChain. Объект создается автоматически контейнером
- 23. Интерфейс javax.servlet.FilterConfig Служит для передачи информации о настройках фильтру при его инициализации. Имеет следующие методы: String
- 24. Пример //пакет и импорты public class LoggerFilter implements Filter { private FilterConfig filterConfig; public void setFilterConfig(FilterConfig
- 25. Описание фильтров в web.xml В файле web.xml фильтры описываются в элементе filter. Он имеет следующие параметры:
- 26. Описание фильтров в web.xml Для каждого определенного в web.xml фильтра создается ровно один экземпляр. Разные теги
- 27. Описание фильтров в web.xml Описание фильтров и их привязок описывается в web.xml-файле перед определением сервлетов. Цепочка
- 28. Описание фильтров в web.xml Привязка фильтров бывает: к сервлету Filter1 Servlet1 к ресурсу по маске SystemAccessFilter
- 29. Пример фильтра package filters; //импорты public class SetCharacterEncodingFilter implements Filter { protected String encoding = null;
- 30. Пример фильтра Фрагмент web.xml: ... Set Character Encoding filters.SetCharacterEncodingFilter encoding CP1251 Set Character Encoding /* ...
- 31. Изменение ServletResponse public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // действия
- 32. Изменение содержимого HTTP-ответа public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ReverseResponse
- 33. Слушатели событий Слушатели событий (Events listeners) - это классы, реализующие один или более интерфейсов слушателей событий
- 34. Servlet context listeners Представлены интерфейсами: javax.servlet.ServletContextListener: void contextInitialized(ServletContextEvent sce) void contextDestroyed(ServletContextEvent sce) javax.servlet.ServletContextAttributeListener: void attributeAdded(ServletContextAttributeEvent e)
- 35. События слушателей контекста javax.servlet. ServletContextEvent ServletContext getServletContext() javax.servlet.ServletContextAttributeEvent String getName() Object getValue()
- 36. HTTP session listeners javax.servlet.HttpSessionListener: void sessionCreated(HttpSessionEvent se) void sessionDestroyed(HttpSessionEvent se) javax.servlet.HttpSessionAttributeListener: void attributeAdded(HttpSessionBindingEvent e) void attributeRemoved(HttpSessionBindingEvent
- 37. События слушателей сессии javax.servlet.http.HttpSessionEvent HttpSession getSession() javax.servlet.http.HttpSessionBindingEvent HttpSession getSession() String getName() Object getValue()
- 38. Описание в web.xml В web.xml слушатели событий прописываются следующим образом: Полнoe имя клacca Слушатели событий описываются
- 39. Пример Листинг: public class LifeCycleServletContextListener implements ServletContextListener { public LifeCycleServletContextListener() { } public void contextInitialized(ServletContextEvent sce)
- 40. Пример Листинг: public class LifeCycleServletContextListener implements ServletContextListener { public LifeCycleServletContextListener() { } public void contextInitialized(ServletContextEvent sce)
- 41. Подходы к созданию Web-базированных ИС Совмещение бизнес-логики и дизайна на JSP-страницах. Вынесение части логики в bean-компоненты
- 42. Model 1
- 43. Особенности Model 1 Преимущества: простота разработки; разработка JSP и бизнес-объектов может вестись параллельно благодаря отделению бизнес-логики
- 44. Треугольник MVC Контроллер (Controller) Модель (Model) Представление (View)
- 45. Model 2 Приложение состоит из 3-х частей: Модель: представляет собой состояние бизнес объектов; обрабатывает запросы о
- 46. Общая схема Model 2
- 47. Схема Model 2 для Web-приложений
- 48. Особенности Model 2 Возможность переиспользования компонентов Модели. Простая поддержка новых типов клиентов. Возросшая сложность разработки.
- 49. Пример приложения на model1 Страница заказа БД bean
- 50. Результат
- 51. Пример приложения на model2 Страница заказа Контроллер БД bean model
- 53. Скачать презентацию