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

Servlet problem u aplikaciji

[es] :: Java :: Servlet problem u aplikaciji

[ Pregleda: 2020 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
212.200.34.*



Profil

icon Servlet problem u aplikaciji02.09.2007. u 23:11 - pre 202 meseci
Pozdrav svima...

E, ovako, radim internet aplikaciju,tj. vezbam za ispit, nesto vezano za bazu sa filmovima i naisao sam na problem. U aplikaciji imam zadatak da izlistam sve filmove za slovo kojim pocinje ime filma, a to slovo unosi korisnik. Kada kliknem na dugme da mi izlista, pojavi se nova strana sa atributima baze (ID, IME, REDITELJ, GLUMAC, GODINA), ali nema vrednosti tih atributa, tj nema podataka o filmovima koji pocinju zadatim slovom. Isto se desava kada unesem slovo za film koji postoji u bazi i za film koji ne postoji. Samo prazna strana i atributi baze. Koristim MySql bazu i Apache Tomcat Server. Da li neko moze da mi resi problem???
Hvala...

p.s. prilazem kod .java

Code:

import java.io.*; 
import java.util.*; 
import java.sql.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class ListaIme extends HttpServlet{ 
   String upit=""; 
   String greska=""; 
   String ime=""; 
    
   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(); 
       
      ime=req.getParameter("ime"); 
       
      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){ 
      try{ 
         HttpSession session=null; 
         session=req.getSession(true); 
         Class.forName("com.mysql.jdbc.Driver").newInstance(); 
         con=DriverManager.getConnection("jdbc:mysql://localhost:3306/BazaFilmova","root","root"); 
         stmt=con.createStatement(); 
         String query="SELECT * FROM FILM WHERE FILM.ime LIKE '"+ime+"%' "; 
         RS=stmt.executeQuery(query); 
         int br_filma=0; 
         Vector filmDetalji=new Vector(); 
         while(RS.next()){ 
               br_filma++; 
            Vector film=new Vector(); 
            for(int i=1;i<=5;i++){ 
               if(i==1) 
                  film.addElement(new String(RS.getString(i))); 
               else if(i==2 || i==3) 
                  film.addElement(new String(RS.getString(i))); 
               else if(i==4) 
                  film.addElement(new String(RS.getString(i))); 
               else 
                  film.addElement(new String(RS.getString(i))); 
            } 
            filmDetalji.addElement(film); 
         } 
         session.setAttribute("filmDetalji",filmDetalji); 
         session.setAttribute("br_filma",new Integer(br_filma)); 
      }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("/listaIme.jsp"); 
         rd.forward(req,res); 
      }catch(Exception e){ 
         greska="nije uspelo "+e; 
         proslediGresku(greska,req,res); 
         greska=""; 
      } 
   } 



i kod .jsp strane

Code:

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

<html> 
<head><title>Lista filmova po imenu filma</title></head> 
<body bgColor="#F7E179"> 
<center><font face="Verdana,Arial"><h3>Lista filmova za zeljeno pocetno slovo</h3></font></center> 
<%!int br_filma;%> 
<%!Vector filmovi;%> 
<%!Vector filmDetalji;%> 
<% 
   br_filma=(new Integer(session.getAttribute("br_filma").toString())).intValue(); 
   filmDetalji=(Vector)session.getAttribute("filmDetalji"); 
%> 

<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">REDITELJ</font></b></td> 
   <td bgColor="#66999cc"><b><font face="Verdana" size="2" color="#FFFFFF">GLUMAC</font></b></td> 
   <td bgColor="#66999cc"><b><font face="Verdana" size="2" color="#FFFFFF">GODINA</font></b></td> 

