Zaawansowane Aplikacje Internetowe



Podobne dokumenty
SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Programowanie warstwy klienta w aplikacji JavaEE

Funkcje i instrukcje języka JavaScript

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Zaawansowane Aplikacje Internetowe

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Zaawansowane Aplikacje Internetowe

Technologie internetowe ASP.NET Core. Paweł Rajba

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Camspot 4.4 Camspot 4.5

Przykłady pytań do zaliczenia programu wykonywanego w ramach zajęć laboratoryjnych 6-8 z Programowania komponentowego w Javie. Zofia Kruczkiewicz

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

APEX zaawansowany raport

Plan. Stan sesji (1/2) Stan sesji (2/2) Stan sesji Tworzenie przycisku Integracja prostego formularza z raportem Tworzenie formularza z raportem

Java Server Faces narzędzie do implementacji w wy prezentacji

JBoss Seam: framework nowej generacji. Copyright Piotr Kochański & Erudis,

ZAPYTANIE OFERTOWE. Wsparcie projektów celowych

Forum Client - Spring in Swing

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

Budowa nowoczesnej aplikacji SPA z wykorzystaniem biblioteki Ember.js

Szkolenie autoryzowane. MS Zaawansowany użytkownik programu SharePoint 2016

Dynamiczny DNS dla usług typu Neostrada przykład konfiguracji

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Aplikacje WWW - laboratorium

Języki programowania wysokiego poziomu. Blog

Układy reprogramowalne i SoC Język VHDL (część 4)

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

REFERAT PRACY DYPLOMOWEJ

Architektura komunikacji

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Serwery aplikacji. dr Radosław Matusik. radmat

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Comarch ERP XL Business Intelligence Start. Migracja do wersji 2018

European Crime Prevention Award (ECPA) Annex I - new version 2014

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Tworzenie raportów XML Publisher przy użyciu Data Templates

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Aplikacje WWW - laboratorium

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Procedury i funkcje składowane

Post-relacyjne bazy danych

Aplikacje WWW - laboratorium

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

Języki programowania wysokiego poziomu. Forum

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Cele. Definiowanie wyzwalaczy

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

INFORMATYKA Pytania ogólne na egzamin dyplomowy

onfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Instrukcja użytkownika Porównywarki cen Liquid

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

podstawowa obsługa panelu administracyjnego

Jak skutecznie zarządzać informacją?

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

podstawowa obsługa panelu administracyjnego

Zaawansowane aplikacje internetowe

Programowanie komponentowe 5

Szkolenie wycofane z oferty

JAVA NA SERWERZE SPRING. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Network Services for Spatial Data in European Geo-Portals and their Compliance with ISO and OGC Standards

Specyfikacja testów akceptacyjnych Radosław Iglantowicz, Tomasz Bruździński,

Tomasz Greszata - Koszalin

Infrastruktura aplikacji WWW

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Microsoft SharePoint 2016 : krok po kroku / Olga Londer, Penelope Coventry. Warszawa, Spis treści

W tym celu utworzyliśmy nowy identyfikator o następującej składni: IFTTT=nazwa_apletu?dodatkowe_dane.

Ćwiczenia 2 IBM DB2 Data Studio

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Szkolenie Microsoft Lync Korzystanie z roli pełnomocnika

ZAPYTANIE OFERTOWE. Szczegółowy opis przedmiotu zapytania znajduje się w Specyfikacji, załączonej do niniejszego zapytania.

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Sprawozdanie Laboratorium 4

****/ZN/2012. if you are pregnant or breast-feeding.

Quiz Aplikacja internetowa

Projektowanie zabezpieczeń Centrów Danych oraz innych systemów informatycznych o podwyższonych wymaganiach bezpieczeństwa

Produkcja by CTI v Biuletyn Techniczny. Definiowanie pól specjalnych. Program w pełni zintegrowany z Comarch ERP Optima

Aplikacje internetowe i rozproszone - laboratorium

Projekt i implementacja systemu informatycznego synchronizacji plików. w sieci wg ustalonych kryteriów. Maciej Tomaszewski

The OWASP Foundation Session Management. Sławomir Rozbicki.

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Machine Learning for Data Science (CS4786) Lecture 24. Differential Privacy and Re-useable Holdout

PODSTAWY BAZ DANYCH 13. PL/SQL

Składowane procedury i funkcje

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Dokumentacja Użytkownika Systemu

Kurs języka Ruby. Ruby on Rails ActionPack

Transkrypt:

Zaawansowane Aplikacje Internetowe Katedra Mikroelektroniki i Technik Informatycznych Politechniki Łódzkiej ul. Wólczanska 221/223 budynek B18, 90-924 Łódź mgr inż. Robert Ritter

10. Spring WebFlow Konfiguracja Definicja przepływów Integracja z SpringMVC Bezpieczeństwo

Spring WebFlow 3 mgr inż. Robert Ritter, ritter@dmcs.pl rozszerzenie, które pozwala zdefiniować przepływy w aplikacji przepływ zawiera w sobie kroki prowadzące użytkownika przez zadanie biznesowe przepływ spina wiele zapytań HTTP, posiada swój własny stan, obsługuje dane transakcyjne, jest reużywalny, może być dynamiczny oraz długo działający Spring WebFlow używany jest do tworzenia stanowych aplikacji z kontrolowaną nawigacją Spring WebFlow można zintegrować z szeroką gamą aplikacji włączając w to Spring MVC, JSF oraz Portlety

