C.V.

 
 

       10.5.12 Servlet execm.java

       Rolul servlet-ului execm este acelasi cu al servletului inser.java cu deosebirea ca acum se face o operatie "update". Daca pozitia produsului ramane neschimbata atunci operatie este una singura: se modifica prin "update" campurile dorite de utilizator. Daca insa pozitia, se pune la inceput produsul in pozitia 0 (observatie- nu se vor face doua modificari in acelasi timp in baza de date) si se scade cu o unitate pozitia tuturor produselor de deasupra pozitiei vechi a produsului ( se astupa gaura lasata prin mutarea prodului in alta pozitie), iar daca pozitia noua nu este ultima pozitie + 1 atunci se muta toate produsele din noua pozitie in sus cu o unitate pe "a face loc" mutarii produsului. Campurile produsului se vor schimba prin update, inclusiv campul pozitie.

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

public class execm extends HttpServlet{  

private String baseDir;//directorul aplicatiei pentru imaginile produselor alimentare

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 {
  
  res.setContentType("text/html");
  HttpSession ses = req.getSession();
  Connection con=(Connection) ses.getAttribute("connexion");

  String subcti=null;

/**  
  PrintWriter out = res.getWriter();    
  out.println("<html>");
  out.println("<meta http-equiv=\"Pragma\" content=\"no-cache\">");
  out.println("<head>");
  out.println("<title> Pagina realizata cu servlet-ul execm" + "</title>");
  out.println("</head>");
  out.println("<body>");
**/

  //subcategoria
  subcti=(String)ses.getAttribute("subcat");
  
  try {   
    Statement stmt; 
	
    //directorul cu imaginile categoriei; 
    String dir = baseDir + File.separator + "c" + subcti;
			
    //se citesc parametrii	
    MultipartRequest multi = new MultipartRequest(req,dir,15*1024);

    File f=null;
    File g=null;
    String fimp=null;
    String type="";
    String pname,dp,pret,up,expl,pozp,codp,no;
    stoi Pret, Pozp;
	  
    //fisierul pentru upload, el este deja pe disc
    pname="imp";
    fimp = multi.getFilesystemName(pname);
    if(fimp!=null){
      type = fimp.substring(fimp.indexOf(".")+1,fimp.length());
      f = multi.getFile(pname);
   }
	  
   //denumire produs
   pname="denp";
   dp = multi.getParameter(pname);
   //cod produs
   pname="codp";
   codp = multi.getParameter(pname);
   //numar
   pname="no";
   no = multi.getParameter(pname);
   //conditie minima pentru introducere in baza de date
   if(dp!=null && codp!=null && no!=null){
     pname="ump";
     up = multi.getParameter(pname);
     if(up==null) up=" ";
	    		
     pname="pretp";
     pret = multi.getParameter(pname);
     Pret = new stoi(pret);
     pname="pozp";
     pozp = multi.getParameter(pname);
     Pozp = new stoi(pozp);   
     pname="expl";
     expl = multi.getParameter(pname);
     if(expl==null) expl=" ";
    //out.println("<br>" + type + " " + no + " " + codp + " " + dp + " " 
    //+ up + " " + Pozp.IntS() + " " + Pret.IntS() + "<br>" + expl);
    String querry;
    stmt = con.createStatement();
    int pozprodus=Pozp.IntS();
    if(!no.equals(String.valueOf(pozprodus))){

       //se pune produsul in pozitia 0
       querry="update alimente set no=0 where cat=" + subcti + " and codp=" + codp;
       stmt.executeUpdate(querry);					  
       //se muta produsele de deasupra fostei pozitii cu -1
       querry="update alimente set no=no-1 where cat=" + subcti + " and no>" + no;
       stmt.executeUpdate(querry);					  
       //calcul numar de inregistrari
       int iRowCount;	
       ResultSet rs; 
       rs = stmt.executeQuery("select count(no) from alimente where cat=" + subcti);
       if(rs.getString(1)!=null)
          iRowCount=Integer.parseInt(rs.getString(1));
       else 
          iRowCount=0;
       rs.close();
          
        //pozitia noua
        if(pozprodus>0 && pozprodus <= iRowCount){
           //se muta produsele de deasupra pozitiei viitoare cu +1
          querry="update alimente set no=no+1 where cat=" + subcti + " and no>=" + pozprodus;
           stmt.executeUpdate(querry);					  
        }	
        else	 
          pozprodus=iRowCount+1; 
      }
 		
      //se modifica produsul
      if(fimp==null)
         querry="update alimente set denp=\"" + dp.trim() + "\", pretp=" + Pret.IntS() 
           + ", um=\"" + (up.trim()).toLowerCase() + "\", expl=\"" + expl.trim() 
           + "\",  no=" + pozprodus + " where cat=" + subcti + " and codp=" + codp;
       else{
          querry="update alimente set denp=\"" + dp.trim() + "\", pretp=" + Pret.IntS() 
            + ", um=\"" + (up.trim()).toLowerCase() + "\", expl=\"" + expl.trim() 
 	+ "\", type=\"" + type  + "\", no=" + pozprodus 
	+ " where cat=" + subcti + " and codp=" + codp;
			
			
         String ren = dir + File.separator + codp + "." + type;
          g = new File(ren);
          g.delete();
          f.renameTo(g);
      }
       //out.println("<br>"+ querry +"<br>");					  
       stmt.executeUpdate(querry);					  
       stmt.close();
    }	
  }
  catch(SQLException e) {;}
  catch(Exception e) {;}
  //out.println("</body></html>");
  //out.close();
  
  RequestDispatcher rd = req.getRequestDispatcher("modif"); 
  rd.forward(req,res);
}
}




 
 
C.V.
 
Hosted by www.Geocities.ws

1