vezbe 07 - prosledjivanje atributa

9
VEŽBE 07 – PROSLEĐIVANJE ATRIBUTA Set i Get Atribute U MVC modelu Servlet ima ulogu da kontroliše tok informacija i prosleđuje odgovarajuće podatke na željene stranice. Objekat bilo kojeg tipa se iz Servleta može poslati preko request objekta metodom: request.setAttribute(„ime atributa“, objekat); Na JSP stranici (ili Servlet-u) se objekat preuzima takođe preko request objekta metodom: request.getAttribute(„ime atributa“); Pošto se sa getAttribute može pokupiti bilo koji tip objekta neophodno je uraditi „kastovanje“ ili naznaku kojeg tipa je pokupljeni atribut. PRIMER: Prosleđivanje atributa „msg“ iz Servleta i njegovo prihvatanje na JSP strani. SERVLET JSP request.setAttribute("msg", msg); String msg = (String) request.getAttribute("msg"); Sa ovako osmišljenim prenosom atributa JSP se može dizajnirati da predstavlja VIEW za određeni tip objekta ili njegovu kolekciju, s’tim što nije važno ko će proslediti objekat na ispis, pod pretpostavkom da zna ime atributa koji se šalje. Link sa parametrima U velikom broju slučajeva neophodno je pomoću nekog linka pozvati Servlet i u isto vreme proslediti mu i parametre za obradu. PRIMER: Link ka Servletu ServletOsoba sa prosleđenim parametrom akcija=“ispis“ i br=“3“. 1

Upload: serbiaduke

Post on 09-Nov-2015

13 views

Category:

Documents


7 download

DESCRIPTION

JAva

TRANSCRIPT

VEBE 07 PROSLEIVANJE ATRIBUTASet i Get Atribute U MVC modelu Servlet ima ulogu da kontrolie tok informacija i prosleuje odgovarajue podatke na eljene stranice.Objekat bilo kojeg tipa se iz Servleta moe poslati preko request objekta metodom:

request.setAttribute(ime atributa, objekat);Na JSP stranici (ili Servlet-u) se objekat preuzima takoe preko request objekta metodom:

request.getAttribute(ime atributa);Poto se sa getAttribute moe pokupiti bilo koji tip objekta neophodno je uraditi kastovanje ili naznaku kojeg tipa je pokupljeni atribut.

PRIMER: Prosleivanje atributa msg iz Servleta i njegovo prihvatanje na JSP strani.

SERVLETJSP

request.setAttribute("msg", msg);String msg = (String) request.getAttribute("msg");

Sa ovako osmiljenim prenosom atributa JSP se moe dizajnirati da predstavlja VIEW za odreeni tip objekta ili njegovu kolekciju, stim to nije vano ko e proslediti objekat na ispis, pod pretpostavkom da zna ime atributa koji se alje.

Link sa parametrimaU velikom broju sluajeva neophodno je pomou nekog linka pozvati Servlet i u isto vreme proslediti mu i parametre za obradu.

PRIMER: Link ka Servletu ServletOsoba sa prosleenim parametrom akcija=ispis i br=3.

ISPIS

Ovako prosleeni parametri se u Servletu kupe u doGet metodi sa: String akcija = request.getParametar("akcija");

String br = request.getParametar("br");

ZADATAK:Kreirati klasu Auto sa :

parametrima: marka, cena, godite.

Konstuktorima

Get i set metodama

Kreirati stranicu index.jsp sa linkovima na: Stranicu unos.jsp.

ServletAuto sa parametrom ispis=lista ServletAuto sa parametrom ispis=jedan i br=3Kreirati stranicu unos.jsp koja:

Sadri formu za prosleivanje marke, cene i godita na ServletAuto post metodom.

Kupi atribut msg i ispisuje ga ako postojiKreirati stranicu auto.jsp za ispis jednog prosleenog auta tako to:

Kupi atribut Auto auto.

Kreira odgovarajuu tabelu i ispisuje podatke auta

Kreirati stranicu listaAuta.jsp za ispis prosleene liste auta tako to:

