Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů
|
|
- Zdenka Navrátilová
- před 6 lety
- Počet zobrazení:
Transkript
1 Tvorba informačních systémů 1/46 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009
2 Tvorba informačních systémů 2/46 Úvod Obsah Model Objektově-relační mapování () Login a zamezení neoprávněného přístupu k akcím Vzhled aplikace
3 Tvorba informačních systémů 3/46 Úvod Ukázková aplikace exam/exam6/samplestruts2app.zip
4 Tvorba informačních systémů 4/46 Model Model Struts2 nedefinuje způsob implementace modelu (tzv. doménových či business objektů) Doménové objekty tedy můžeme implementovat jako: Třídy JavaBean (JB) komponenty Enterprice JavaBean (EJB) komponenty... Doménové objekty nejčastěji reprezentují záznam z tabulky, součástí modelu je i tzv. objektově-relační mapování (), které mapuje relace databáze na tyto objekty. můžeme naimplementovat nebo použijeme nějaký rámec (např. JPA/Hibernate).
5 Tvorba informačních systémů 5/46 Model Strategie držení spojení s databázovým systémem Při implementaci přístupu můžeme uplatnit tyto strategie: Otevřít spojení pro každý požadavek, vykonat jej a pak spojení zrušit (neefektivní, otevření spojení je časově náročnější operace). Otevřít spojení pro každého uživatele a uchovávat jej v session (pouze pro malý počet uživatelů). Sdílet "pool" otevřených spojení mezi všemi uživateli (nejčastější).
6 Tvorba informačních systémů 6/46 Na následujících slidech si ukážeme pomocí Hibernate, který bude do Struts2 integrován pomocí rámce Spring. Hibernate následně přistupuje do databáze SQL Server Poznámka: Využití těchto rámců nad J2EE nevyžaduje instalaci, je reprezentováno jar soubory, které jsou začleněny do projektu resp. do výsledného war souboru.
7 Tvorba informačních systémů 7/46 Příklad V následující ukázce vysvětlíme všechny kroky nutné pro zobrazení záznamů z tabulky Person v tabulce, formuláře pro vložení nového/editaci existujícího záznamu a akci pro zrušení vybraného záznamu.
8 Tvorba informačních systémů 8/46 Příklad, sql/create.sql pro SQL Server 2008 CREATE TABLE Person ( i d INT NOT NULL PRIMARY KEY IDENTITY, l o g i n VARCHAR( 6 ) UNIQUE, VARCHAR( 5 0 ) UNIQUE NOT NULL, password VARCHAR( 2 0 ) NOT NULL, firstname VARCHAR( 2 0 ) NOT NULL, middlename VARCHAR( 2 0 ), secondname VARCHAR( 2 0 ) NOT NULL, 2 VARCHAR( 5 0 ), i n s t i t u t i o n VARCHAR( ) NOT NULL, web VARCHAR( 7 0 ) ) ; CREATE INDEX Person_login ON Person ( l o g i n ) ; CREATE INDEX Person_ ON Person ( ) ; CREATE INDEX Person_secondName ON Person ( secondname ) ;
9 Tvorba informačních systémů 9/46 1 package model ; 2 import javax. persistence. E n t i t y ; 3 import javax. persistence. Id ; 5 public class Person { 7 private S t r i n g l o g i n ; 8 private S t r i n g ; 9 private S t r i n g password ; 10 private S t r i n g firstname ; 11 private S t r i n g middlename ; 12 private S t r i n g secondname ; 13 private S t r i n g 2 ; 14 private S t r i n g i n s t i t u t i o n ; 15 private S t r i n g web ; Řádky 4 a 6: Všimněte si tzv. anotací metadat o třídách, atributech případně metodách. Příklad, 1. krok, model.person 1/2 Třída model.person reprezentuje doménový objekt, v tomto případě představuje záznam z tabulky Person.
10 Tvorba informačních systémů 10/46 Příklad, 1. krok, model.person 2/2 1 public S t r i n g getlogin ( ) { 2 return l o g i n ; 3 } 4 5 public void setlogin ( S t r i n g l o g i n ) { 6 this. l o g i n = l o g i n ; 7 } public S t r i n g getweb ( ) { 12 return web ; 13 } public void setweb ( S t r i n g web ) { 16 this. web = web ; 17 } 18 } Popis: Třída musí obsahovat set/get metody pro všechny atributy, konvence stejná jako u JavaBean.
11 Tvorba informačních systémů 11/46 Příklad, 1. krok, Popis model.person je tzv. EJB entity bean instance reprezentuje entitu napříč různými session a přístupnou různými klienty. Součást Java Persistence API (JPA) 1 API pro. Entity bean tvoří vrstvu mezi klientem databáze a databázovým systémem (vývojář se nemusí starat o schéma relace, řízení spojení s databází,...). Ve třídě využíváme tzv. EJB3/JPA anotace 2 jedná se o perzistentní definuje atribut, který je součástí identity objektu (tedy primární hodnota atributu (často primárního klíče) je generována
12 Tvorba informačních systémů 12/46 Řádek 6: Vrat všechny entity poměrně nebezpečná metoda (uživatel v GUI vidí z celé tabulky jen několik záznamů). Řádek 10: Vrat entitu dle hodnoty klíče Příklad, 2. krok, service.personservice Nyní musíme definovat tzv. business logiku, tedy operace které budeme nad entitami stejného typu provádět. Nejprve definujeme rozhraní PersonService: 1 package s e r v i c e ; 2 import java. u t i l. L i s t ; 3 import model. Person ; 4 5 public interface PersonService { 6 public L i s t <Person > f i n d A l l ( ) ; 7 public void update ( Person Person ) ; 8 public void i n s e r t ( Person Person ) ; 9 public void d e l e t e ( S t r i n g l o g i n ) ; 10 public Person f i n d ( S t r i n g l o g i n ) ; 11 }
13 Tvorba informačních systémů 13/46 Řádky 9 a 13: anotace Příklad, 3. krok, service.personserviceimpl 1/3 Nyní musíme definovat implementaci rozhraní jedná se o EJB session bean (doménový objekt je EJB entity bean). 1 package s e r v i c e ; 2 import java. u t i l. L i s t ; 3 import javax. persistence. EntityManager ; 4 import javax. persistence. PersistenceContext ; 5 import javax. persistence. Query ; 6 import org. springframework. t r a n s a c t i o n. annotation. T r a n s a c t i o n a l ; 7 import model. Person ; 8 10 public class PersonServiceImpl implements PersonService { 11 private EntityManager em; public void setentitymanager ( EntityManager em ) { 15 this.em = em; 16 }
14 Tvorba informačních systémů 14/46 Příklad, 3. krok, service.personserviceimpl 2/3 ( " unchecked " ) 2 public L i s t <Person > f i n d A l l ( ) { 3 Query query = em. createquery ( " s e l e c t p FROM Person p " ) ; 4 return query. g e t R e s u l t L i s t ( ) ; 5 } 6 7 public void update ( Person person ) { 8 em. merge ( person ) ; 9 } public void i n s e r t ( Person person ) { 12 em. merge ( person ) ; 13 } Popis: K databázi přistupujeme zprostředkovaně přes entity manager. Řádek 3: Všimněte si SQL dotazu ve kterém figuruje doménový objekt.
15 Tvorba informačních systémů 15/46 Příklad, 3. krok, service.personserviceimpl 3/3 1 public void d e l e te ( S t r i n g l o g i n ) { 2 Person person = f i n d ( l o g i n ) ; 3 i f ( person! = null ) { 4 em. remove ( person ) ; 5 } 6 } 7 8 public Person f i n d ( S t r i n g l o g i n ) { 9 return em. f i n d ( Person. class, l o g i n ) ; 10 } private EntityManager getentitymanager ( ) { 13 return em; 14 } 15 }
16 Tvorba informačních systémů 16/46 Příklad, View personlist.jsp persondetail.jsp
17 Tvorba informačních systémů 17/46 Příklad, 4. krok, Akce 1/3 person_list zobrazeni záznamů v tabulce person_delete zrušení vybraného záznamu person_update aktualizace vybraného záznamu person_insert vložení nového záznamu persondetail nabídnutí formuláře s možností aktualizace existujícího popř. vložení nového záznamu
18 Tvorba informačních systémů 18/46 Příklad, 4. krok, Akce 2/3, personlist.jsp
19 Tvorba informačních systémů 19/46 Příklad, 4. krok, Akce 3/3, persondetail.jsp
20 Tvorba informačních systémů 20/46 Příklad, 4. krok, WEB-INF/classes/struts.xml 1/ <constant name= " s t r u t s. o b j e c t F a c t o r y " value= " s p ring " / > < a c t i o n name= " person_ " class=" personaction " method= " { 1 } " > 5 < r e s u l t >WEB INF / pages / person / p e r s o n L i s t. j s p < / r e s u l t > 6 < r e s u l t name= " i n p u t " >WEB INF / pages / person / persondetail. j s p < / r e s u l t > 7 < / a c t i o n >... Řádek 2: Integrace Spring do Struts2. Řádky 4 7: Sdružení akcí person_{list, delete, update, insert}. Pokud kontroler zachytí akci, pak předá řízení objektu personaction a metodě list, delete, update nebo insert. V případě aktualizace/vložení záznamu, může validace detekovat chybně zadanou hodnotu. V takové případě je vrácen persondetail.jsp, jinak je vrácen personlist.jsp.
21 Tvorba informačních systémů 21/46 Příklad, 4. krok, WEB-INF/classes/struts.xml 2/ < a c t i o n name= " persondetail " class=" personaction " method= " f i n d " > 3 < r e s u l t >WEB INF / pages / person / persondetail. j s p < / r e s u l t > 4 < / a c t i o n > 5... Řádky 2 4: Akce pro zobrazení formuláře pro zadání hodnot atributů (pro možnou aktualizaci/vložení záznamu). Pokud se jedná o aktualizace, metoda find najde instanci Person, jejichž hodnoty jsou zobrazeny ve formuláři. Pokud bychom používali čistý Strut2, pak by hodnotou atributu class byl název akční třídy, např. action.personaction.
22 Tvorba informačních systémů 22/46 Příklad, 5. krok, WEB-INF/applicationContext.xml 1/2 WEB-INF/applicationContext.xml je soubor pro konfiguraci rámce Spring, který nám zpřístupní Hibernate pro Struts <bean i d = " personservice " class=" s e r v i c e. PersonServiceImpl " / > 3 <bean i d = " personaction " scope= " prototype " 4 class=" a c t i o n. PersonAction " > 5 < c o n s t r u c t o r arg r e f = " personservice " / > 6 < / bean> 7... Řádek 3: Definujeme objekt personservice jako instanci třídy service.personserviceimpl (session bean pracující s entitami instancemi Person). Řádky 4 6: Spojíme akční objekt Struts2 personaction (třídy action.personaction) s objektem personservice.
23 Tvorba informačních systémů 23/46 Příklad, 5. krok, WEB-INF/applicationContext.xml 2/2 Definice entity manageru využívající jako datový zdroj SQL Server <bean i d = " entitymanagerfactory " 2 class=" org..... orm. jpa. LocalContainerEntityManagerFactoryBean " > 3 < p r o p e r t y name= " datasource " r e f = " datasource " / > 4 < p r o p e r t y name= " persistenceunitname " value= " pun " / > 5 < p r o p e r t y name= " jpavendoradapter " > 6 <bean class = " org..... orm. jpa. vendor. HibernateJpaVendorAdapter " > 7 < p r o p e r t y name= " database " value= "SQL_SERVER" / > 8 < p r o p e r t y name= " showsql " value= " t r u e " / > 9 < / bean> 10 < / p r o p e r t y > 11 < / bean> 12 <bean i d = " datasource " 13 class = " org. springframework. jdbc. datasource. DriverManagerDataSource " > 14 < p r o p e r t y name= " driverclassname " 15 value= " net. sourceforge. j t d s. jdbc. D r i v e r " / > 16 < p r o p e r t y name= " u r l " value= " j d b c : j t d s : s q l s e r v e r : / / win456. vsb. cz " / > 17 < p r o p e r t y name= " username " value= " t i s " / > 18 < p r o p e r t y name= " password " value= " t i s " / >< / bean>
24 Tvorba informačních systémů 24/46 Příklad, 6. krok, action.personaction 1/5 1 package a c t i o n ; 2 import java. u t i l. L i s t ; 3 import model. Person ; 4 import s e r v i c e. PersonService ; 5 import com. opensymphony. xwork2. Action ; 6 import com. opensymphony. xwork2. Preparable ; 7 import com. opensymphony. xwork2. ActionSupport ; 8 public class PersonAction extends ActionSupport implements Preparable { 9 private PersonService s e r v i c e ; 10 private L i s t <Person > persons ; 11 private Person person ; 12 private S t r i n g l o g i n ; 13 private S t r i n g r e s u l t ; Řádek 10: Uložení kolekce záznamů z databáze (zobrazení v personlist.jsp). Řádek 11: Uložení jednoho záznamu z databáze (pro a z formuláře persondetail.jsp). Řádek 12: Uložení hodnoty klíče (např. pro person_delete).
25 Tvorba informačních systémů 25/46 Příklad, 6. krok, action.personaction 2/5 1 public PersonAction ( PersonService s e r v i c e ) { 2 this. s e r v i c e = s e r v i c e ; 3 } 4 apache. s t r u t s 2. i n t e r c e p t o r. v a l i d a t i o n. S k i p V a l i d a t i o n 6 public S t r i n g l i s t ( ) { 7 this. persons = s e r v i c e. f i n d A l l ( ) ; 8 return Action.SUCCESS; 9 } Řádek 5: Anotace - při této akci nebudou validovány položky vstupního formuláře pravidly ze souboru PersonAction-validation.xml (uložené v person). Řádek 7: Využití metody session bean PersonService vracející všechny záznamy z tabulky Person.
26 Tvorba informačních systémů 26/46 Příklad, 6. krok, action.personaction 3/5 1 public S t r i n g update ( ) { 2 S t r i n g r e t ; 3 t r y { 4 this. s e r v i c e. update ( person ) ; 5 this. person = new Person ( ) ; 6 setresult ( gettext ( " updatedone " ) ) ; 7 r e t = l i s t ( ) ; 8 } 9 catch ( Exception e ) { 10 setresult ( gettext ( " updatefailed " ) ) ; 11 r e t = Action. INPUT ; 12 } 13 return r e t ; 14 } Řádek 4: Využití metody session bean PersonService vracející všechny záznamy z tabulky Person. Řádky 6 a 10: Nastavení výsledku který se vypíše na výstupním formuláři. Řádky 7 a 11: Nastavení výsledku akce (ve struts.xml jsou pak nastaveny výstupní jsp stránky pro jednotlivé výsledky).
27 Tvorba informačních systémů 27/46 Příklad, 6. krok, action.personaction 4/5 1 public S t r i n g i n s e r t ( ) { 2 S t r i n g r e t ; 3 4 t r y { 5 this. s e r v i c e. i n s e r t ( person ) ; 6 this. person = new Person ( ) ; 7 8 setresult ( gettext ( " insertdone " ) ) ; 9 r e t = l i s t ( ) ; 10 } 11 catch ( Exception e ) { 12 setresult ( gettext ( " i n s e r t F a i l e d " ) ) ; 13 r e t = Action. INPUT ; 14 } 15 return r e t ; 16 } Obdoba metody update. Problém: V catch se zachytává pouze jeden typ výjimky. Uživateli tedy nenabídneme výpis konkrétní chyby.
28 Tvorba informačních systémů 28/46 Příklad, 6. krok, action.personaction 5/5 apache. s t r u t s 2. i n t e r c e p t o r. v a l i d a t i o n. S k i p V a l i d a t i o n 2 p u b l i c S t r i n g d e l e t e ( ) { 3 s e r v i c e. d e l ete ( l o g i n ) ; 4 r e t u r n l i s t ( ) ; 5 } apache. s t r u t s 2. i n t e r c e p t o r. v a l i d a t i o n. S k i p V a l i d a t i o n 7 p u b l i c S t r i n g f i n d ( ) { 8 i f ( l o g i n! = n u l l ) 9 { 10 person = s e r v i c e. f i n d ( l o g i n ) ; / / update 11 } 12 r e t u r n Action.SUCCESS; 13 } Řádky 1 a 6: Anotace - při této akci nebudou validovány položky vstupního formuláře. Řádky 3 a 10: Využití metod session bean PersonService. Řádek 14: get/set metody pro jednotlivé atributy.
29 Tvorba informačních systémů 29/46 Příklad, personlist.jsp 1/2 Instanci persons akční třídy můžeme do tabulky vložit ručně, nebo můžeme využít existující značku (nemusíme řešit stránkování apod.). V tomto případě využíváme značku display:tag < d i s p l a y : table name= " persons " pagesize= " 10 " s o r t = " l i s t " 3 requesturi= " " class=" d i v. datatable " > 4 < d i s p l a y : column value= " Delete " u r l = " / person_delete " 5 paramid= " l o g i n " paramproperty= " l o g i n " / > 6 < d i s p l a y : column value= " Update " u r l = " / persondetail " 7 paramid= " l o g i n " paramproperty= " l o g i n " / > Řádky 4 7: Nastavení parametru login pro akce person_delete a persondetail. 3
30 Tvorba informačních systémů 30/46 Příklad, personlist.jsp 2/2 1 < d i s p l a y : column p r o p e r t y = " l o g i n " t i t l e K e y = " l o g i n " / > 2 < d i s p l a y : column p r o p e r t y = " " t i t l e K e y = " " / > 3 < d i s p l a y : column p r o p e r t y = " password " t i t l e K e y = " password " / > 4 < d i s p l a y : column p r o p e r t y = " firstname " t i t l e K e y = " firstname " / > 5 < d i s p l a y : column p r o p e r t y = " secondname " t i t l e K e y = " secondname " 6 s o r t a b l e = " t r u e " / > 7 < d i s p l a y : column p r o p e r t y = " i n s t i t u t i o n " t i t l e K e y = " i n s t i t u t i o n " / > 8 < / d i s p l a y : table> 9 <s : u r l i d = " newurl " action= " persondetail " >< / s : u r l > 10 <s : a href= "%{newurl } " t a r g e t s = " persons " ><s : text name= "new" / >< / s : a> Řádky 1 8: Nastavení sloupců tabulky výpis jednotlivých atributů instance Person z kolekce persons. Řádek 6: Tabulku bude možné třídit dle příjmení osoby. Řádky 9 10: Naformátování odkazu pro akci persondetail.
31 Tvorba informačních systémů 31/46 Příklad, persondetail.jsp 1/ <h1><s : text name= " persondetail " / >< / h1> 3 4 <s : p r o p e r t y value= " r e s u l t " / > 5 <s : i f t e s t = "%{person == n u l l } " > 6 <s : set i d = " a c t i o n S t r " value= " person_insert " / > 7 <s : set i d = " l o g i n D i s a b l e d " value= " f a l s e " / > 8 < / s : i f > 9 <s : else> 10 <s : set i d = " a c t i o n S t r " value= " person_update " / > 11 <s : set i d = " l o g i n D i s a b l e d " value= " f a l s e " / > 12 < / s : else> Detekujeme zda metoda find třídy PersonAction vrátila nějakou instanci Person. Pokud ano, tento formulář byl vyžádán pro aktualizaci záznamu (tedy s parametrem login) a požadovaná akce je person_update. Pokud metoda find vrátila null, požadovaná akce je person_insert (požadujeme tedy vložení nového záznamu).
32 Tvorba informačních systémů 32/46 Příklad, persondetail.jsp 2/2 1 <s : form action= "%{ a c t i o n S t r } " > 2 <s : t e x t f i e l d disabled="%{logindisabled } " name= " person. l o g i n " 3 size= " 6 " key= " person. l o g i n " r e q u i r e d = " t r u e " j a v a s c r i p t T o o l t i p = " t r u e " 4 t o o l t i p = " cccnnn " value= "%{person. l o g i n } " / > 5 <s : t e x t f i e l d name= " person. " size= " 50 " key= " person. " 6 r e q u i r e d = " t r u e " value= "%{person. } " / > < / s : form> 9... Hodnota atributu name specifikuje atribut akční třídy kde bude uložena hodnota z formuláře. V tomto případě očekáváme v akční třídě atribut person s výše uvedenými atributy (jedná se tedy o instanci třídy Person). Atribut value specifikuje hodnotu uvedenou v textovém poli, v tomto případě se jedná o hodnotu atributu instance person z akční třídy. Atribut key definuje popis prvku GUI dle lokalizačních řetězců ze souborů package_properties*.
33 Tvorba informačních systémů 33/46 Akce person_list User person_list Controler Controler struts.xml struts.xml applicationcontext Localization PersonAction.list() persons PersonService.findAll() personlist
34 Tvorba informačních systémů 34/46 Proč (ne)použít JPA/Hibernate? : BlackBox problém možné problémy s výkonem. Nutnost výkonnostních testů. +: Je libo MySQL? 1 < p r o p e r t y name= " jpavendoradapter " > 2 <bean class = " org..... orm. jpa. vendor. HibernateJpaVendorAdapter " > 3 < p r o p e r t y name= " database " value= "MYSQL" / > < / bean> 6 < / p r o p e r t y > 7 8 <bean i d = " datasource " class=" org..... DriverManagerDataSource " > 9 < p r o p e r t y name= " driverclassname " value= "com. mysql. jdbc. D r i v e r " / > 10 < p r o p e r t y name= " u r l " value= " j d b c : s m y s q l : / / win456. vsb. cz / t i s " / > 11 < p r o p e r t y name= " username " value= " t i s " / > 12 < p r o p e r t y name= " password " value= " t i s " / > 13 < / bean>
35 Tvorba informačních systémů 35/46 Přihlášení do aplikace Přihlášení do aplikace Úkoly/problémy: Uložení stavu aplikace (často do session). Generování menu pro přihlášené/nepřihlášené uživatele Zamezení přístupu nepřihlášeným uživatelům k vybraným akcím
36 Tvorba informačních systémů 36/46 Přihlášení do aplikace Přihlášení, akce login struts.xml: 1 < a c t i o n name= " l o g i n _ " class=" a c t i o n. LoginAction " method= " { 1 } " > 2 < r e s u l t type= " r e d i r e c t " > p e r s o n _ l i s t < / r e s u l t > 3 < r e s u l t name= " i n p u t " > /WEB INF / pages / u t i l / l o g i n. j s p < / r e s u l t > 4 < / a c t i o n > action.loginaction: public S t r i n g execute ( ) throws Exception { 3 i f ( getusername ( )! = null && getpassword ( )! = null ) { 4 / / C a l l user domain bean using a DBMS 5 i f ( username. compareto ( " kra28 " ) == 0 && 6 password. compareto ( " a " ) = = 0 ) 7 { 8 this. session. put ( AppConstant. SessionFieldAuth, 9 new Boolean ( true ) ) ; 10 return SUCCESS; 11 } } 12 return INPUT ; }
37 Tvorba informačních systémů 37/46 Přihlášení do aplikace Odhlášení, akce logout struts.xml: 1 < a c t i o n name= " l o g o u t " class=" a c t i o n. LogoutAction " > 2 < r e s u l t type= " r e d i r e c t " > l o g i n < / r e s u l t > 3 < / a c t i o n > action.logoutaction: public S t r i n g execute ( ) throws Exception { 3 i f ( session. containskey ( AppConstant. SessionFieldAuth ) ) 4 { 5 session. remove ( AppConstant. SessionFieldAuth ) ; 6 } 7 return SUCCESS; 8 }
38 Tvorba informačních systémů 38/46 Přihlášení do aplikace Přístup k akcím Pro zabránění neoprávněného přístupu k akcím můžeme definovat tzv. interceptor, struts.xml: <package name= " person " extends= " s t r u t s d e f a u l t " > 3 < i n t e r c e p t o r s > 4 < i n t e r c e p t o r name= " a u t h e n t i c a t i o n I n t e r c e p t o r " 5 class=" i n t e r c e p t o r. A u t h e n t i c a t i o n I n t e r c e p t o r " / > 6 < i n t e r c e p t o r stack name= " d e f a u l t S e c u r i t y S t a c k W i t h A u t h e n t i c a t i o n " > 7 < i n t e r c e p t o r r e f name= " d e f a u l t S t a c k " / > 8 < i n t e r c e p t o r r e f name= " a u t h e n t i c a t i o n I n t e r c e p t o r " > 9 <param name= " excludeactions " > l o g i n, dologin< / param> 10 < / i n t e r c e p t o r r e f > 11 < / i n t e r c e p t o r stack> 12 < / i n t e r c e p t o r s > 13...
39 Tvorba informačních systémů 39/46 Přihlášení do aplikace Přístup k akcím, AuthenticationInterceptor 1/2 1 package i n t e r c e p t o r ; 2 import com. opensymphony. xwork2. i n t e r c e p t o r. ; 3 import com. opensymphony. xwork2. u t i l. ; 4 import com. opensymphony. xwork2. ; 5 import java. u t i l. ; 6 import u t i l. ; 7 8 p u b l i c class A u t h e n t i c a t i o n I n t e r c e p t o r extends A b s t r a c t I n t e r c e p t o r { 9 p r i v a t e S t r i n g a u t h e n t i c a t i o n S e s i o n F i e l d = new S t r i n g ( 10 AppConstant. SessionFieldAuth ) ; 11 p r i v a t e Set excludeactions = C o l l e c t i o n s.empty_set; p u b l i c void s e t A u t h e n t i c a t i o n S e s i o n F i e l d ( 14 S t r i n g a u t h e n t i c a t i o n S e s i o n F i e l d ) { 15 t h i s. a u t h e n t i c a t i o n S e s i o n F i e l d = a u t h e n t i c a t i o n S e s i o n F i e l d ; 16 } 17 p u b l i c void setexcludeactions ( S t r i n g values ) { 18 i f ( values! = n u l l ) { 19 t h i s. excludeactions = 20 T e x t P a r s e U t i l. commadelimitedstringtoset ( values ) ; 21 } 22 }
40 Tvorba informačních systémů 40/46 Přihlášení do aplikace Přístup k akcím, AuthenticationInterceptor 2/2 2 p u b l i c S t r i n g i n t e r c e p t ( A c t i o n I n v o c a t i o n i n v o c a t i o n ) 3 throws Exception { 4 Map session = i n v o c a t i o n. getinvocationcontext ( ). getsession ( ) ; 5 S t r i n g actionname = i n v o c a t i o n. getproxy ( ). getactionname ( ) ; 6 S t r i n g methodname = i n v o c a t i o n. getproxy ( ). getmethod ( ) ; 7 8 Object a u t h e n t i c a t i o n O b j e c t = session. get ( 9 a u t h e n t i c a t i o n S e s i o n F i e l d ) ; i f ( excludeactions. contains ( actionname ) 12 ( a u t h e n t i c a t i o n O b j e c t! = n u l l && 13 a u t h e n t i c a t i o n O b j e c t i n s t a n c e o f Boolean && 14 a u t h e n t i c a t i o n O b j e c t. equals ( Boolean.TRUE ) ) ) { 15 r e t u r n i n v o c a t i o n. invoke ( ) ; 16 } 17 r e t u r n AppConstant. ResultAuthRequired ; 18 } 19 } Metoda intercept je volána před spuštění každé akce.
41 Tvorba informačních systémů 41/46 Přihlášení do aplikace menu.jsp Menu generujeme na základě existence klíče authenticated v session. 1 <h2>menu< / h2> 2 3 <c : i f t e s t = " $ { not empty sessionscope. a u t h e n t i c a t e d } " > 4 <s : u r l i d = " p e r s o n L i s t U r l " action= " p e r s o n _ l i s t " / > 5 <s : a href= "%{ p e r s o n L i s t U r l } " ><s : text name= " p e r s o n L i s t " / >< / s : a><br / > 6 7 <s : u r l i d = " l o g o u t U r l " action= " l o g o u t " / > 8 <s : a href= "%{ l o g o u t U r l } " ><s : text name= " logoutmenuitem " / >< / s : a><br / > 9 < / c : i f > <c : i f t e s t = " $ { empty sessionscope. a u t h e n t i c a t e d } " > 12 <s : u r l i d = " l o g i n U r l " action= " l o g i n _ i n p u t " / > 13 <s : a href= "%{ l o g i n U r l } " ><s : text name= " loginmenuitem " / >< / s : a><br / > 14 < / c : i f >
42 Tvorba informačních systémů 42/46 Vzhled aplikace Kaskádové styly Můžeme využít kaskádové styly (CSS) a rozdělit aplikaci na 4 části: hlavičku, levý panel (pro menu), obsah a patičku, viz style.css: d i v. headerpanel { 3 Background c o l o r : # b0c4de ; 4 p o s i t i o n : absolute ; top : 0 px ; l e f t : 0 px ; 5 width : px ; h e i g h t : 8 0 px ; 6 } 7 d i v. contentpanel { 8 Background c o l o r : # f 5 f 5 f 5 ; 9 p o s i t i o n : absolute ; top : 8 0 px ; l e f t : px ; 10 width : px ; h e i g h t : px ; 11 } 12...
43 Tvorba informačních systémů 43/46 Vzhled aplikace personlist.jsp 1 <%@ page language= " java " contenttype= " t e x t / html ; charset= u t f 8" %> 2 <%@ t a g l i b p r e f i x = " s " u r i = " / s t r u t s tags " %> 3 <%@ t a g l i b p r e f i x = " d i s p l a y " u r i = " /WEB INF / d i s p l a y t a g. t l d " %> 4 5 <html> 6 <head> 7 < t i t l e ><s : text name= " welcomemessage " / >< / t i t l e > 8 < l i n k r e l = " s t y l e s h e e t " type= " t e x t / css " href= " s t y l e. css " > 9 < l i n k r e l = " s t y l e s h e e t " type= " t e x t / css " href= " d i s p l a y t a g. css " > 10 < / head> 11 <body> <s : i n c l u d e value= " /WEB INF / pages / u t i l / menu. j s p " / > <div class = " contentpanel " > <! Obsah > 17 / div >
44 Tvorba informačních systémů 44/46 Vzhled aplikace menu.jsp 1 <%@ t a g l i b u r i = " h t t p : / / java. sun. com / j s p / j s t l / core " p r e f i x = " c " %> 2 <%@ t a g l i b p r e f i x = " s " u r i = " / s t r u t s tags "%> 3 4 <div class=" headerpanel " > 5 <h1>sample A p p l i c a t i o n : S t r u t s 2 + SQLServer 2008< / h1> 6 < / div> 7 <div class=" footerpanel " >Write f o o t e r! < / div> 8 9 <div class=" l e f t P a n e l " > 10 <! Menu > 11 < / div>
45 Tvorba informačních systémů 45/46 Závěr Ukázková aplikace exam/exam6/samplestruts2app.zip
46 Tvorba informačních systémů 46/46 Závěr Reference core-developers-guide.html validation.html
Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů
Tvorba informačních systémů 1/49 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních systémů 2/49 Úvod
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
KIV/PIA 2013 Jan Tichava
KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise
DPKOM_06 Dědičnost entit a zpětná volání posluchači
DPKOM_06 Dědičnost entit a zpětná volání posluchači 1 Obsah přednášky Jedna tabulka pro hierarchii tříd Tabulka pro konkrétní třídu Tabulka pro podtřídu Neentitní základní třídy Události zpětného volání
public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());
Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového
Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15
Platforma Java Objektově relační mapování II Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, 2016 1 / 15 Dotazování vyhledání objektu podle
Databázové systémy Cvičení 5.2
Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako
Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký
Anotace a Hibernate Aleš Nosek Ondřej Vadinský Daniel Krátký Anotace v Javě novinka Javy 5 umožňují k Java kódu přidávat dodatečné informace (podobně jako JavaDoc) za předchůdce anotací je možné považovat
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework
Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS
Návrh a tvorba WWW stránek 1/14. PHP a databáze
Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované
Databázové a informační systémy
Databázové a informační systémy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Jak ukládat a efektivně zpracovávat
Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);
Programovací jazyk PHP doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Třídy a objekty Výjimky Webové aplikace
Enterprise Java Beans 3.0
Enterprise Java Beans 3.0 Lukáš Zapletal liberix.cz EJB 3.0 a JPA 1.0 JavaBean - vysvětlení pojmu Java třída s get/is a set metodami má tedy vlastnosti žádné další podmínky nejsou kladeny JavaBean je tedy
Java a Caché IV: Manipulace s objekty
1 z 6 11.1.2007 11:13 přihlašovací jméno heslo Registrace Přihlásit články odkazy aktuality CZJUG konference o portálu přidejte se o nás Vyhledávání Text: najdi Oborový filtr J2ME J2SE J2EE Enterprise
STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ
STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ Technologie Jalapeño od InterSystems Andreas Dieckow, Principal Product Manager, Strategic Planning InterSystems Corporation Úvod Programovací jazyk Java má díky
Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/
Nástroje a frameworky pro automatizovaný vývoj Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Proces vývoje webové aplikace Předepsaná adresářová struktura. Kompilace zdrojových kódů.
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java
Object-relational mapping (JPA, Hibernate)
Vysoká škola báňská - technická univerzita Ostrava 17. března 2010 Obsah 1 2 3 4 namapovat chování objektového světa do relačních struktur a naopak, tak aby spolu mohli jednoduše komunikovat většina moderních
(Enterprise) JavaBeans. Lekce 7
(Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí
Databáze I. Přednáška 4
Databáze I Přednáška 4 Definice dat v SQL Definice tabulek CREATE TABLE jméno_tab (jm_atributu typ [integr. omez.], jm_atributu typ [integr. omez.], ); integritní omezení lze dodefinovat později Definice
Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal
Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE
Použití databází na Webu
4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové
Úvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ
NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze
NOVINKY V JEE EJB 3.1 Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze PROGRAM Seznámení s Java Enterprise Edition (JEE) Enterprise Java Beans (EJB) Novinky v EJB 3.1 2 JAVA EDITIONS Java
8.2 Používání a tvorba databází
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Spring framework 2.0. Roman Pichlík http://sweb.cz/pichlik/ CZJUG http://java.cz/jug
Spring framework 2.0 Spring framework 2.0 Roman Pichlík http://sweb.cz/pichlik/ Nejdůležitejší slide http://springframework.org/ http://www.springframework.org/documen Historie 2002 - Rod Johnson kniha
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE
X33EJA Security, Realms Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE 'web.xml' 'glassfish-web.xml' dále nutno nastavit realm v admin. konzoli GF 1
George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu
A Tutorial Advances in query languages for similarity-based databases George J. Klir Petr Krajča State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu Palacky University,
Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava
Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_038.ICT.34 Tvorba webových stránek SQL stručné minimum OA a JŠ Jihlava, VY_32_INOVACE_038.ICT.34 Číslo
Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce
Databázové systémy 2 Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: čtvrtek, 4 5 Obor: ININ SWIN E-mail: jtichava@students.zcu.cz Databázové systémy II. KIV/DB2 LS 2007/2008 Zadání semestrální
Databáze I. Přednáška 7
Databáze I Přednáška 7 Objektové rozšíření SQL Objektově relační databáze SQL:1999 objektové rozšíření SQL vztahuje se k objektově relačním databázovým systémům ukládají objekty do relační databáze umožňují
Verzování a publikace dat na webu za pomoci PostgreSQL
Prague PostgreSQL Developers' Day 2013 Verzování a publikace dat na webu za pomoci PostgreSQL Jan Pěček Kdo jsem? Jan Pěček Programátor PostgreSQL Jyxo, s.r.o. (Blog.cz) MAFRA, a.s. - Internet Trading
Technologie JavaBeans
Technologie JavaBeans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Historie Komponentový model Typy komponent
Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.
Základy programování 4 - C# 7. cvičení Radek Janoštík Univerzita Palackého v Olomouci 26.3.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.2017 1 / 14 Reakce na úkoly
Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL
4 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, datové typy, klauzule SELECT, WHERE, a ORDER BY. Doporučená
Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz
Databáze čajových sáčků Martina Málková Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky Databázové systémy 2 9. června 2007 krovacek@students.zcu.cz 1 1 Datová analýza V původním
1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4
CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer
Jalapeño: pekelně ostrá Java persistence v Caché Daniel Kutáč Senior Sales Engineer Co je Jalapeño Pár slov ředitele vývoje software Klikni! Tak tedy, o čem dnes budeme mluvit Architektura Instalace Anotace
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2005 2008 Michal Krátký Tvorba informačních systémů 1/39 Konceptuální
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011
Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP
Sada 1 - PHP. 14. Úvod do jazyka SQL
S třední škola stavební Jihlava Sada 1 - PHP 14. Úvod do jazyka SQL Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a
UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)
Obsah přednášky Technologie Miroslav Beneš Popis technologie EJB J2EE aplikace Typy komponent Entity Beans Session Beans Message-Driven Beans Java Messaging Service (JMS) Závěr 2 (EJB) EJB kontejner Specifikace
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký Tvorba informačních systémů 1/35 Konceptuální
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Semináˇr Java X J2EE Semináˇr Java X p.1/23
Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,
Nasazení Object Relation Mapping nástrojů nad legacy datovým modelem
Nasazení Object Relation Mapping nástrojů nad legacy datovým modelem 1 Ondřej Berger, Pavel Janečka, 2 Lukáš Černovský 1 Univerzita Hradec Králové Fakulta informatiky a managementu KIKM Hradecká 1249/6,
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků
Komponenty v.net. Obsah přednášky
doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Rozdíl mezi COM a.net Distribuce komponent Programování
Michal Krátký, Miroslav Beneš
Tvorba informačních systémů 1/20 Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních
Konceptuální modelování a SQL
Konceptuální modelování a SQL přednáška č.? 1/90 Vytváření IS Analýza Návrh Implementace Testování Předání SW Jednotlivé fáze mezi sebou iterují 2/90 Proč modelovat/analyzovat? Standardizované pracovní
Tabulka fotbalové ligy
Semestrální práce na X36DB2 Michal Rezler Jan Zmátlík Tabulka fotbalové ligy a tabulka střelců 8. prosinec 2011 Obsah 1 Zadání....................................................... 3 1.1 Stručný popis.............................................
Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů
Tvorba informačních systémů 1/40 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních systémů 2/40 Úvod
DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY
Databázové a informační systémy 1/9 DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY Katedra informatiky FEI VŠB Technická univerzita Ostrava 2012/2013 Databázové a informační systémy 2/9 TABULKA ST U D E N T Pokud nebude
Michal Krátký, Miroslav Beneš
Databázové a informační systémy Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava 5.12.2005 2005 Michal Krátký, Miroslav Beneš Databázové a informační systémy 1/24 Obsah
Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni
Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,
KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45
KMI / TMA Tvorba mobilních aplikací 6. seminář 2.11.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře Ukládání dat Ukládání dat Jaké jsou možnosti? SharedPreferences jednoduchá data databáze SQLite relační
DUM 12 téma: Příkazy pro tvorbu databáze
DUM 12 téma: Příkazy pro tvorbu databáze ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací
Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging
Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging 1. Vhodnost nasazení jednotlivých webových architektur - toto je podle Klímy
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databáze Základní seznámení s MySQL
RMI - Distribuované objekty v Javě
Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
Využití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
Rezervační systém Tvorba WWW stránek
2012 Rezervační systém Tvorba WWW stránek Vytvoření rezervačního systému pro rezervaci motokár,ubytování a atrakcí Marek Svoboda Motokáry Motobydlo 30.12.2012 Obsah 1.Základní charakteristika... 3 a) Téma
Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)
Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB) Michal Papež Spring & EJB Program: K čemu je to dobré, historie, odlišnosti Spring 2.5 EJB 3.0 K čemu jsou? 1 Vývoj velkých podnikových
Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování
Tvorba WWW stránek přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování HTML/XHTML kaskádové styly PHP spolupráce PHP s databázemi Technologie
Tvorba informačních systémů
9. Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba
Architektury informačních systémů
Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to
Databáze v Java aplikacích, JPA Handout
Databáze v Java aplikacích, JPA Handout Martin Ledvinka martin.ledvinka@fel.cvut.cz 11. listopadu 2015 1 Přístup k databázím v Javě Jednou z mnoha výhod (a občas nevýhodou) platformy Java je její zaměření
Databázové systémy úvod
Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/bi-dbs/
Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18
Spring Framework Pavel Mička Pavel Mička Spring Framework 1/18 Obsah Úvod 1 Úvod 2 Service locator Dependency injection Rozsah platnosti bean 3 4 Pavel Mička Spring Framework 2/18 Co je to Spring framework
Databázové systémy. Cvičení 6: SQL
Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi
Základy informatiky. 08 Databázové systémy. Daniela Szturcová
Základy informatiky 08 Databázové systémy Daniela Szturcová Problém zpracování dat Důvodem je potřeba zpracovat velké množství dat - evidovat údaje o nějaké skutečnosti. o skupině lidí (zaměstnanců, studentů,
1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:
Architektura webové aplikace, funkce jednotlivých vrstev, životní cyklus standardizovaných komponent Java EE, Servlety, JSP, frameworky, návrhové vzory 1. Distribuce Javy Distribuce Javy se liší podle
Návrhové vzory pro J2EE
Návrhové vzory pro J2EE Miroslav Beneš Obsah přednášky Význam návrhových vzorů Klasické návrhové vzory GoF Návrh prezentační vrstvy Business vrstva Vzory pro práci s daty Příklady dalších vzorů Záporné
Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.
Kurz Databáze Přechod na SQL server Lektor: Doc. Ing. Radim Farana, CSc. Obsah Vytvoření databáze. Konverze databáze z MS-Access na SQL Server. Konverzní předpis pro pozdější použití. Definice schématu
Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.
1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace
Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links
Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links links Apache Struts Article with examples JSTL a EL (into JSP) MVC, webové aplikace, JSP Bezpečnost ve webových
Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz
Databáze II 1. přednáška Helena Palovská palovska@vse.cz Program přednášky Úvod Třívrstvá architektura a O-R mapování Zabezpečení dat Role a přístupová práva Úvod Co je databáze Mnoho dat Organizovaných
Oracle XML DB. Tomáš Nykodým
Oracle XML DB Tomáš Nykodým xnykodym@fi.muni.cz Osnova Oracle XML DB Architektura Oracle XML DB Hlavní rysy Oracle XML DB Hlavní rysy Oracle XML DB - pokračování XMLType XML Repository Využívání databázových
Vytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
Session Beans. Petr Aubrecht CA. Vtipy budou tentokrát o krizi:
Session Beans Petr Aubrecht CA Vtipy budou tentokrát o krizi: Resty z minula -2 slidy s anotacemi servletů -JPA, slide 42, kaskády Anotace v Servletech 3.0 - Netřeba zápis do web.xml @WebServlet(name="CalculatorServlet",
2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE
2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy
Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.
Základy programování 4 - C# - 9. cvičení Radek Janoštík Univerzita Palackého v Olomouci 10.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.2017 1 / 13 Reakce na
InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou
MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství
17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/
17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ Úvod 1 Úvod Nedávno jsem zveřejnil návod na vytvoření návštěvní knihy bez nutnosti použít databázi. To je výhodné tehdy, kdy na serveru
boolean hasnext() Object next() void remove() Kolekce
11. Kontejnery Kontejnery Kontejnery jako základní dynamické struktury v Javě Kolekce, iterátory (Collection, Iterator) Seznamy (rozhraní List, třídy ArrayList, LinkedList) Množiny (rozhraní Set, třída
Jazyk C# - přístup k datům
Jazyk C# - přístup k datům Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Entity Framework BI-PCS Evropský sociální fond Praha