Дистрибуирани софтверски системи Технички факултет "Михајло Пупин" Зрењанин, Универзитет у Новом Саду Практикум за лабораторијске вежбе #05 [нерецензи

Слични документи
Дистрибуирани софтверски системи Технички факултет "Михајло Пупин" Зрењанин, Универзитет у Новом Саду Практикум за лабораторијске вежбе #07 [нерецензи

Дистрибуирани софтверски системи Технички факултет "Михајло Пупин" Зрењанин, Универзитет у Новом Саду Практикум за лабораторијске вежбе #04 [нерецензи

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

Primenjeno programiranje - vezbe GUI i baze podataka

Web programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju

Ekonomski fakultet u Osijeku Kolegij: Elektroničko i mobilno poslovanje Nositelj: prof. dr. sc. Branimir Dukić Nastavni materijali za vježbe 3. HTML o

Приручник о полагању матурског испита у образовном профилу Електротехничар информационих технологија - оглед ВЕБ ДИЗАЈН У следећим задацима заокружите

Studijski primer - Dijagrami toka podataka Softverski inženjering 1

CPHP_19

Ovaj fajl ima 5 stranica. Prvi i drugi domaći zadatak iz Internet tehnologija, Svi css fajlovi su u folderu css a sve slike su u folderu i

PowerPoint Presentation

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

Microsoft PowerPoint - JavaP9_2019

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Slide 1

Microsoft PowerPoint - 04_HTML_5.ppt [Compatibility Mode]

