Professional Documents
Culture Documents
Veb-Programiranje - Usmeni.v1.0 PDF
Veb-Programiranje - Usmeni.v1.0 PDF
Veb-Programiranje - Usmeni.v1.0 PDF
Lazar Ljubenovi
lazar.ljubenovic.1995@gmail.com
2016-06-16
Zapisnik promena
2
Lista pitanja
Najea pitanja:
3
Odgovori
Frontend tehnologije
Pitanje 1 Veb-aplikacije.
4
Lazar Ljubenovi 5
Odgovor.
HTML5 pokuava da ovo traenje greka pretoi u kod kako bi svi itai
mogli da preuzmu ovaj standard i tako vie ne ulau vreme i novac u
konzistentnost prikaza stranica.
1
SGML (Stanrd General Markup Language je ISO specifikacija napravljena radi de-
finisanja deklarativnih jezika za obeleavanje. Na vebu, HTML4, XHTML i XML su
popularni jezici bazirani na SGML-u.
Lazar Ljubenovi 9
Malo ljudi u praksi koristi XHTML. Ako se sadraj sauva kao internet
medija tip application/xhtml+xml, sem toga to nee raditi u starijim
verzijama Internet Explorera, i najmanja greka e kao posledicu imati
neprikazivanje stranice ak i u brauzerima koji podravaju XHTML.
Zato, ono to ponekad izgleda kao XHTML ( <br/> je XHTML, <br>
je html) se zapravo servira i interpretira kao HTML.
Osnovni elementi Jedini osnovni element koji svaka stranica mora da ima
da bi se mogla smatrati HTML stranicom jeste <html> . Ovaj element pred-
stavlja koren HTML dokumenta. Svi elementi moraju biti njegovi potomci.
Element <nav> koristi se za deo stranice koji sadri linkove do drugih stra-
nica ili do raznih delova iste stranice. Dakle, to je sekcija sa navigacionim
linkovima.
Tekst sadraj Ovi elementi se koriste radi organizacije blokova ili sekcija.
Vani su zbog pristupanosti i SEO jer identifikuju znaaj sadraja koji se u
njima sadri.
Element <figure> pretstavlja sadraj koji moe postojati sam za sebe, naj-
ee uz natpis koji je predstavljen elementom <figcaption> . Mada je usko
vezan za glavni tok, njegova pozicija ne zavisi od glavnog toka. Ovo je obino
slika, ilustracija, dijagram, iseak koda ili ema koja je referencirana u tek-
stu, ali se moe pomeriti na sledeu stranicu ili u apendiks, a da ne narui
glavni tok.
Element <hr> po HTML5 specifikaciji predstavlja tematsku pauzu izmeu
elemanta na nivou paragrafa (na primer, promena scene u prii ili promena
teme u lanku). U ranijim verzijama HTML-a, ovaj element je predstavljao
horizonalnu liniju bez semantikog znaenja. Mada ga veb-itai i dalje naj-
ee predstavljaju na isti nain, on sada ima semantiko znaenje, a ne
prezentaciono.
Itd, itd, itd.
Primer SSP:
1 HTML.justify: full
2 *H1.justify: center
3 *OL.LI.label: A
stranica dele isti eksterni .css fajl, ime se smanjuje ponavljanje istih poda-
taka u strukturi samih dokumenata. Izmena grafikog izgleda neogranienog
broja stranica svodi se na promenu nekoliko linija CSS koda u jednom fajlu.
Pored toga, mogue je isti sadraj prezentovati na razliite naine, npr. za
prikaz na veb-stranici ili za tampanje, koristei dva razliita CSS-a.
2
Oktotrop sa nazivom identifikatora ( ##logo ) je skraen oblik za [id="logo"] .
3
Taka sa nazivom klase ( .card ) je skraen oblik za [class="card"].
14 Lazar Ljubenovi
Kreirao ga je Brendan Ajk 1995. godine dok je radio kao inenjer u Net-
skejpu. Prvi put je objavljen uz Netscape 2 poetkom 1996. Prvenstveno je
trebalo da se zove LiveScript, ali je preimenovan u JavaScript kao (loa) mar-
ketinka strategija sa namerom da se osloni na tadanju popularnost jezika
Java, i pored toga to jezici imaju malo toga zajednikog.
Nekoliko meseci kasnije, Majkrosoft je izdao JScript uz IE3, koji je po mno-
gim karakteristikama bio kompatibilan sa JavaScriptom. Ubrzo potom, Net-
skejp je JavaScript prosledio evropskoj organizaciji za standrde Ecma In-
ternational, to je kao rezultat iste godine dalo prvu ediciju ECMAScript
standarda. Standard je doiveo znaajno unapreenje 1999. godine objavom
tree edicije, i od tada je ostao manje-vie stabilan. Mada je etvrta edicija
odbaena zbog politikih neslaganja o kompleksnosti jezika, mnogi njeni de-
lovi su posluili kao osnova za petu ediciju (objavljena 2009), kao i za estu
(jun 2015).
JavaScript podrava sledee tipove podataka: Number , String , Boolean ,
Object (gde spadaju Function , Array , Date i RegExp ), kao i jo dva dodatna
tipa, null i undefined .
JavaScript pravi razliku izmeu null i undefined . null je vrednost koja
ukazuje da je programer namerno postavio vrednost na nita (i to se moe
uraditi jedino korienjem kljune rei null ). S druge strane, undefined
je konstanta koja se dodeljuje neinicijalizovanim (ve samo deklarisanim)
promenljivama.
Svaka vrednost se moe kastovati u logiku vrednost, pri emu false , 0 ,
prazni stringovi "" , NaN , null i undefined postaju false , dok sve ostalo
postaje true .
Pitanje 9 JS objekti.
1 var obj = {
2 name: "Carrot",
3 "for": "Max",
4 details: {
5 color: "orange",
6 size: 12
7 }
8 }
XML
Pitanje 14 XML tehnologije.
Postoje tri vrste tagova: otvoren tag (na primer, <section> ), zatvoren tag
(na primer, </section> ), tag praznog elementa (na primer, <line-break /> ).
Logika reprezentacija komponente koja se sastoji od otvorenog taga, sa-
draja i zatvorenog taga naziva se element. Ukoliko sadraj sadri druge
tagove koji ine jedan ili vie elemenata, takvi elementi se nazivaju elementi-
deca. U optem sluaju, i deca mogu imati svoju decu, pa se svi oni jednim
imenom nazivaju potomci. Deca se jo nazivaju direktni potomci.
Konstrukcija u okviru taga koja se sastoji od para ime-vrednost naziva se
atribut. U primeru <step number="3">Connect A to B.</step> izdvaja se atri-
but number sa vrednou 3 .
XML dokumenti mogu poinjati i nekim meta-podacima, odnosno informa-
cijama o sebi samima.
<?xml version="1.0" encoding="UTF-8"?>
da odbiju dokument ije ime nejmspejsa nije validan URI, i mnogi XML
parseri dozvoljavaju korienje bilo kakvog stringa.
XML nejmspejs se deklarie korienjem rezervisanog XML atributa xmlns
ili xmlns:prefiks , ija vrednost mora biti validno nejmspejs ime. Na pri-
mer, sledea deklaracija mapira prefiks xhtml: na XHTML nejmspejs.
xmlns:xhtml="http://www.w3.org/1999/xhtml"
Svaki element ili atribut ije ime poinje prefiksom xhtml: se svrstava
pod XHTML nejmspejs, ako on ili prethodnik ima gorenavedenu deklaraciju
nejmspejsa. Ako se ne navede prefiks, smatra se da se radi o podrazumeva-
nom nejmspejsu. U tom sluaju se za svaki element koji nema nejmspejs-
prefiks smatra da pripada XHTML nejmspejsu, ako on ili prethodnik ima
gorenavedenu deklaraciju nejmspejsa.
Pitanje 16 DTD.
Pitanje 19 XPath.
Pitanje 21 XSL.
1 <employees>
2 <employee>
3 <firstName>John</firstName> <lastName>Doe</lastName>
4 </employee>
5 <employee>
6 <firstName>Anna</firstName> <lastName>Smith</lastName>
7 </employee>
8 <employee>
9 <firstName>Peter</firstName> <lastName>Jones</lastName>
10 </employee>
11 </employees>
Pitanje 23 JSON.
u jezicima iz C-porodice (C, C++, C#, Java, JavaScript, Perl, Python, itd).
Zvanian internet medija tip je application/json, a ekstenzija je .json.
Zasniva se na dve strukture:
Skup parova ime-vrednost. U zavisnosti od jezika, ovo moe biti rea-
lizovano kao objekat, slog, struktura, renik, he-tablea, lista sa klju-
evima ili asocijativni niz.
Ureena lista vrednosti. U veini jezika ona je realizovana kao niz,
vektor, lista ili sekvenca.
JSON je format koji se najee koristi za asinhronu razmenu podatka izmeu
brauzera i servera, AJAJ (mada je u iroj upotrebi termin AJAX, iako se ne
korsiti XML ve JSON).
Pitanje 24 AJAX.
1 <?php
2 header(Content-Type: text/plain);
3 echo "This is the returned text.";
4 ?>
Serverske tehnologije
Pitanje 25 CGI.
1 #!/usr/bin/python
2
3 import cgi
4 import cgitb
5 cgitb.enable()
6
7 input_data=cgi.FieldStorage()
8
9 print Content-Type:text/html # Sledi HTML
10 print # Prazna linija
11 print <h1>Rezultat sabiranja</h1>
12 try:
13 num1=int(input_data["num1"].value)
14 num2=int(input_data["num2"].value)
15 except:
16 print <p>Unos nisu celi brojevi.</p>
17 return 1
18 sum=num1+num2
19 print <p>{0} + {1} = {2}</p>.format(num1, num2, sum)
ovo znai da je klijent-server interkacije stejtles, jer svaki novi zahtev kao
rezultat ima novi odgovor.
Ako se svojstvo deklarie pomou var , ili se funkciji izostavi prefiks, bie
definisani kao javni. Objekti istog tipa e imati pristup privatnim i zatienim
lanovima jedni drugih iako nisu deo iste instance.
7 // Sa mapiranjem
8 Person p = repository.GetPerson(10);
9 String name = p.getFirstName();
Veb-servisi
Pitanje 32 Veb-servisi.
SOAP moe biti osnovni sloj za stek protokola veb-servisa, jer moe da prui
osnovni frejmvork za razmenu poruka veb-servisima. Baziran je na XML-u i
sastoji se od tri dela:
proirljivost,
Pitanje 35 RPC.
Sledi spisak nekih esto korienih biblioteka, sa nekim esto korienim kla-
sama i interfejsima iz njih.
42 Lazar Ljubenovi
Pitanje 39 JavaBeans
Pitanje 40 JSP.
4
Servleti su programi koji proiruju funkcionalnost servera. Iako mogu da obrade bilo
koji tip zahteva, najee implementiraju aplikacije na veb-serveru.
Lazar Ljubenovi 45
1 <p>Brojanje:</p>
2 <% for (int i = 0; i <3; i++) { %>
3 <p>Ovaj broj je <%= i %>.</p>
4 <% } %>
5 <p>Gotovo.</p>
Java apleti se izvravaju veoma brzo, i do 2011. su bili nekoliko puta bri od
JavaScripta. Za razliku od JavaScripta, apleti imaju pristup 3D hardverskoj
akseleraciji (ubrzanju), to ih ini idealnim za netrivijalne i raunski zahtevne
vizuelzacije. Meutim, brauzeri su dobili podrku za hardverom ubrzanu
grafiku zahvaljujui kanvas tehnologiji (konrektno WebGL za 3D grafiku),
kao i JIT kompajlere za JS, pa je razlika u brzini postala manje primetna.
Sledei primer ilustruje korienje Java apleta kroz paket java.applet. Pri-
mer koristi klase iz Javinog AWT-a (Abstract Window Toolkit) za ispisivanje
poruke Hello, World!.
1 import java.applet.Applet;
2 import java.awt.*;
3
4 // Ovaj fajl treba da se snimi pod imenom "HelloWorld.java".
5 // Nasleuje se objekat Applet.
6 public class HelloWorld extends Applet {
7
8 // Crtanje po ekranu.
9 public void paint(Graphics g) {
10 // Ispis stringa na poziciji (20, 10).
11 g.drawString("Hello, world!", 20, 10);
12 // Crtanje kruga na poziciji (40, 30).
13 g.drawArc(40, 30, 20, 20, 0, 360);
14 }
15 }
46 Lazar Ljubenovi