Upload
serbiaduke
View
219
Download
2
Embed Size (px)
DESCRIPTION
Java internet programiranje
Citation preview
VEBE 05 OBRADA PARAMETARAElementi forme prosleeni na obradu kupe se na sledei nain.
getParameterSvi elementi forme se automatski prosleuju na krajni cilj naveden u action parametru.Na krajnom cilju (target - JSP stranica ili Servlet) parametar se preuzima pomou request objekta metodom:
request.getParameter(ime parametra forme);Poto se sa kroz http salje samo tekst to znai da se svaki prosleeni parametar alje kao String. Zato getParameter vraa String kao rezultat i to vrednost parametra odreenog imena.
PRIMER: Prosleivanje parametra ime sa forme i njegovo prihvatanje.FORMAJSP / SERVLET
String ime = request.getParameter("ime");
Ukoliko se prosleuje vie parametara istog imena (combo grupa) koristi se request.getParameterValues(ime") Link sa parametrimaU velikom broju sluajeva neophodno je pomou nekog linka pozvati Servlet ili JSP stranicu i u isto vreme proslediti im i parametre za obradu.
PRIMER: Link ka Servletu ServletOsoba sa parametrima 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");
NAPOMENA: nije vano ko e proslediti parametar, ve ime parametra koji se alje.
Primer 1: Realizovati sabiranje 2 sabirka, celobrojnog tipa, koristei JSP stranicu. Na jednoj JSP stranici definisati formu (kao to je raeno u HTML 3), a zatim pozvati drugu JSP stranicu koja e generisati rezultat i ispisati ga.
Sabiranje pomocu JSP prvi:
drugi:
Sabiranje pomocu JSP - REZULTAT Zbir je:
NAPOMENA : proveriti da li su prvi i drugi integeri, tj da li je mogue uraditi parseInt.
Resenje: Zaokruiti nesiguran kod sa try catch blokom
SERVLETI Izvravaju logiku na serverskoj strani Obrauju zahteve i mogu da kreiraju odgovor u vidu kompletnih html stranica
Kreiraju se u okviru dinamikog projekta u okviru src dela
Nakon kreiranja dobija se sledei kod:
public class TEST extends HttpServlet {
private static final long serialVersionUID = 1L;public TEST() { super();}protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ovde se resava problematika GET metode
}protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {// ovde se resava problematika POST metode
}}
Dve osnovne metode su doGet , doPost sa parametrima
HttpServletRequest request, HttpServletResponse response Request se koristi za prikupljanje prosleenih parametara sa forme Response se koristi za prosleivanje kreiranog odgovora
Postoje jo i sledee metode:
Init: radi inicijalizaciju i poziva se samo jednom
Service: obrauje vie zahteva i poziva druge metode
Destroy: poziva se samo jednom pri iskljuenju servleta
Prilikom kreiranja ServletTest se mapira u web.xml fajlu i dobija se sledei kod ServletTest ServletTest rs.ac.kg.tfc.ServletTest
ServletTest /ServletTest
NAPOMENA: nikada ne kopirati servlet iz drugog projekta jer ga nee imati u web.xml fajlu pa ga samim tim nee ni server prepoznati
Poziv servleta sa html stranice U okviru taga podeava se akcja na servlet (preko imena servelta) i metod zahteva
itanje podataka u servletu sa prosleene html forme
request.getParameter(ime")
Dobija se String vrednost prvog elementa koji se zove ime Rezultat je null ako ne postoji takav parametar u elementima forme
request.getParameterValues(ime")
Dobija se niz String[] vrednosti za sve elemente koji se zovu ime Dobija se niz sa jednim elementom, ako se ime pojavljuje samo jednom
Rezultat je null ako ne postoji takav parametar u elementima forme
request.getParameterNames() ili request.getParameterMap()
Dobija se Enumeration ili Map objekti od poslatih elemenata i obiajeno je da je rezervisano za debagovanje Obrada prikupljenih podataka sa forme koja ima jedno polje imeprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html");
String ime = request.getParameter("ime");
PrintWriter out = response.getWriter();
String docType =
"\n";
out.println(docType +
"\n" +
"Hello\n"+
"\n" +
"Hello "+ime+"\n" +
"");
}
Veoma je vano ispitati da li je uspeno uitan parametar pre njegovog korienja
Svi parametri se UVEK prosleuju kao String pa se moraju konvertovati u eljeni format u try-catch bloku ako je potrebna njihova obrada.
try{ a=Integer.parseInt(prvi); b=Integer.parseInt(drugi); } catch(NumberFormatException nfe){
// ovde preduzeti neophodne korake u sluaju pogrenih parametara
nfe.printStackTrace(); }
Mi emo servlete koristi najvie u delu kontrole aplikacije a ne u kreiranju stranica zbog komplikovanosti. Servlet moe da prosledi obradu drugom servletu ili da kreirani odgovor prosledi na jsp stranicu
request.getRequestDispatcher("index.jsp").forward(request, response);
ZADATAK 1: Za kreiranu formu za piceriju (sa prethodnog asa) sa svim elementima forme proslediti zahtev servletu ServletTest koji e da proita prosleene parametre i da kreira stranicu izgleda prikazanog ispod.
Reenje:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String num = request.getParameter("num");
String size = request.getParameter("size");
String[] top = request.getParameterValues("top");
String name = request.getParameter("name");
String phone = request.getParameter("phone");
String adress = request.getParameter("address");
String pass = request.getParameter("pass");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(
"\n" +
"Hello\n"+
"\n" +
"PICERIJA
");
out.println(
"vasa porudzbina :
"+
"PICA : komada: "+ num+" velicina:
"+size+"
DODACI:");
for(String pom: top)
out.println(pom+", ");
out.println("
Podaci o poruciocu:" +
"
Ime:"+name+
"
Telefon:"+phone+
"
Adresa:"+adress
);
out.println("");}
Prednosti JSP
Pomou JSP se mogu uraditi iste stvari kao i pomou servleta, ali korienje JSP olakava pisanje samog HTML koda
itanje i odravanje HTML koda U odnosu na korienje servleta imamo: Jednostavnije kreiranje HTML koda Korienje standardnih alata (npr. Adobe Dreamweaver)
Podela posla izmeu Java programera i dizajnera (HTML)
NAPOMENA: JSP programeri moraju poznavati servlet programiranjeZADATAK 2: Kreiranje JSP stranice sa vrednostima prosleenim sa forme iz prethodnog primera. Dodati i proveru unete ifre. Ako korisnik unese ifru 12345 moe da kupuje u suprotnom dobija obavetenje NEMATE PRAVO NA PORUIVANJE !!!Reenje:
PICERIJA
Vasa porudzbina :
PICA :
komada:
velicina:
DODACI:
,
Podaci o poruciocu:
Ime:
Telefon:
Adresa:
NEMATE PRAVO NA PORUIVANJE !!!
1