P R O G R A M I R A N J E Z A I N T E R N E T Lab. vježba 2 PROGRAMIRANJE ZA INTERNET Upute za laboratorijske vježbe (izradio: Marin Bugarić, Frano Re

Projektna dokumentacija Boostowski - mobile

Primenjeno programiranje - Vežbe

Funkcije predavač: Nadežda Jakšić

R u z v e l t o v a 5 5, B e o g r a d, t e l : , e - m a i l : p r o d a j p s i t. r s, w w w. p s i t. r s

Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п

Упутство за коришћење АМРЕС FileSender услуге

Memorandum NT_2013

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

Terminski_plan_rada

СТАРТ - СТОП ПАРКИНГ СИСТЕМ КОРИСНИЧКО УПУТСТВО страна 1 од 12

UNION Banka DD Sarajevo Tel.: Dubrovačka br Sarajevo, Bosna i Hercegovina Fax:

Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 10 Zvonimir Bujanović Luka Grubišić Vinko Petričević

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

KATALOG ZNANJA IZ INFORMATIKE

Document ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata

Funkcije predavač: Nadežda Jakšić

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

PowerPoint Presentation

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

Uvod u računarstvo 2+2

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Uputstvo za upotrebu studentskih servisa - gef

PORTAL KATEDRE ZA MEDICINSKU STATISTIKU I INFORMATIKU uputstvo za pristup i korišćenje Ovo uputstvo podrazumeva da studenti imaju osnovno znanje koriš

eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prij

Microsoft Word - privitak prijedloga odluke

ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1

Uputstvo za upotrebu studentskih servisa - gef

Korisničko uputstvo mobilne aplikacije Digitalni Kiosk 1

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Upute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa

Fra Serafina Schoena Rijeka MB: MBO: Žiro račun: kod RBA d.d. GSM:

Tutoring System for Distance Learning of Java Programming Language

Biz web hosting

Mrežno računarstvo

Microsoft PowerPoint - 1. Zend_1 - Instalacija frameworka

SELECT statement basic form

Microsoft PowerPoint - vjezba_03_0809_WWWBR (1) [Compatibility Mode]

Tutoring System for Distance Learning of Java Programming Language

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

Microsoft PowerPoint - 06 Uvod u racunarske mreze.ppt

No Slide Title

Microsoft Word - MySQL_3.doc

Računarski praktikum II - Predavanje 02 - HTML forme. Git.

WordPress & CSP Polisa Sigurnosti Sadržaja za WordPress Milan Petrović WordCamp Niš

QFD METODA – PRIMER

Корисничко упутство апликације езапослени верзија Рачунски центар Електротехничког факултета, Универзитет у Београду

Internet

Глава 7, URL, наставак презентације 7.2 Класе URLEncoder и URLDecoder Карактери у URL-овима могу бити: - велика и мала слова енглеске абецеде А-Z, a-z

NIAS Projekt e-građani KORISNIČKA UPUTA za aplikaciju NIAS Verzija 1.1 Zagreb, srpanj 2014.

SVEUČILIŠTE U ZADRU Odjel za promet i pomorstvo Primjena računala Vježba 3 Web preglednici Agenda Internet i internet protokoli Klijentsko

PHP kod

VALIDNOST CERTIFIKATA ZA PRISTUP INTERNET APLIKACIJAMA POREZNE UPRAVE FEDERACIJE BOSNE I HERCEGOVINE (npis I ejs)

Microsoft PowerPoint - Datoteke [Compatibility Mode]

SEMINAR

UPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS

Mrežno računarstvo

Microsoft PowerPoint - 11_JavaScript_1.ppt [Compatibility Mode]

Microsoft Word - uputstvo-estudent-v2.docx

Microsoft Word - IWT0906R.doc

Uvod u računarstvo 2+2

RSS RSS Really Simple Syndication - veoma jednostavno povezivanje - Predstavlja jednostavan način za auto atsko preuzi a je želje ih informacija sa Va

Upute-podesavanj -accounta

Pravilnik o mjerama za povećanje vidljivosti i prisutnosti Univerziteta u Banjoj Luci i njegovih organizacionih jedinica na Intermetu

Korisničko uputstvo za uslugu ClickPay u Mobilnom bankarstvu BIHAMK 1. OPIS USLUGE Usluga ClickPay omogućava prijem unaprijed popunjenog naloga za pla

Lekcija 6 Prikaz podataka na graficima. Upis u fajl. 1. Cilj vežbe Cilj vežbe je da studente upozna sa: načinima prikaza podataka na različitim grafič

Microsoft Word - Uputstvo za upotrebu studentskih servisa.doc

Повезивање са интернетом

Upute - JOPPD kreiranje obrasca

Korisničke upute za podnošenje zahtjeva za rješavanje spora (žalbe)

Baze podataka MySQL Community Server i MySQL Workbench

Microsoft Word - Uputstvo za upotrebu studentskih servisa.doc

PowerPoint Presentation

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

EMS-ESS-UG-001-SRB-Ucesnik.doc

Припејд картица Корисничко упутство

Metodolosko uputstvo Internet registra medicinske opreme

PowerPoint Template

Korisničko uputstvo za uslugu ClickPay u Internet bankarstvu KJKP Toplane Sarajevo 1. OPIS USLUGE Usluga ClickPay omogućava prijem unaprijed popunjeno

03 HTML - Programiranje Internet aplikacija

Fina pain001 konverter - Korisnička uputa eksterno_ožujak 2016

PROCES KUPNJE ULAZNICE NA PORTALU ULAZNICE.HR Početak kupovine... 2 Plaćanje Mastercard karticom... 5 Plaćanje Maestro karticom... 8 Plaćanje American

Транскрипт:

Руковање клијентским подацима из веб форми помоћу Сервлета У овој вежби су приказани основни принципи руковања клијентским подацима из веб форми помоћу сервлета. Подаци се из Веб форме сервлету шаљу методама HTTP GET и HTTP POST, па се у позваном сервлету у зависности од одабране методе позивају методе: public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException или protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException У методама doget() и dopost() треба преузети све параметре који се шаљу из Веб форми у порукама HTTP GET и HTTP POST. Параметри које прима сервлет су спаковани у променљивој типа HttpServletRequest, а за више детља треба погледати документацију: https://tomcat.apache.org/tomcat9.0doc/servletapi/javax/servlet/http/httpservletrequest.html Вредности параметара се могу добити позивом методе java.lang.string getparameter(java.lang.string name) која је наслеђена из Интерфејса https://tomcat.apache.org/tomcat9.0doc/servletapi/javax/servlet/servletrequest.html 1

ПРИМЕР (handlingforms) Нову веб апликацију handlingforms треба пријавити серверу Apache Tomcat тако што се у датотеку server.xml дода контекст апликације. <Context path="/handlingforms" docbase="handlingforms" debug="0" reloadable="true"/> 1. Пренос параметара из Веб формe тетодама HTTP GET и HTTP POST Креирати две Веб форме које имају иста поља, али параметре сервлету прослеђују помоћу метода HTTP GET и HTTP POST, што се специфицира помоћу атрибута METHOD којем се додељује одговарајућа вредност "GET" или " POST". Код Веб форме (GetForm.html) која податке шаље методом HTTP GET је приказан у следећем листингу. <!DOCTYPE html> <html> <head> <meta charset="utf8"> <title>a Web form using HTTP GET Method</title> </head> <body> <center> <h1>a Web form using HTTP GET Method</h1> <form ACTION="GetPostFormsServlet" METHOD="GET"> First name: <input TYPE="TEXT" NAME="firstName" VALUE="Miki"><br> Last name: <input TYPE="TEXT" NAME="lastName" VALUE="Maus"><p> <input TYPE="SUBMIT" VALUE="Submit with HTTP GET"> </form> </center> </body> </html> Веб форма GetForm.html је. Из заглавља Веб форме <form ACTION="GetPostFormsServlet" METHOD="GET"> 2

се види да се извршавање акције притиском дугмета input TYPE="SUBMIT" позива метода doget сервлета GetPostFormsServlet, која приказује податке које добија помоћу параметра HttpServletRequest request. Приликом употребе методе HTTP GET вредности које се уносе у поља Веб форме се виде у адресној линији претраживача што се може приметити на претходној слици. Адресна линија је: http://localhost/handlingforms/getpostformsservlet?firstname=miki&lastname=maus Формат адресне линије је следећи: Адреса Веб апликације која рукује HTTP GET поруком, што је у овом случају сервлет http://localhost/handlingforms/getpostformsservlet. Знак упита (?) којим почиње стринг са параметрима који се преузимају из Веб форме. За сваку вредност из поља Веб форме се формира пар у формату ИмеПоља=Вредност, па се тако у адресном стрингу могу уочити следеће вредности које су прочитане из поља у Беб форми firstname=miki и lastname=maus. Парови са именима поља и учитаним вредностима су раздвојени знаком &. Код Веб форме (PostForm.html) која податке шаље методом HTTP POST је приказан у следећем листингу. <!DOCTYPE html> <html> <head> <meta charset="utf8"> <title>a Web form using HTTP POST Method</title> </head> <body> <center> <h1>a Web form using HTTP POST Method</h1> <form ACTION="GetPostFormsServlet" METHOD="POST"> First name: <input TYPE="TEXT" NAME="firstName" VALUE="Paja"><br> Last name: <input TYPE="TEXT" NAME="lastName" VALUE="Patak"><p> <input TYPE="SUBMIT" VALUE="Submit with HTTP POST"> </form> </center> </body> </html> 3

Веб форма PostForm.html је. Из заглавља Веб форме <form ACTION="GetPostFormsServlet" METHOD="POST"> се види да се извршавање акције притиском дугмета input TYPE="SUBMIT" позива метода dopost сервлета GetPostFormsServlet, која приказује податке које добија помоћу параметра HttpServletRequest request. Приликом употребе методе HTTP POST вредности које се уносе у поља Веб форме се не виде у адресној линији претраживача, што се може приметити на претходној слици. Сервлет GetPostFormsServlet који рукује подацима са форми треба пријавити у web.xml датотеци Веб апликације. <servlet> <servletname>getpostformsservlet</servletname> <servletclass>getpostformsservlet</servletclass> </servlet> <servletmapping> <servletname>getpostformsservlet</servletname> <urlpattern>/getpostformsservlet</urlpattern> </servletmapping> 4

2. Руковање подацима из Веб форме Креирати Веб форму која омогућује унос података за плаћање чланарине у библиотеци. Веб форма треба да омогући унос следећих података: име особе, презиме особе, број чланске карте, избор типа кредитне картице за плаћање, број кредитне картице, приказ износа чланарине (нпр. 300 динара) поље у којем се потврђује да ли се чланарина наставља од претходне године, у којем случају се износ чланарине умањује 10%. Написати сервлет (UplataClanarineServlet) који учитава унете податке и уписује их у датотеку са именом које одговара чланском броју и годином за коју се уплаћује чланарина (нпр. име фајла је 32572018.cbt). За прихватање података из Веб форме пројектовати одговарајућу JavaBean класу, коју потом треба икористити за серијализацију објекта у датотеку. Решење Најпре треба обезбедити позив форме за плаћање чланарине из главне странице, на пример додавањем следећег кода: <h2>forma za placanje clanarine u biblioteci</h2> <p>web forma koja omogucuje unos podataka za uplatu clanarine u biblioteci.<br> Zbog polja za unos broja kreditne kartice koje je tipa <b>password</b> za slanje podataka se koristi metoda HTTP POST</p> <p><a href="uplataclanarine.html">uplata clanarine za biblioteku</a></p> Након тога треба креирати веб форму која садржи сва потребна поља за унос података за плаћање чланарине у библиотеци. При томе треба обезбедити да се потврда уплате реализује дугметом типа SUBMIT са одговарајућим натписома (нпр. Потврда плаћања), али и да се обезбеди опција за одустајање од плаћања која враћа корисника на почетну страну (index.html). 5

HTML код Веб форме је приказан у следећем листингу. <form ACTION="UplataClanarineServlet" METHOD="POST"> Ime: <input TYPE="TEXT" NAME="ime"><p> Prezime: <input TYPE="TEXT" NAME="prezime"><p> Clanski broj: <input TYPE="TEXT" NAME="clanskiBroj"><p> <hr> Iznos clanarine: 300 dinara<p> Produzenje clanarine: <INPUT TYPE="CHECKBOX" NAME="produzenjeClanarine"><p> <hr> Kreditna kartica:<p> <INPUT TYPE="RADIO" NAME="kreditnaKartica" VALUE="visa">Visa<p> <INPUT TYPE="RADIO" NAME="kreditnaKartica" VALUE="mastercard">Master Card<p> Broj kartice: <INPUT TYPE="PASSWORD" NAME="brojKreditneKartice"><p> <hr> <input TYPE="SUBMIT" NAME="potvrda" VALUE="Potvrda placanja"> <input TYPE="SUBMIT" NAME="odustajanje" VALUE="Odustajanje od placanja"> </form> Сервлет UplataClanarineServlet треба пријавити у датотеку web.xml. <servlet> <servletname>uplataclanarineservlet</servletname> <servletclass>uplataclanarineservlet</servletclass> </servlet>... <servletmapping> <servletname>uplataclanarineservlet</servletname> <urlpattern>/uplataclanarineservlet</urlpattern> </servletmapping> С обзиром да се приликом преноса параматара из Веб форме појављује поље поље чији садржај треба да буде невидљив у Веб форми и приликом преноса на сервер, користи се HTTP POST метода за пренос података на сервер. То значи да сервлет треба код за обраду уплате чланарине да 6

имплементира у методи dopost(), при чему треба да утврди да ли је притиснуто дугме за потврду уплате чланарине, или дугме за одустајање и повратак (редирекција) на почетну страну. protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getparameter("potvrda")!= null) { // uplata clanarine PrintWriter out = response.getwriter(); out.println("potvrda uplate clanarine");... // serijalizacija podataka u fajl pomocu JavaBean klase... else if (request.getparameter("odustajanje")!= null) { // odustajanje od uplate clanarine // redirekcija na glavnu stranu response.sendredirect("index.html"); За серијализацију података о чланарини је креирана класа ClanarinaBiblioteke која имплементира интерфејс Externalizable. Серијализација је имплементирана у оквиру dopost() методе сервлета UplataClanarineServlet, што је приказано у следећем листингу (фајл је снимљен у контексту веб апликације). String tipkartice = request.getparameter("kreditnakartica"); if (tipkartice.equals("visa")){ out.println("tip kartice: Visa"); tipkartice = "Visa"; if (tipkartice.equals("mastercard")){ out.println("tip kartice: Master Card"); tipkartice = "Master Card"; // serijalizacija u fajl ClanarinaBiblioteke cb = new ClanarinaBiblioteke(); cb.setime(request.getparameter("ime")); cb.setprezime(request.getparameter("prezime")); cb.setclanskibroj(request.getparameter("clanskibroj")); cb.settipkreditnekartice(tipkartice); cb.setbrojkreditnekartice(request.getparameter("brojkreditnekartice")); // izbor foldera veb applikacije String webappfolder = getservletcontext().getrealpath("/"); String datoteka = webappfolder + cb.getclanskibroj() + "2018.cbt"; FileOutputStream fos; try { fos = new FileOutputStream(datoteka); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeobject(cb); oos.close(); catch (IOException e) { // TODO Autogenerated catch block e.printstacktrace(); 7

Задаци за самостални рад Задатак 1 Решени пример са са уписом појединачних уплата чланарине помоћу Веб форме проширити тако да се омогући: (1) Чување свих уплата у листи. (2) Написати сервлет који чита снимљене уплате у фајловима и приказује их у форматираној HTML страници. Задатак 2 Написати и тестирати Веб апликацију која омогућује: (1) Ажурирање података о предузећу помоћу Веб форме. Податке снимити у датотеци preduzece.pred. (2) Евидентирање запослених у предузећу тако што се подаци о новим запосленима уносе у Веб форми. Такође написати сервлет који приказује списак (листу) свих запослених у форматираној HTML страници. Податке о запосленима чувати у листи која се снима у датотеку zaposleni.pred. (3) Евидентирање делатности предузећа тако што се подаци о новим делатностима уносе у Веб форми, а списак делатности се чува у листи која се серијализује у датотеку delatnosti.pred. Такође обезбедити приказ свих делатности предузећа у форматираној HTML страници. (4) Креирати почетну страницу Веб апликације из које се покрећу остале Веб странице потребне за реализацију апликације. Обезбедити унифицирано форматирање свих страница применом CSS стилова. Ентитети потребни за реализацију Веб апликације су приказани на следећој слици. Zaposleni im e prezim e korisnickoim e datum Zaposlenja : Date 1..* zaposleni 1..1 Preduzece naziv adresa m esto zip pib : int : int 1..1 1..* Delatnost naziv opis 8

Линкови [1] The Apache Tomcat. http://tomcat.apache.org/ [2] Marty Hall and Larry Brown. Core Servlets and JavaServer Pages, Free Online Version of Second Edition. http://pdf.coreservlets.com/. Chapter 19: Creating and Processing HTML Forms. [3] Marty Hall and Larry Brown. Core Servlets and JavaServer Pages, Free Online Version of Second Edition. http://pdf.coreservlets.com/. Chapter 4: Handling the Client Request: Form Data. [4] https://tomcat.apache.org/tomcat9.0doc/servletapi/overviewsummary.html [5] https://tomcat.apache.org/tomcat9.0doc/servletapi/index.html. 9