JSP - JAVA : Scrittura su file.xml come fare? Help!

maledetto-ansiC

Nuovo Utente
26 Gen 2009
2
2
0
Ciao ragazzio sto imparando ad usare il jsp e java insieme. Ora mi trovo di fronte ad un problema grosso. La registrazione dei dati su di un file xml.
Vorrei fare in modo che se il utenti.xml non è presente lo crea altrimenti se è presente lo aggiorna.
Ho pensato che sarebbe più facile un utenti.xml con le seguenti caratteristiche perchè per il logon non ho avuto problemi fino ad adesso.

Esempio se io vorrei scrivere un file.xml di questo tipo:
Codice:
<userTable>
  <user username="Joe" password="Soap" ....e altri dati dell'utente>Joe</user> 
   </userTable>

ed ad ogni registrazione che un utente fa si viene a crearne uno successivo come posso fare da una jsp di questo tipo?

Vi ricordo che uso netbeans 6.5 con tomcat 6.0 su Vista.

Grazie Cordiali Saluti.

PS: Supponiamo che dentro la jsp ho le seguenti variabili

String username = "Joe";
String password = "Soap";
String nome = "Joe";
String cognome = "Ping";
String codicepostale = "62047";
String notificamail = "Abilitata";
String email = "joe@libero.it";

Come faccio a memorizzarli dalla pagina jsp al file xml tramite DOM? Non ci ho capito nulla!!!
Vi prego di aiutarmi grazie!!!
 
  • Like
Reactions: ottofonsuppost
dato che non ho ricevuto una risposta....

Allora ho risolto per conto :beer: evviva! Solo per me! E' un merito di roseindia che aiuta molto rispetto a questo forum peccato che è in inglese.

Allora la pagina jsp del successo dell'iscrizione è così:

Codice:
<%@ page language="java" %>
<%@ page import="java.util.*, java.io.*, org.w3c.dom.*, javax.xml.parsers.*, javax.xml.transform.*,javax.xml.transform.dom.*,javax.xml.transform.stream.*" %>

<jsp:useBean id="formHandler" class="Controlli.Registrazione" scope="request"/>
<html>
    <body>
        <center>
            <table border="3">

                <th colspan=2>
                    <font size=5>REGISTRAZIONE UTENTE AVVENUTA CON SUCCESSO!!!</font><br><br>(IMPORTANTE: SI CONSIGLIA STAMPARE LA COPIA DELLA REGISTRAZIONE!)
                </th>
                <br><br>
                <font size=4>
                    <tr>
                        <td valign=top>
                            <center>
                                <form action="outfile.jsp">
                                    <b>Nome: </b><jsp:getProperty name="formHandler" property="nome"/> <br><br>

                                    <b>Cognome: </b><jsp:getProperty name="formHandler" property="cognome"/> <br><br>

                                    <b>E-Mail: </b><jsp:getProperty name="formHandler" property="email"/> <br><br>

                                    <b>Codice postale: </b><jsp:getProperty name="formHandler" property="cap"/> <br><br>

                                    <b>Username: </b><jsp:getProperty name="formHandler" property="userName"/>  <br><br>

                                    <b>Password: </b><jsp:getProperty name="formHandler" property="password1"/>  <br><br>

                                    <input type="submit" value="Ritorna nella Home">
                                </form>
                            </center>
                        </td>
                    </tr>
                </font>
            </table>
        </center>

        <%

        String nome = formHandler.getnome();
        String cognome = formHandler.getcognome();
        String cap = formHandler.getcap();
        String email = formHandler.getEmail();
        String notifica = formHandler.getnotifica_mail();
        String username = formHandler.getUserName();
        String password = formHandler.getPassword1();

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        Document doc = factory.newDocumentBuilder().parse(new File("C:/Users/CrisLoveStefy/Documents/NetBeansProjects/User registation form/web/Dati/utenti.xml"));

        Element root = doc.getDocumentElement();
        Element person = doc.createElement("Record");

        Element Nodo_nome = doc.createElement("Nome");
        person.appendChild(Nodo_nome);
        Text nome_testo = doc.createTextNode(nome);
        Nodo_nome.appendChild(nome_testo);

        Element Nodo_cognome = doc.createElement("Cognome");
        person.appendChild(Nodo_cognome);
        Text cognome_testo = doc.createTextNode(cognome);
        Nodo_cognome.appendChild(cognome_testo);


        Element Nodo_cap = doc.createElement("Cap");
        person.appendChild(Nodo_cap);
        Text cap_testo = doc.createTextNode(cap);
        Nodo_cap.appendChild(cap_testo);

        Element Nodo_email = doc.createElement("Email");
        person.appendChild(Nodo_email);
        Text email_testo = doc.createTextNode(email);
        Nodo_email.appendChild(email_testo);

        Element Nodo_notifica = doc.createElement("Notifica");
        person.appendChild(Nodo_notifica);
        Text notifica_testo = doc.createTextNode(notifica);
        Nodo_notifica.appendChild(notifica_testo);

        Element Nodo_username = doc.createElement("Username");
        person.appendChild(Nodo_username);
        Text username_testo = doc.createTextNode(username);
        Nodo_username.appendChild(username_testo);


        Element Nodo_password = doc.createElement("Password");
        person.appendChild(Nodo_password);
        Text password_testo = doc.createTextNode(password);
        Nodo_password.appendChild(password_testo);

        Node firstNode = root.getFirstChild();
        root.insertBefore(person, firstNode);

        TransformerFactory factory2 = TransformerFactory.newInstance();
        Transformer transformer2 = factory2.newTransformer();

        transformer2.setOutputProperty(OutputKeys.INDENT, "yes");

        // create string from xml tree
        StringWriter sw = new StringWriter();
        StreamResult result = new StreamResult(sw);
        DOMSource source = new DOMSource(doc);
        transformer2.transform(source, result);
        String xmlString = sw.toString();

        //Scrittura sul file XML
        FileWriter fstream = new FileWriter("C:/Users/CrisLoveStefy/Documents/NetBeansProjects/User registation form/web/Dati/utenti.xml");
        BufferedWriter file = new BufferedWriter(fstream);
        file.write(xmlString);
        file.close();






        %>

    </body>
</html>

E mi crea il file questa volta ho deciso di fare così:

a partire da un file che ho impostato per default o meglio ho forzato a farlo esistere perchè non so come crearlo da zero e impostare i campi così:
Eccolo qui
Codice:
<Record>
  <?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<Utenti>
</Utenti>



a:
Codice:
 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<Utenti>
  <Record>
  <Nome>XXXX</Nome> 
  <Cognome>YYYYY</Cognome> 
  <Cap>XYXYXY</Cap> 
  <Email>XUXUXUXU@XUXUXUXU.it</Email> 
  <Notifica>Disabilitata</Notifica> 
  <Username>USERNAME</Username> 
  <Password>USERNAME</Password> 
  </Record>
....ORA SI AGGIORNA COME UNA PILA DICIAMO!!!
</Utenti>


ora che sono un'amministratore e vorrei cancellare tutti i valori compresi tra i tag di un record cercando ovviamente la persona tramite username o una qualsiasi caratteristica come posso farlo?
E' possibile creare un'applet swing che legge il file xml e poi ci crea una tabella....a questo punto....ci saranno i pulsanti che eliminano il record...visto che per esempio XXXXX ha combinato un casino per bannarlo faccio così.
Che ne dite?
Spero in una risposta questa volta! :hammer: :gun: :fuck: :fuck: :fuck:
 
  • Like
Reactions: ottofonsuppost

Discussioni simili