Salut tout le monde,
J’ai un petit problème avec ma servlet.
Explication : j’ai une servlet pour créer un fichier XML le problème c’est que lorsque j’exécute ma servlet pour la deuxième fois elle me créer un nouveau fichier XML avec des nouveaux informations mais elle contient toujours les information de la première exécution.
Je veux que ma servlet devienne vide automatiquement après l’exécution ou bien la détruire.
Voila ma servlet :
package admin;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
@SuppressWarnings("serial")
public class ServletCre extends HttpServlet {
// Creation de la racine XML
static Element racine = new Element("questionnaire");
//On crée un nouveau Document JDOM basé sur la racine que l'on vient de créer
static org.jdom.Document document = new Document(racine);
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
String domaine = request.getParameter("domaine");
String requete = "SELECT * FROM question WHERE type_domaine ='"+domaine+"'";
ResultSet r = connect.ClassConnect.connexion_select(requete);
try {
// Bouclé sur les données extraites de la bases pour creer un fichier XML
// a Chaque fois on cree une balises question avec des sous-balises qui contient les
// coordonnées de chaque question .
while(r.next()){
// Recuperation des données de la base de données et les stocké dans des variables temp
String code = r.getString("code_question");
String type_q = r.getString("type_question");
String type_d = r.getString("type_domaine");
String valeur = r.getString("valeur");
String choix1 = r.getString("choix1");
String choix2 = r.getString("choix2");
String choix3 = r.getString("choix3");
String choix4 = r.getString("choix4");
// Creation d'un element question en temps que racine
Element question = new Element("question");
racine.addContent(question);
// Creation des autres elements etant des sous-balises de 'question'
Element code_question = new Element("code-question");
code_question.setText(code);
question.addContent(code_question);
Element type_question = new Element("type-question");
type_question.setText(type_q);
question.addContent(type_question);
Element type_domaine = new Element("type-domaine");
type_domaine.setText(type_d);
question.addContent(type_domaine);
Element valeur_question = new Element("designation");
valeur_question.setText(valeur);
question.addContent(valeur_question);
Element choix_1 = new Element("choix1");
choix_1.setText(choix1);
question.addContent(choix_1);
Element choix_2 = new Element("choix2");
choix_2.setText(choix2);
question.addContent(choix_2);
Element choix_3 = new Element("choix3");
choix_3.setText(choix3);
question.addContent(choix_3);
Element choix_4 = new Element("choix4");
choix_4.setText(choix4);
question.addContent(choix_4);
}
enregistrer("D:/"+domaine+".xml");
getServletContext().getRequestDispatcher("/vues/ok.jsp").forward(request, response);
}
catch (SQLException sqle) {sqle.printStackTrace();}
}
static void enregistrer(String fichier)
{
try
{FileOutputStream os = new FileOutputStream(fichier);
XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
sortie.output(document, os);
os.flush();
os.close();
}
catch (java.io.IOException e){}
}
// POST
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// on passe la main au GET
doGet(request, response);
}
public void destroy()
{super.destroy();}
}
Aider moi s’il vous plais.
Partager