Spring WebFlow (2) 4 mgr inż. Robert Ritter, ritter@dmcs.pl cechą wspólną scenariuszy jest przynajmniej jedno z poniższych o jasno określony początek i koniec o użytkownik musi przejść przez ciąg ekranów w określonej kolejności o zmiany nie są zapisywane przed osiągnięciem ostatniego kroku o po zakończeniu nie powinno być możliwe przypadkowe powtórzenie transakcji scenariusze można opisać deklaratywnym językiem opisu przepływów

Dlaczego Spring WebFlow? 5 mgr inż. Robert Ritter, ritter@dmcs.pl wizualizacja przepływu jest skomplikowana aplikacja aktywnie korzysta z sesji HTTP wymuszenie kontrolowanej nawigacji jest istotne ale niemożliwe porządna obsługa przycisku wstecz w przeglądarce wydaje się niemożliwa przeglądarka traci synchronizację z serwerem po użyciu przycisku wstecz wiele otwartych kart powodują problemy wielowątkowego dostępu do danych zapisanych w sesji HTTP

Konfiguracja 6 mgr inż. Robert Ritter, ritter@dmcs.pl flowexecutor zarządza wykonaniem przepływem informacji <flow:flow-executor id="flowexecutor" flowregistry="flowregistry" /> flowregistry zarządza definicjami przepływów oraz udostępnia je do flowexecutor <flow:flow-registry id="flowregistry" basepath="/web-inf/flows"> <flow:flow-location-pattern value="*-flow.xml" /> </flow:flow-registry> o flow-location-pattern definiuje szablon nazw plików definicji przepływów o flow-location z atrybutem path jest alternatywą do powyższego <flow:flow-registry id="flowregistry"> <flow:flowlocation path="/web-inf/flows/springpizza.xml" /> </flow:flow-registry>

Konfiguracja (2) 7 mgr inż. Robert Ritter, ritter@dmcs.pl FlowHandlerMapping podpowiada DispatcherServlet, że powinien wysyłać żądania do SpringWebFlow FlowHandlerAdapter jest pomostem między DispatcherServlet a SpringWebFlow, obsługuje zapytania skierowane do WebFlow <bean class="org.springframework.webflow.mvc.servlet.flowhandlermapping"> <property name="flowregistry" ref="flowregistry" /> </bean> <bean class="org.springframework.webflow.mvc.servlet.flowhandleradapter"> <property name="flowexecutor" ref="flowexecutor" /> </bean>

Składowe każdego przepływu 8 mgr inż. Robert Ritter, ritter@dmcs.pl state punkt w przepływie, w którym wykonywana jest logika biznesowa transition droga użyta do połączenia stanów flow data dane przypisane do przepływu State type Action Decision End Subflow View What it s for Action states are where the logic of a flow takes place. Decision states branch the flow in two directions, routing the flow based on the outcome of evaluation flow data. The end state is the last stop for a flow. Once a flow has reached its end state, the flow is terminated. A subflow state starts a new flow within the context of a flow that is already underway. A view state pauses the flow and invites the user to participate in the flow.

Składowe każdego przepływu (2) 9 mgr inż. Robert Ritter, ritter@dmcs.pl <view-state id="takepayment" model="flowscope.paymentdetails"/> <action-state id="saveorder"> <evaluate expression="pizzaflowactions.saveorder(order)" /> <transition to="thankyou" /> </action-state> <decision-state id="checkdeliveryarea"> <if test="pizzaflowactions.checkdeliveryarea(customer.zipcode)" then="addcustomer" else="deliverywarning" /> </decision-state> <subflow-state id="order" subflow="pizza/order"> <input name="order" value="order"/> <transition on="ordercreated" to="payment" /> </subflow-state> <end-state id="customerready" />

Przejścia 10 mgr inż. Robert Ritter, ritter@dmcs.pl <transition to="customerready" /> <transition on="phoneentered" to="lookupcustomer"/> <transition on-exception= "org.pizza.service.customernotfoundexception" to="registrationform" /> <global-transitions> <transition on="cancel" to="endstate" /> </global-transitions>

Zmienne w przepływie 11 mgr inż. Robert Ritter, ritter@dmcs.pl <var name="customer" class="org.pizza.domain.customer" /> <evaluate result="viewscope.toppingslist" expression="t(org.pizza.domain.topping).aslist()" /> <set name="flowscope.pizza" value="new org.pizza.domain.pizza()" /> Scope Conversation Flow Request Flash View Lifespan and visibility Created when a top-level flow starts and destroyed when the top-level flow ends. Shared by a top-level flow and all of its subflows. Created when a flow starts and destroyed when the flow ends. Only visible within the flow it was created by. Created when a request is made into a flow and destroyed when the flow returns. Created when a flow starts and destroyed when the flow ends. It s also cleared out after a view state renders. Created when a view state is entered and destroyed when the state exits. Visible only within the view state.

Aplikacja 12 mgr inż. Robert Ritter, ritter@dmcs.pl Przykład na SVN

Zabezpieczenia 13 mgr inż. Robert Ritter, ritter@dmcs.pl stany, przejścia i całe przepływy można zabezpieczyć dodając element secured <view-state id="restricted"> <secured attributes="role_admin" match="all"/> </view-state> atrybut match przyjmuje wartości any oraz all