|
       10.5.15 Servlet stsel.java
       Acest servlet executa stergerea produselor selectate in pagina generata de servlet-ul sterg. Dupa stergere se apeleaza din nou servlet-ul sterg, pentru a se selecta alte prduse ce vor fi sterse. Atunci cand un produs este sters pozitia produselor de "deasupra" sa este scazuta cu o unitate, pentru a umple golul lasat prin stergere.
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.*;
import javax.servlet.http.HttpSession;
import java.util.*;
public class stsel 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");
try {
/**
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 inser" + "</title>");
out.println("</head>");
out.println("<body>");
**/
//subcategoria
String subcti=null;
subcti=(String)ses.getAttribute("subcat");
//produsele care se sterg
String[] sprod=req.getParameterValues("sprod");
if(sprod!=null){
//indecsii
int[] no = new int[sprod.length];
for(int i=0;i<sprod.length;i++)
no[i]=Integer.parseInt(sprod[i].substring(sprod[i].indexOf(".") +1 ,sprod[i].lastIndexOf(".")));
String codp,type;
String querry;
Statement stmt;
for(int i=0;i<sprod.length;i++){
codp=sprod[i].substring(0,sprod[i].indexOf("."));
type=sprod[i].substring(sprod[i].lastIndexOf(".") + 1,sprod[i].length());
//stergerea din BD
stmt = con.createStatement();
querry="delete from alimente where cat=" + subcti + " and codp=" + codp;
if(stmt.executeUpdate(querry)>0){
stmt.close();
stmt = con.createStatement();
querry="update alimente set no=no-1 where cat=" + subcti + " and no>" + no[i];
stmt.executeUpdate(querry);
stmt.close();
//actualizarea indecsilor
for(int j=1;j<sprod.length;j++)
if(no[j]>no[i])
no[j]--;
//imaginea produsului
String filepath=baseDir + "/" + "c" + subcti + "/" + codp + "." + type;
filepath=filepath.replace('\\','/');
//out.println("<br>" + filepath + "<br>");
File f = new File(filepath);
if(f.length()>0)
f.delete();
}
else
stmt.close();
}
}
RequestDispatcher rd = req.getRequestDispatcher("sterg");
rd.forward(req,res);
}
catch(SQLException e) {;}
}
}
|
|