Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

prosledjivanje podataka iz baze, servlet, jsp

[es] :: Java :: prosledjivanje podataka iz baze, servlet, jsp

[ Pregleda: 3688 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mvasicdo
Mladen Vasic
Doboj

Član broj: 104294
Poruke: 226
*.teol.net.



Profil

icon prosledjivanje podataka iz baze, servlet, jsp21.05.2008. u 08:17 - pre 193 meseci
Pozdrav,

potrebna mi je mala pomoc.... Imam Servlet koji treba da proslijedi podatke iz baze JSP stranici.
Struktura iz tabele je sledeca: id,ime, prezime, adresa.
Na koji nacin da proslijedim podatke a da ne moram u servletu ganerisati HTML?
Gledao sam neke primjere gdje se koristi "bean" kao jedan red podataka, ali sta kad imam vise redova, kako da rezultat queryja proslijedim jsp stranici.
Ako moze neki detaljniji primjer posto sam pocetnik....
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.static.sbb.rs.



+1 Profil

icon Re: prosledjivanje podataka iz baze, servlet, jsp21.05.2008. u 08:27 - pre 193 meseci
http://pdf.coreservlets.com/ poglavlja 14 i 15 bi trebalo da ti daju odgovore, sa sve detaljnim primerima.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

zigizig

Član broj: 42968
Poruke: 167
82.117.206.*



+10 Profil

icon Re: prosledjivanje podataka iz baze, servlet, jsp21.05.2008. u 09:37 - pre 193 meseci
Ne znam kakva ti je struktura aplikacije ali pokusacu



Napravis model klasu (npr. User) koja predstavlja tabelu u bazi (id, ime... i svi geteri i seteri)

Napravis klasu koja ce bit pozivana iz jsp strane (npr. UserList).
U njoj definises
* listu model klasa (List<User> listUser;) sa set i get
* public metodu load() u kojoj ces uraditi upit na bazu (kako si vec to osmislio ne znam, mozda direktno u metodi a mozda pozivom druge klase)
zatim ces u for petlji napuniti listUser tako sto u petlji instanciras User i popunis podacima pa dodas u listUser i tako za svaki red rezultata
Jedna user klasa predstavlja jedan red u bazi
listUser = new ArrayList<User>();
for(lista rezultata) {
User user = new User();
user.setId(rezultat.id);
...
listUser.add(user);
}

U jsp strani dodas
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> (dodaj u aplikaciju jstl paket)
<jsp:useBean id="userList" class="putanjaDoKlase.UserList" scope="request" />

Ispod toga napravis scriplet u kojem pozoves load metodu
<%
userList.load();
%>

i tamo gde zelis da izlistas rezultate
<table>
<c:forEach items="${userList.listUser}" var="row" >
<tr>
<td><c:out value="${row.id}" /></td>
<td><c:out value="${row.ime}" /></td>
...
</tr>
</c:forEach>
</table>

Naravno listanje mozes i bez jstl ali je ovako lepse heh
To je otprilike to, nadam se da nisam nesto izostavio ;)
 
Odgovor na temu

mvasicdo
Mladen Vasic
Doboj

Član broj: 104294
Poruke: 226
*.teol.net.



Profil

icon Re: prosledjivanje podataka iz baze, servlet, jsp21.05.2008. u 09:49 - pre 193 meseci
Prvo da se zahvalim na brzim odgovorima.....
Ok, probat cu vase primjere..

Ja sam to pokusao uraditi na ovaj nacin (da napomenem da korisim hibernate framework za konekciju sa bazom):

SERVLET:
Session session = sessions.openSession();
Query query = session.createQuery("select e.id,e.fname,e.lname from Employee e");

Vector v = new Vector();
for(Iterator iter = query.iterate();iter.hasNext();){
Object[] row = (Object[])iter.next();
v.add(new Object[]{row[0],row[1],row[2]});
}
HttpSession sess = request.getSession(true);
sess.setAttribute("Employee", v);

RequestDispatcher rd = request.getRequestDispatcher("Employee.jsp");
rd.forward(request, response);

JSP:
<body>
<%
Vector v = (Vector)session.getAttribute("Employee");
Iterator i = v.iterator();
while(i.hasNext()){
Object[] row = (Object[])i.next();
%>
<br /> id: <%= (Integer)row[0] %> fname: <%= (String)row[1] %> lname: <%= (String)row[2] %>
<%
}
%>
</body>

ovo radi, ali me interesuju performanse izvrsavanja ovog dijela koda, isto tako ispravnost itd.
 
Odgovor na temu

nedeljko_11460
Nedeljko Seslija
J2EE Developer, Neotech Software
Barajevo

Član broj: 182021
Poruke: 9
79.101.160.*



Profil

icon Re: prosledjivanje podataka iz baze, servlet, jsp21.05.2008. u 10:45 - pre 193 meseci
Cao , evo resenja koje datira iz perioda dok sam jos bio pocetnik i imao slicne probleme mozda ce ti koristiti. Sve je odradjeno uz upotrebu javine klase Vector mada se savet koji ti je dao zigizig dosta cesce primenjuje .
Code:

