Základy programování v jazyce JAVA

Podobné dokumenty
Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition vývoj webových aplikací

Tvorba informačních systémů

1. Téma 12 - Textové soubory a výjimky

Tvorba informačních systémů

Tvorba informačních systémů

Nainstalujte zvolený server s podporou servletů a JSP, např. Jakarta/Tomcat nebo JBOSS.

Semináˇr Java XI Servlety, JSP Semináˇr Java XI p.1/38

Tvorba informačních systémů

Java technologie pro webové aplikace

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

KIV/PIA 2013 Jan Tichava

KTE / ZPE Informační technologie

Tvorba informačních systémů

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);

X36WWW. Technologie aplikačních serverů. Miroslav Bureš,, Martin Klíma. X36WWW: 12. přednáška 1

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Distribuované systémy a výpočty (02)

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

České vysoké učení technické v Praze. Fakulta elektrotechnická. Katedra řídící techniky. Internetové rozhraní do Matlabu.

Programování v Javě I. Únor 2009

JAVA. Webové aplikace Servlety, JSP

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Programování v Javě I. Leden 2008

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Tvorba informačních systémů

Zapouzdření. Tomáš Pitner, upravil Marek Šabo

20. Projekt Domácí mediotéka

Algoritmizace a programování

Principy objektově orientovaného programování

Enterprise Java Beans 3.0

JavaServer Faces Zdeněk Troníček

UJO Framework. revoluční architektura beans. verze

Michal Augustýn ALWIL Software Microsoft Most Valuable Professional

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Bottle -- příklad. Databáze. Testovací data. id Jedinečný identifikátor řádku: Bude typu INT s AUTO_INCREMENT a nastavíme ho jako primární klíč

!!Via!AUREA,!s.r.o.!

DPKOM_06 Dědičnost entit a zpětná volání posluchači

Object-relational mapping (JPA, Hibernate)

Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

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

Car Agent. Struktura chování:

public class Karel { private int position; public boolean issmiling; public int getposition() { return position;

Začínáme s vývojem pro Android

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Java a XML. 10/26/09 1/7 Java a XML

RMI Remote Method Invocation

H.p protokol, request response

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Teoretické minimum z PJV

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Distribuované systémy a výpočty

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

JUnit příklad na použití

Stručný úvod pro programátory. Michal Kuchta

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Typický prvek kolekce pro české řazení

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Michal Augustýn Microsoft Most Valuable Professional

Java - řazení objektů

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Technologie Java Server Pages

Java a Caché IV: Manipulace s objekty

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

3 KTE / ZPE Informační technologie

Vláknové programování část V

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

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í

Dynamické stránky v praxi. Bedřich Košata

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Java - výjimky. private void vstup() throws IOException {... }

Iterator & for cyklus

Testování, ladění a dokumentace programů

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

RMI - Distribuované objekty v Javě

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

Objektově orientované programování v PHP 5. Martin Klíma

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

8 Třídy, objekty, metody, předávání argumentů metod

Úvod do programovacích jazyků (Java)

mistnost.class.php :40:04

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Testovací metoda. Testovací metoda. public class SimpleTest {

Datové struktury. alg12 1

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Programování v C++ 2, 4. cvičení

Soubor jako posloupnost bytů

17. Projekt Trojúhelníky

}w!"#$%&'()+,-./012345<ya

Algoritmizace a programování

Michal Podzimek

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Transkript:

DBS 4. ročník Programování DB aplikací v jazyce JAVA Příklad MVC: Aplikace shop Základy programování v jazyce JAVA Programování základních objektů DB aplikace v jazyce JAVA si představíme na aplikaci, která se bude skládat pouze z katalogu produktů a objektu nákupního koše (Cart), který bude mít každý návštěvník uložen v objektu session. Do tohoto koše budeme moci přidávat položky a odebírat. Aplikace zatím nepoužívá databázi, ale má zboží nadefinováno ve třídě ActionServlet, která slouží jako controler. Aplikace předává data do nákupního košíku přes html formulář a ne pouze id požadovaného zboží. Model CatalogItem reprezentuje 1 řádek v katalogu. Další modely jsou třídy Cart a CartItem. package com.patrny.shop; public class CatalogItem { private int id; private String name; private String description; private int price; public CatalogItem() { public CatalogItem(int id, String name, String description, int price) { this.id = id; this.name = name; this.description = description; this.price = price; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public String getdescription() { return description;

public void setdescription(string description) { this.description = description; public int getprice() { return price; public void setprice(int price) { this.price = price; Controler Controlerem je servlet ActionServlet: package com.patrny.shop; import java.util.vector; import java.io.ioexception; import javax.servlet.*; import javax.servlet.http.*; public class ActionServlet extends HttpServlet { private static Vector catalogitems = new Vector(); public void init(servletconfig config) throws ServletException { super.init(config); // inicializace věcí catalogu - // správně by se měly nahrávat z databáze new CatalogItem(1,"lľíce","nerezová lľíce",15)); new CatalogItem(2,"stará lľíce","hliníková lľíce",5)); new CatalogItem(3,"nůľ","nerezový nůľ",20)); new CatalogItem(4,"vidlička","nerezová vidlička",15)); protected void processrequest(httpservletrequest request, response.setcontenttype("text/html; charset=iso-8859-2"); HttpSession session = request.getsession(); // nákupní koš Cart cart = (Cart)session.getAttribute("cart"); if(cart==null) { cart = new Cart(); session.setattribute("cart", cart);

// zpracování requestů String action = request.getparameter("action"); if(action==null) { request.setattribute("catalogitems", catalogitems.elements()); else if(action.equals("addtocart")) { try { String name = enc(request.getparameter("name")); int price = Integer.parseInt( request.getparameter("price")); int quantity = Integer.parseInt( request.getparameter("quantity")); int id = Integer.parseInt( request.getparameter("id")); cart.add(new CartItem(id, name, price, quantity)); catch(numberformatexception e) { else if(action.equals("removeallfromcart")) { cart.removeall(); else if(action.equals("showcart")) { prepareshowcart(request, response); private void preparecatalog(httpservletrequest request, request.setattribute("catalogitems", catalogitems.elements()); getservletcontext().getrequestdispatcher( response.encoderedirecturl("/catalog.jsp")). forward(request, response); private void prepareshowcart(httpservletrequest request, getservletcontext().getrequestdispatcher( response.encoderedirecturl("/showcart.jsp")). forward(request, response); private String enc(string param) { try { return new String(param.getBytes("iso-8859-1"), "iso-8859-2");

catch(java.io.unsupportedencodingexception e) { return param; protected void doget(httpservletrequest request, processrequest(request, response); protected void dopost(httpservletrequest request, processrequest(request, response); View Všimněte si že ve view nedochází k ničemu jinému než k zobrazení dat (použitím custom tags): <%@page contenttype="text/html; charset=iso-8859-2"%> <%@taglib uri="com.patrny.shop" prefix="shop" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>katalog - vyberte si sami</title> </head> <body> <h2>železářství z druhého patra</h2> <a href="action?action=showcart">obsah koše</a> <table border="1"> <tr> NázevPopisCena Po?et </tr> <shop:catalog> <form action="action" method="get"> <tr> <shop:catalogitem column="name"/> <input type="hidden" name="name" value="<shop:catalogitem column="name"/>"> <shop:catalogitem column="description"/> <shop:catalogitem column="price"/> <input type="hidden" name="price" value="<shop:catalogitem column="price"/>"> <input type="text" name="quantity"> <input type="hidden" name="action" value="addtocart">

<input type="hidden" name="id" value="<shop:catalogitem column="id"/>"> <input type="submit" value="přidat do koše"> </tr> </form> </shop:catalog> </table> </body> </html>