Kupi atribut ArrayListlistaAuta.

Kreira odgovarajuu tabelu i ispisuje podatke svih autaKreirati servlet ServletAuto koji u metodama :

doPost kupi parametre sa forme, proverava format cene i godita, kreira auto i prosleuje ga na auto.jsp preko imena atributra auto doGet kupi parametar ispis, i ako je ispis jednako:

lista kreira jednu listu auta i prosleuje je na listaAuta.jsp

jedan kupi parametar br i prosleuje auto iz liste sa pozicije br na auto.jsp.

PROBATI ZA VEBU grupni rad na projektu:

GRUPA 1 : kreira, index.jsp, listaAuta.jsp GRUPA 2: kreira unos.jsp, Auto.jsp,

GRUPA 3: kreira Auto.java, ServletAuto.java

Kada odgovarajua grupa zavri svoj deo kopira ga na server u odgovarajui zajedniki folder da ga preuzmu druge dve grupe.

Ako se ispotuju pravila saradnje po kompletiranju projekta sve bi trebalo da radi !!!

REENJE:public class Auto {

private String marka;

private int cena;

private int godiste;

public Auto(String marka, int cena, int godiste ) {

this.marka = marka;

this.cena = cena;

this.godiste = godiste;

} public Auto(){}

public String getMarka(){ return marka;}

public void setMarka(String marka){this.marka = marka;}

public int getCena(){return cena;}

public void setCena(int cena){this.cena = cena;}

public int getGodiste(){return godiste;}

public void setGodiste(int godiste){this.godiste = godiste;}}

index.jsp UNOS
LISTA
JEDAN

unos.jsp

MARKA :

CENA :

GODISTE :

poetna

0) {

%>

auto.jsp

PODACI O AUTOMOBILU

MARKA

CENA

GODISTE

listaAuta.jsp

PODACI O AUTOMOBILIMA

MARKA

CENA

GODISTE

ServletAuto.jsppublic class ServletAuto extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(

HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

ArrayList la = new ArrayList();

// simuliramo listu od 5 auta

la.add(new Auto("Skoda", 2000, 1998));

la.add(new Auto("BMW", 5800, 2004));

la.add(new Auto("Toyota", 3500, 2002));

la.add(new Auto("Audi", 4000, 2005));

la.add(new Auto("Kec", 750, 1998));

String ispis = req.getParameter("ispis");

if (ispis != null && ispis.length()>0){

if (ispis.equals("lista")){

// prosledjivanje liste na ispis

req.setAttribute("listaAuta",la);

req.getRequestDispatcher("listaAuta.jsp").forward(req, resp);

}else if (ispis.equals("jedan")){

String br = req.getParameter("br");

if (br != null && br.length()>0){

// prosledjivanje auta na ispis

req.setAttribute("auto",la.get(new Integer(br)));

req.getRequestDispatcher("auto.jsp").forward(req, resp);

}

}

}else {

req.setAttribute("msg","Parametri nisu dobrog formata !!!");

req.getRequestDispatcher("index.jsp").forward(req, resp);

}

}// kraj doGet

protected void doPost(

HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

String marka = req.getParameter("marka");

String cenaStr = req.getParameter("cena");

String godisteStr = req.getParameter("godiste");

if (marka != null && marka.length()>0 &&

cenaStr != null && cenaStr.length()>0 &&

godisteStr != null && godisteStr.length()>0){

try {

int cena = Integer.parseInt(cenaStr);

int godiste = Integer.parseInt(godisteStr);

Auto a = new Auto(marka, cena, godiste);

req.setAttribute("auto", a);

req.getRequestDispatcher("auto.jsp").forward(req, resp);

} catch (Exception e) {

req.setAttribute("msg","Cena, godiste nisu dobrog formata");

req.getRequestDispatcher("unos.jsp").forward(req, resp);

}

}else{

req.setAttribute("msg","morate popuniti sva polja !!!");

req.getRequestDispatcher("unos.jsp").forward(req, resp);

}

}// kraj doPost}

1