import java.io.*;
import java.util.*;
import java.sql.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class ListaKozmetike extends HttpServlet{
    String upit="";
    String greska="";
    Connection con=null;
    Statement stmt=null;
    ResultSet RS=null;
    
    ServletContext sc=null;
    RequestDispatcher rd=null;
    public void doGet(HttpServletRequest req,HttpServletResponse res)
    throws ServletException,IOException    {
        doPost(req,res);
    }
    public void doPost(HttpServletRequest req,HttpServletResponse res)
    throws ServletException,IOException    {
        
        sc=getServletContext();
        try{
            
            poveziMe(req,res);
            zatvoriKonekciju();
            pozoviJSP(req,res);
        }catch(Exception e){
            greska="Doslo je do greske pokusajte ponovo!";
            proslediGresku(greska,req,res);
            greska="";
            
        }
    }
    public void poveziMe(HttpServletRequest req,HttpServletResponse res){
        HttpSession session=null;
        session=req.getSession(true);
        try{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String url="jdbc:mysql://localhost:3306/BazaKozmetike";
            con=DriverManager.getConnection(url,"root","admin");
            stmt=con.createStatement();
            String query="SELECT * FROM KOZMETIKA";
            RS=stmt.executeQuery(query);
            int br_proizvoda=0;
            Vector proizvodDetalji=new Vector();
            while(RS.next()){
                br_proizvoda++;
                Vector proizvod=new Vector();
                for(int i=1;i<=5;i++){
                    if(i==1)
                        proizvod.addElement(new Integer(RS.getInt(i)));
                    else if(i==2 || i==3)
                        proizvod.addElement(RS.getString(i));
                    else if(i==4)
                        proizvod.addElement(new Integer(RS.getInt(i)));
                    else
                        proizvod.addElement(new Float(RS.getFloat(i)));
                }
                proizvodDetalji.addElement(proizvod);
            }
            session.setAttribute("proizvodDetalji",proizvodDetalji);
            session.setAttribute("br_proizvoda",new Integer(br_proizvoda));
        }catch(Exception e){
            e.printStackTrace();
            greska="Konekcija sa bazom podataka nije uspela";
            proslediGresku(greska,req,res);
            greska="";
        }
    }
    public void zatvoriKonekciju(){
        if(con!=null){
            try{
                con.close();
            }
        catch(SQLException e){
            e.printStackTrace();
            greska="Greska prilikom zatvaranja konekcije sa bazom podataka";
            //proslediGresku(greska,req,res);
            greska="";
        }
      }
   }
    public void proslediGresku(String s,HttpServletRequest req,HttpServletResponse res){
        HttpSession session=null;
        session=req.getSession(true);
        session.setAttribute("greska", greska);
        rd=sc.getRequestDispatcher("/Greska.jsp");
        try{
            rd.forward(req, res);
            greska="";
        }catch(Exception e){
            
        }
    }
    public void pozoviJSP(HttpServletRequest req,HttpServletResponse res){
        try{
            rd=sc.getRequestDispatcher("/listaKozmetike.jsp");
            rd.forward(req,res);
        }catch(Exception e){
            greska="nije uspelo "+e;
            proslediGresku(greska,req,res);
            greska="";
        }
    }
    
    
}



i jsp strana za prikaz liste
Code:

<%@ page language="java"%>
<%@ page import ="java.util.*"%>

<html>
<head><title>Lista kozmtike</title></head>
<body bgColor="#F7E179">
<center><font face="Verdana,Arial"><h3>Lista proizvoda</h3></font></center>
<%!int br_proizvoda;%>
<%!Vector proizvodi;%>
<%!Vector proizvodDetalji;%>
<%
    br_proizvoda=(new Integer(session.getAttribute("br_proizvoda").toString())).intValue();
    proizvodDetalji=(Vector)session.getAttribute("proizvodDetalji");
%>

<table width="600" border="0" align="center">
<tr>
    <td bgColor="#66999cc"><b><font face="Verdana" size="2" color="#FFFFFF"> ID </font></b></td>
    <td bgColor="#66999cc"><b><font face="Verdana" size="2" color="#FFFFFF">IME</font></b></td>
    <td bgColor="#66999cc"><b><font face="Verdana" size="2" color="#FFFFFF">OPIS</font></b></td>
    <td bgColor="#66999cc"><b><font face="Verdana" size="2" color="#FFFFFF">KOLICINA</font></b></td>
    <td bgColor="#66999cc"><b><font face="Verdana" size="2" color="#FFFFFF">CENA</font></b></td>
</tr>
<%for(int m=0;m<br_proizvoda;m++){%>
<%proizvodi=(Vector)proizvodDetalji.elementAt(m);%>
<tr>
    <td bgcolor=="#FFFFCC">
        <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(Integer)proizvodi.elementAt(0)%>
        </font></b></div>
    </td>
    <td bgcolor=="#FFFFCC">
        <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(String)proizvodi.elementAt(1)%>
        </font></b></div>
    </td>
    <td bgcolor=="#FFFFCC">
        <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(String)proizvodi.elementAt(2)%>
        </font></b></div>
    </td>
    <td bgcolor=="#FFFFCC">
        <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(Integer)proizvodi.elementAt(3)%>
        </font></b></div>
    </td>
    <td bgcolor=="#FFFFCC">
        <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(Float)proizvodi.elementAt(4)%>
        </font></b></div>
    </td>
    <%}%>
</tr>
</table>

</body>
</html>
 
Odgovor na temu

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: prosledjivanje podataka iz baze, servlet, jsp21.05.2008. u 13:35 - pre 193 meseci
Za jednostavne stvari standardni SQL Tag Library odradjuje posao:

http://java.sun.com/javaee/5/docs/tutorial/doc/bnald.html
 
Odgovor na temu

[es] :: Java :: prosledjivanje podataka iz baze, servlet, jsp

[ Pregleda: 3688 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.