C.V.

 
 

       10.4.4 Servlet alimb.java

       Acest applet este nucleul aplicatiei. La inceput, cand inca nu este selectata o subcategorie, acest servlet va afisa o lista de selectie cu subcategoriile din categoria selectata anterior si applet-ul ScrollItUp cu acelasi text introductiv. Dupa selectia unei subcategorii in locul applet-ului vor fi afisate criterii de cautare in lista de produse: pagina urmatoare, pagina anterioara, cautare dupa cuvinte cheie, cautare dupa pret maxim, alegerea unei alte subcategorii. In jos, imediat dupa criteriile de selectie, urmeaza o linie verticala realizata dinamic cu applet-ul RainbowHR. Dupa applet in jos urmeaza butoane pentru lucrul cu "cosul de alimente": pentru golire cos, pentru adaugare in cos si pentru a da comanda pentru cosul de alimente existent. In continuare servlet-ul genereaza lista de produse, din subcategoria selectata, pe pagini. In dreapta fiecarui produs este afisata imaginea acestia, daca are, si un checkbox pentru a fi adaugat in cosul de produse.

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

public class alimb extends HttpServlet { 

private String baseDir;

public void init(ServletConfig conf)throws ServletException {
  super.init(conf);     
  baseDir = getServletConfig().getInitParameter("imagini");
} 

public void doPost(HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException {
  doGet(req,res);
}

public void doGet(HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException {
  
  PrintWriter out=null; 
  try{
    out = res.getWriter();
  }	
  catch(IOException e) {;}
  
  res.setContentType("text/html");
	
  HttpSession ses = req.getSession();	
  Connection con = (Connection)ses.getAttribute("connexion");

  //Pastrarea contextului folosind tehnica URL  
  
  String url1 = res.encodeURL("/adi/servlet/prcos"); 
  
  out.println("<html>");
  out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">");
  out.println("<META content=\"text/html; charset=windows-1252\" http-equiv=Content-Type>");
  out.println("<LINK href=\"/adi/tli.css\" rel=STYLESHEET type=text/css>");	
  out.println("<META content=\"MSHTML 5.00.2614.3500\" name=GENERATOR>");
  out.println("<meta http-equiv=\"Pragma\" content=\"no-cache\">");
  out.println("<head>");
  out.println("<title> Pagina realizata de servlet-ul alimb</title>");
  out.println("<SCRIPT language=JavaScript1.1 src=\"/adi/Scriptj.js\"></SCRIPT>");
  out.println("<SCRIPT>");
  out.println("function validareCautare(form)");
  out.println("{   return (checkString(form.elements[\"cuvch\"],sCuvch,true) &&");
  out.println("      checkInt(form.elements[\"pretm\"],sPretm,true))");
  out.println("}");
  out.println("</SCRIPT>");

  out.println("</head>");
  out.println("<body bgcolor=\"#fff0f0\" link=#ffffff vlink=#ffffff alink=#ffffff>");

  int iCat=0;
  String querry="";      
  String cuvchi=null,cuvchf=null;
  String pretmi=null,pretmf=null;
  String subcti=null,subctf=null;
  String cati=null,catf=null;
  indprod ip = new indprod();
  Hashtable Halcos = null;
  
  
	/*
	* Pentru sesiunea curenta se iau valorile atributelor 
	* "categorie", "subcategorie" si "movePage" - pentru vizualizarea pagi-
	* nilor dintr-o subcategorie (o pagina 10 inregistrari)
	*/


  //pozitia curenta
  ip=(indprod)ses.getAttribute("pozitie");
  if(ip == null)
    ip= new indprod();

	/*
	* Se ia valoarea parametrului "subcat"; daca este !=null atunci:
	* - daca categoria data de parametru != categoria data de atributul sesiunii 
	* se pune varibila "iMovePage" pe 1(prima inregistrare din prima pagina);
	* se seteaza atributul "subcat" la noua valoare
	*/
  
  pretmi=(String)ses.getAttribute("pretm");
  pretmf=req.getParameter("pretm");
  if(pretmf!=null){
    if(!pretmf.equals(pretmi)){
       pretmf=pretmf.trim();
       pretmi=pretmf;
       ip.delpoz();
      ses.setAttribute("pretm",pretmi);
    }
  }
  else
    if(pretmi!=null){
       pretmi=null;
       ip.delpoz();
       ses.setAttribute("pretm",pretmi);
    }	
	  
  cuvchi=(String)ses.getAttribute("cuvch");
  cuvchf=req.getParameter("cuvch"); 
  if(cuvchf!=null){
    if(!cuvchf.equals(cuvchi)){
       cuvchf=cuvchf.trim();
       cuvchi=cuvchf;
       ip.delpoz();
       ses.setAttribute("cuvch",cuvchi);
    }  
  }
  else
    if(cuvchi!=null){
      cuvchi=null;
      ip.delpoz();
      ses.setAttribute("cuvch",cuvchi);
    } 
  
  //subcategorie: implicit null
  subctf=req.getParameter("subcat"); 
  subcti=(String)ses.getAttribute("subcat");
  if(subctf!=null){
    if(!subctf.equals(subcti)){
       cuvchi=null;
       pretmi=null;
       ip.delpoz();
       subcti=subctf;
      ses.setAttribute("subcat",subcti);
    }  
  }
  else
    if(subcti!=null){
      cuvchi=null;
      pretmi=null;
      ip.delpoz();
      subcti=null;
    }
   
  //categorie  
  cati=(String)ses.getAttribute("cat");
  catf=req.getParameter("cat"); 
  if(catf!=null)
    if(!catf.equals(cati)){
      subcti=null;
      cati=catf;
      ses.setAttribute("cat",cati);
    }
  
  Halcos=(Hashtable)ses.getAttribute("cosal");
  if(Halcos==null) 
    Halcos=new Hashtable();
  
  out.println("<form action=\"" + url1 + "\" method=\"post\" name=view>");
 
  try {   
    Statement stmt;  
    ResultSet rs=null;
    stmt = con.createStatement();
    out.println("<table width=\"600\">"); 
    out.println("<td width=150>");  	
    out.println("<font color=450000 size=3>");	
     //rs = stmt.executeQuery("select den from categ where cod=" + cati);
    out.println("<b>Subcategoria: <br></font>");//\"" + rs.getString(1) + "\"</b><br>");
     //rs.close();
    out.println("<SELECT name=\"subcat\" onchange=do_reply();>"); 	

    querry="select c2,den from subcat where c1=" + cati + " order by c2";
    rs = stmt.executeQuery(querry);
  
    out.println("<option value=0");
    if(subcti==null || subcti.equals("0"))
      out.println(" selected");
    out.println(">");	
  
    for(int i=0;i<10;i++)  
      out.println("    ");
    out.println("</option>");

    while(rs.next()){ 
      out.println("<option value=" + rs.getString(1) + " " );
      if(rs.getString(1).equals(subcti))
         out.println(" selected ");
      out.println(">" + rs.getString(2) + "</option>");
    }  
    out.println("</select>");
    rs.close();
  
    out.println("</td><td width=450>");  
	 
    //afiseaza tipurile de cautare pentru produse daca s-a ales o subc.
     if(subcti!=null && !subcti.equals("0")){
        out.println("<table width=\"350\">"); 
        out.println("<td width=10 valign=center align=left>");
        out.println("<td valign=center align=left>");
        out.println("<b>Cuvinte cheie:</b><br><input type=\"text\" name=\"cuvch\" size=14 value=\"");
        if(cuvchi!=null)
          out.println(cuvchi);
       out.println("\"></td>");
       out.println("<td valign=center align=left>");
       out.println("<b>Pret maxim:</b><br><input type=\"text\" name=\"pretm\" size=14 value=\"");
       if(pretmi!=null)
         out.println(pretmi);
       out.println("\"></td>");
       out.println("<td valign=center align=left><br>");
       out.println("<input type=\"button\" name=\"cauta\" value=\"Cautare\" 
                            onclick=\"if (validareCautare(this.form)) this.form.submit();\"><br>");
       out.println("<input type=\"button\" value=\"Anulare\" onclick=\"putvoid(this.form)\"></td>");
       out.println("</table>"); 
       out.println("</td></table>");   
     }	
     else{
       out.println("</td></table>");   
       out.println("<table width=600 height=870 align=left>");
       out.println("<tr><td width=600 height=70 valign=middle align=center></tr>");
       out.println("<tr><td width=600 height=500 valign=top align=center>");
       out.println("<APPLET CODE=\"ScrollItUp.class\" ARCHIVE=\"ScrollItUp.jar\"" + 
  	            " codebase=\"/adi/applets\" WIDTH=\"450\" HEIGHT=\"400\">");
       out.println("<PARAM NAME=\"bgcolor\" VALUE=\"600f0f\">");
       out.println("<PARAM NAME=\"outlinecolor\" VALUE=\"000000\">");
      out.println("<PARAM NAME=\"scrollbgcolor\" VALUE=\"fff0f0\">");
      out.println("<PARAM NAME=\"fontcolor\" VALUE=\"450000\">");
      out.println("<PARAM NAME=\"hovercolor\" VALUE=\"00ff00\">");
      out.println("<PARAM NAME=\"linkcolor\" VALUE=\"ff0000\">");
      out.println("<PARAM NAME=\"fontface\" VALUE=\"arial\">");
      out.println("<PARAM NAME=\"fontstyle\" VALUE=\"plain\">");
      out.println("<PARAM NAME=\"fontbold\" VALUE=\"on\">");
      out.println("<PARAM NAME=\"fontsize\" VALUE=\"14\">");
      out.println("<PARAM NAME=\"textfile\" VALUE=\"/adi/applets/test.txt\">");
      out.println("<PARAM NAME=\"brakes\" VALUE=\"55\">");
      out.println("<PARAM NAME=\"margin\" VALUE=\"5\">");
      out.println("</APPLET>");
      out.println("</tr></table>");
     }  
     stmt.close();   	
  }
  catch(SQLException h) {
    out.println("An SQL Exception was thrown.");
  }
	
	/*
	* Se ia valoarea parametrului "next": poate avea valorile "next" si "prev";
	* daca nu este null si are valoarea "next" atunci:
	* - se interogheaza tabela alimente pentru a se lua nr. de inregistrari pentru subcategorie 
	* - daca nu exista inregistrari se returneaza mesaj
	* - daca pozitia curenta < (nr de inreg din tabela alimene - 10) atunci se adauga 10 la pozitie
	* daca valoarea este "prev" si pozitia curenta > 10 se scade 10 din pozitie
	* atributul "movePage" ia valoarea pozitiei curente
 	*/

  //daca s-a ales o subcategorie
if(subcti!=null && !subcti.equals("0")){    		
  try {  
    int iRowCount=0;	    
    String movepage;
    int nopage=0;
    String restr1=" ";
    String restr2=" ";
    String poztemp=null;
    Statement stmt; 
    ResultSet rs; 
    stmt = con.createStatement();
	
    //se numara produsele din subcategorie care corespund criteriilor
    
    //si pret si cuv cheie
    if(cuvchi!=null && !cuvchi.equals("") && pretmi!=null && !pretmi.equals(""))
      restr1=" and pretp<=\"" + pretmi + "\" and denp like \"%" + cuvchi + "%\"";
			
    //doar pret			
    if((cuvchi==null || cuvchi.equals("")) && pretmi!=null && !pretmi.equals(""))
      restr1=" and pretp<=\"" + pretmi + "\"";
			
    //doar cuv cheie			
    if(cuvchi!=null && !cuvchi.equals("") && (pretmi==null || pretmi.equals("")))
      restr1=" and denp like \"%" + cuvchi + "%\"";

    //fara nici un criteriu			
    if((cuvchi==null || cuvchi.equals("")) && (pretmi==null || pretmi.equals("")))
      restr1=" ";
	  
    querry="select count(codp) from alimente where cat=" + subcti + restr1;
	
    //out.println("<br>" + querry + "<br>");
    rs = stmt.executeQuery(querry);
    if(rs.getString(1).equals("0")){
      iRowCount=0;
      nopage=0;
      out.println("<br>Nu exista inregistrari !<br>");
      rs.close();	
    }
    else{
      iRowCount=Integer.parseInt(rs.getString(1));
      nopage=iRowCount/10;
      if((iRowCount%10)!=0)
        nopage=nopage + 1;
      rs.close();	
	  
      //daca sirul pozitiilor nu este null	
     if(ip.getpozcur()!=null){
	
     //sensul deplasarii
     movepage = req.getParameter("next");
     if(movepage==null){
       if(ip.getpoz("next")!=null)
          restr2=" and no>="+ ip.getpozcur() + " and no<" + ip.getpoz("next");  
      else  
          restr2=" and  no>=" + ip.getpozcur();
     }
     else{	
       //next
       if(movepage.equals("next")){
       if(ip.getpage()<nopage	&& ip.getpoz(movepage)!=null){
		    
         //poz cur devine poz urm
         ip.setpozurm(movepage); 
			
         if(ip.getpoz(movepage)!=null)
	restr2=" and no>="+ ip.getpozcur() + " and no<" + ip.getpoz(movepage);
         else
	restr2=" and no>=" + ip.getpozcur();
       }
       //am ajuns la sfarsit ?
       else 
          restr2=" and no>=" + ip.getpozcur();
    }
    //prev
    if(movepage.equals("prev")){
       if(ip.getpoz(movepage)!=null){
          restr2=" and no>=" + ip.getpoz(movepage) + " and no<" + ip.getpozcur();
          ip.setpozurm(movepage);		  
       }  
      //sunt la inceput		  
       else{
          if(ip.getpoz("next")!=null)
            restr2=" and no>="+ ip.getpozcur() + " and no<" + ip.getpoz("next");
            //la inceput fara next = un singur element			
         else		   
            restr2=" and no>="+ ip.getpozcur();
        }
      }
    }
  }  
  //sir pozitii vid
  else
    restr2=" ";

  out.println("<table cellspacing=\"5\" width=\"500\">"); 
  out.println("<tr><td width=200 align=\"left\">");
  out.println("<input type=\"submit\" name=\"next\"value=\"next\">   ");
  out.println("<input type=\"submit\" name=\"next\"value=\"prev\">");
  out.println("</td><td width=300 align=right>");
  out.println("Pagina " + ip.getpage() + " din " + nopage);	
  out.println("</td></tr>");
  out.println("</table>");

	  
  querry="select * from alimente where cat=" + subcti + restr1 + restr2 + " order by no";
 //out.println("<br>" + querry + "<br>");
 rs = stmt.executeQuery(querry);

out.println("<applet code=\"RainbowHR.class\" ");
out.println("codebase=\"/adi/applets\" width=\"500\" height=\"2\" vspace=\"12\">");
out.println("<param name=\"color\" value=\"404040|F0C0A0\">");
out.println("<param name=\"repeat\" value=\"6\"><param name=\"speed\" value=\"4\">");
out.println("</applet><br>");

            
out.println("<table  cellspacing=\"5\" width=\"570\" align=left>"); 
	  
out.println("<tr><td width=\"570\">"); 
out.println("<table  cellspacing=\"5\" width=\"570\" align=left>");
out.println("<td width=\"340\" align=left valign=middle>"); 
out.println("<input type=\"submit\" name=rmcos value=\"Goleste cos\">   ");
out.println("   <input type=\"submit\" name=adcos value=\"Adauga la cos\">");
out.println("<td width=\"200\" align=right valign=middle>"); 
out.println("<img src=\"/adi/imagini/cosal.gif\" usemap=\"#harta\" width=140 hight=60>"); 
out.println("<map name=harta>");
out.println("<area shape=\"rect\" coords=\"0,0,140,60\" href=\"" + url1 + "?cos=Adibun\" 
target=\"_blank\">");
out.println("</map>");out.println("</table>"); 
out.println("</td></tr>");

	  
out.println("<tr><td width=500 align=left><hr width=500 color=\"#fdddbf\" align=left></td></tr>");
	  
int j=0;
	
while(rs.next() && j<10) {
	    	
    if(j==0){
      if(ip.getpozcur()==null){
        ip.addpoz(rs.getString(8));
        ip.setpozcur(rs.getString(8));
      }  
    }	  
    else
      poztemp=rs.getString(8);
		  
    j++;
	    
		
	  
    //calea pana la imagine 
    String filepath=baseDir + "/" + "c" + subcti + "/" + rs.getString(1) 
                    + "." + rs.getString(9);
    filepath=filepath.replace('\\','/');
    File f = new File(filepath);
    filepath=filepath.substring(filepath.indexOf("adi")-1,filepath.length());
		
   //lin t1
   out.println("<tr><td width=570>");
		
   //t2
   out.println("<table cellspacing=\"5\" width=\"570\">"); 
		
   //lint2
   out.println("<tr>");	  
		
   out.println("<td  width=300 align=left >");
   out.println("<font face=\"Arial\" color=\"#500000\" size=3><b>" + rs.getString(2) + "</b></font>");
    if(rs.getString(7)!=null && !rs.getString(7).equals("")){
      out.println("<br>");
      out.println("<font face=\"Arial\" color=\"#904040\" size=3>" + rs.getString(7) + "</font>");
    }  
   out.println("<font face=\"Arial\" color=\"#903000\" size=3><br>Pret ");
   out.println("<b>" + rs.getString(3) + "</b> pe <b>" + rs.getString(4) + "</b></font>");
   out.println("</td>");
		
    if(f.length()!=0){
       out.println("<td width=160 align=left valign=middle>");
       out.println("<img src=" + filepath + "></td>");
    }  
    else
      out.println("<td width=160 align=left valign=middle>  </td>");	  

     out.println("<td width=110 align=center valign=middle>");
		
     prodcos pc = new prodcos();
     if(Halcos!=null)
       pc = (prodcos)Halcos.get(rs.getString(1));
    else
       pc=null;
		   
     if(pc!=null && pc.getcant()!=null && !pc.getcant().equals("0")){
        out.println("<font face=\"Arial\" color=\"#a05050\" size=1>");
        out.println("adaugat in cos<br> x " + pc.getcant());
        out.println("</font>");
     }
     else		
        out.println("<input type=\"checkbox\" name=\"cosal\" value=\"" + rs.getString(1) + "\">");

     out.println("</td>");
     out.println("</tr></table>");
     out.println("</td></tr>");
		
      //lin t1
      out.println("<tr><td width=500 align=left><hr width=500 color=\"#fdddbf\" 
                                       align=left></td></tr>");
   }
   rs.close();

  out.println("<tr><td width=\"570\">"); 
  out.println("<table  cellspacing=\"5\" width=\"570\" align=left>");
  out.println("<td width=\"340\" align=left valign=middle>"); 
  out.println("<input type=\"submit\" name=rmcos value=\"Goleste cos\">   ");
  out.println("   <input type=\"submit\" name=adcos value=\"Adauga la cos\">");
  out.println("<td width=\"200\" align=right valign=middle>"); 
  out.println("<img src=\"/adi/imagini/cosal.gif\" usemap=\"#harta\" width=140 hight=60>"); 
  out.println("<map name=harta>");
  out.println("<area shape=\"rect\" coords=\"0,0,140,60\" href=\"" + url1 + "?cos=Adibun\" 
target=\"_blank\">");
  out.println("</map>");  out.println("</table>"); 
  out.println("</td></tr>");

  out.println("<tr><td width=\"570\">"); 
  querry="select * from alimente where cat=" + subcti + restr1 + restr2 + " order by no";
  //out.println("<br>" + querry + "<br>");
  rs = stmt.executeQuery(querry);
  out.println("<applet code=\"RainbowHR.class\" ");
  out.println("codebase=\"/adi/applets\" width=\"500\" height=\"2\" vspace=\"12\">");
  out.println("<param name=\"color\" value=\"404040|F0C0A0\">");
  out.println("<param name=\"repeat\" value=\"6\"><param name=\"speed\" value=\"4\">");
  out.println("</applet><br>");
  rs.close();stmt.close();
  out.println("</td></tr>");
	  
  out.println("<tr><td width=\"570\">"); 
  out.println("<table cellspacing=\"5\" width=\"500\">"); 
  out.println("<tr><td width=200 align=\"left\">");
  out.println("<input type=\"submit\" name=\"next\"value=\"next\">   ");
  out.println("<input type=\"submit\" name=\"next\"value=\"prev\">");
  out.println("</td><td width=300 align=right>");
  out.println("Pagina " + ip.getpage() + " din " + nopage);	
  out.println("</td></tr>");
  out.println("</table>");
  out.println("</td></tr>");
	  
  out.println("</table>");
  
 if(ip.getpoz("next")==null && poztemp!=null && !poztemp.equals(ip.getpozcur())){
    poztemp=String.valueOf(Integer.parseInt(poztemp) + 1);
    ip.addpoz(poztemp);
    //out.println("<br>" + ip.getpozii() + " - " + ip.getpozcur() + "<br>");
 } 
 ses.setAttribute("pozitie",ip);
	  
}//end else exista inregistrari
}
catch(SQLException f) { out.println("An SQL Exception was thrown.");}
out.println("</form>");
}
out.println("</body></html>");
out.close();
  
}
}




 
 
C.V.
 
Hosted by www.Geocities.ws

1