Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 25

Web

programiranje
Prof. dr Milena Stanovi
Doc. dr Ivan Petkovi
Arhitektura Web aplikacija

HTTP
Vieslojne Web aplikacije

Model i logika
domena

Sloj perzistencije - ORM


(Object-Relational Mapping)
alat
(N)Hybernate, Entity
Framework, Zend, Doctrine,
CakePHP
Arhitektura (Java
tehnologija)
Domain Driven Design
CGI
Common Gateway Interface => API za web server
Definie kako e web server komunicirati sa
aplikacijom (primanje i slanje podataka)
Omoguava pokretanja bilo kog izvrnog koda od
strane web servera
Izvrni kod moe biti napisan u bilo kom
programskom jeziku koji jednostavno koristi
standardni ulaz, izlaz i promenljive okruenja (C,
Python, Perl, ...)
CGI

request stdin

Env. vars
HTTP
Client CGI App
Server stdout
response
stderr
Web server alje CGI programu/skripti :
Podatke sa klijenta (dobijenih GET ili POST metodom)
postavlja standardni ulaz
Kontekst (IP adresu klijenta, zaglavlje zahteva, ...)
postavlja promenljive okruenja
CGI program alje web serveru rezultat (HTTP
zaglavlja i HTML stranu) preko standardnog
izlaza
Hello World CGI u C-u
#include <stdio.h>
int main(void) {
printf("Content-Type: text/plain;charset=us-
ascii\n\n");
printf("Hello world\n\n");
return 0;
}
Procesiranje formi
PHP
Instaliran kao Apache modul (server API, bre) ili
CGI modul (sigurnije)
Sintaksa slina C, Javascript ili Perlu
Jezik dinaminih tipova
PHP - zastupljenost
Superglobalne
promenljive
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
$GLOBALS
Asocijativni niz globalnih promenljivih

$x = 75;
$y = 25;

function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}

addition();
echo $z;
$_SERVER
Sadri informacije o zaglavljima, putanjama,
skriptama.

<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
$_REQUEST
Sadri podatke poslate sa klijeta preko GET ili POST
metode

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">


Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php
$name = $_REQUEST['fname'];
echo $name;
?>

</body>
</html>
$_POST, $_GET
$_POST sadri informacije poslate sa klijenta
preko POST metode
$_GET sadri informacije poslate sa klijenta preko
GET metode. Takoe moe da prikupi informacije
sadrane u adresi (querystring)
Slanje podataka serveru
<FORM> element; GET, POST metod => asocijativni niz
podataka
GET:
podaci su vidljivi u adresi (querystring), tj. adresa sadri
poslate podatke
Primer lokacije u Google mapama

https://www.google.com/search?sourceid=chrome&ie=UTF-
8&q=web+programming

POST:
Slanje vee koliine podataka
Slanje osetljivih podataka (ifre)
Slanje binarnih fajlova (slike, itd)
Podaci se ne vide u adresi
Slanje podataka serveru

<form action=data1.php>
<input type=text name=ime
value=Ana />
GET ili POST
<input type=text ime : Ana
Serve
name=prezime prezime : Jovanovic
value=Jovanovic /> podatak1: neka r
<input type=hidden vrednost
name=podatak1 value=neka
vrednost />
</form>
Klase i objekti u PHP-u
class Animal
{
public $blood;
public $name;
public function __construct($blood1, $name1=NULL)
{
$this->blood = $blood1;
if($name) { $this->name = $name1; }
}
}

$user = new Animal(warm", Leo");


Nasleivanje
class Mammal extends Animal
{
public $furColor;
public $legs;
function __construct($furColor, $legs, $name=NULL)
{
parent::__construct("warm", $name);
$this->furColor = $furColor;
$this->legs = $legs;
}
}
}

$d = new Dog("Black and Tan", "Angus");


Nasleivanje
class Dog extends Mammal
{
function __construct($furColor, $name)
{
parent::__construct($furColor, 4, $name);
self::bark();
}
function bark()
{
print("$this->name says 'woof!'");
}
}
Popularna PHP okruenja
Model View Controller
ORM

Object-Relational
Mapping
Preslikava objekte u
relacionu bazu:
klasa => tabla
objekat => red u tabeli
Veina PHP okruenja
podrava ORM

You might also like