</tr> 
<%for(int m=0;m<br_filma;m++){%> 
<%filmovi=(Vector)filmDetalji.elementAt(m);%> 
<tr> 
   <td bgcolor=="#FFFFCC"> 
      <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(Integer)filmovi.elementAt(0)%> 
      </font></b></div> 
   </td> 
   <td bgcolor=="#FFFFCC"> 
      <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(String)filmovi.elementAt(1)%> 
      </font></b></div> 
   </td> 
   <td bgcolor=="#FFFFCC"> 
      <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(String)filmovi.elementAt(2)%> 
      </font></b></div> 
   </td> 
   <td bgcolor=="#FFFFCC"> 
      <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(String)filmovi.elementAt(3)%> 
      </font></b></div> 
   </td> 
   <td bgcolor=="#FFFFCC"> 
      <div align="left"><b><font face="Verdana" size="2" color="#000066"><%=(String)filmovi.elementAt(4)%> 
      </font></b></div> 
   </td> 
    
   <%}%> 
</tr> 
</table> 

</body> 
</html> 
 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
*.adsl-3.sezampro.yu.



+7 Profil

icon Re: Servlet problem u aplikaciji04.09.2007. u 22:21 - pre 202 meseci
Na prvo gledanje;

• fali init() metod u servletu.
• Promenljive (greska, ime, con, stmt, RS) deklarisi lokalno u metodama. U suprotnom ces u multikorisnickom okruzenju imati haos.
• koristi PreparedStatement za upit.
• napravi klasu Film koja odgovara tabeli FILM, pa kreiraj i puni takve objekte iz Result seta. Moze i sa vektorima ali nije u duhu oop-a.
• kreiras/zatvaras konekciju pri svakom requestu sto je sporo. Za vezbu moze da prodje, za ozbiljniju primenu ne.
 
Odgovor na temu

Tudfa
Jovicevic Vladimir

Član broj: 152699
Poruke: 384
89.216.197.*



+3 Profil

icon Re: Servlet problem u aplikaciji06.09.2007. u 12:49 - pre 202 meseci
Ako se ponasa kao da nema rezultata proveri za svaki slucaj vrednost promenjljive br_filmova . Petlja se nece izvrsiti ako br_filmova nije vece od 0 ...

Ispisi sebi potrebne podatke (vrednosti bitnih promenjljivih) da bi mogao lakse da pratis i otklonis greske , dok ne zavrsis aplikaciju ...

Takodje umesto te promenjljive mozes da korisitis filmDetalji.size() - vraca broj komponenti vektora .

Ako imas vremena napravi svoju klasu Film kao sto ti je predlozeno , bice ti lakse da skupis i ocitas podatke ...
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
212.200.34.*



Profil

icon Re: Servlet problem u aplikaciji08.09.2007. u 16:51 - pre 202 meseci
Resio sam problem, bilo je potrebno ovaj deo:

Code:
for(int i=1;i<=5;i++){ 
               if(i==1) 
                  film.addElement(new String(RS.getString(i))); 
               else if(i==2 || i==3) 
                  film.addElement(new String(RS.getString(i))); 
               else if(i==4) 
                  film.addElement(new String(RS.getString(i))); 
               else 
                  film.addElement(new String(RS.getString(i))); 
            } 
            filmDetalji.addElement(film); 
         } 


napisati ovako:

Code:
for(int i=1;i<=5;i++){
    if(i==1){
        film.addElement(new Integer(RS.getInt(i)));
        System.out.println("FILM "+br_filma+" DODATA vrednost "+RS.getInt(i));}
    else if(i==2 || i==3){
        film.addElement(new String(RS.getString(i)));
        System.out.println("FILM "+br_filma+" DODATA vrednost "+RS.getString(i));}
    else if(i==4){
        film.addElement(new String(RS.getString(i)));
        System.out.println("FILM "+br_filma+" DODATA vrednost "+RS.getString(i));}
    else{
        film.addElement(new String(RS.getString(i)));
        System.out.println("FILM "+br_filma+" DODATA vrednost "+RS.getString(i));}
        }
    filmDetalji.addElement(film);
             System.out.println("FILM "+br_filma+" JE DODAT U VEKTOR" );
    if (RS == null)
              System.out.println("Nema zapisa koji odgovaraju upitu");
    else
              System.out.println("RS is not null");
        }


Zasto sad radi i sta se tu izdesavalo, nemam pojma, ali bitno mi je da radi.

Hvala svima na pomoci...
Pozdrav
 
Odgovor na temu

[es] :: Java :: Servlet problem u aplikaciji

[ Pregleda: 2020 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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