ciao a tutti
vorrei creare all'interno di una mia servlet un file .htm
io ho provato a mettere il codice in questo modo ma mi da il seguente errore
codice:/** * @(#)AddItems.java * * * @author Raffaella * @version 1.00 2007/5/30 */ import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.io.File; import java.util.*; import java.text.*; import org.jdom.*; import org.jdom.input.SAXBuilder; import org.jdom.output.XMLOutputter; import java.util.Iterator; import java.util.List; import java.io.FileWriter; import java.io.BufferedWriter; import java.io.FileReader; import java.io.BufferedReader; import java.io.IOException; import java.io.FileNotFoundException; public class AddItems { Document documento = null; Element elementoItems = null; String id, author, description; public void aggiungiItem(){ Element added = new Element("item"); Element element_id = new Element("id"); Element element_author = new Element("author"); Element element_description = new Element("description"); element_id.setText(id); element_author.setText(author); element_description.setText(description); added.addContent(element_id); added.addContent(element_author); added.addContent(element_description); elementoItems.addContent(added); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ StringBuffer buf = new StringBuffer(); response.setContentType("text/html"); PrintWriter responseOutput = response.getWriter(); buf.append("<html><head></head><body><table border=\"1\" width=\"40%\" align=\"center\"><tbody><tr>"); String controllo = new String("ok"); //RECUPERO LE INFORMAZIONI INVIATE DAL FORM id = request.getParameter("id"); author = request.getParameter("author"); description = request.getParameter("description"); if ((id != "") && (author != "") && (description != "")){ //creiamo un oggetto FileWriter per poter creare una pagina web inserendo in un combobox //gli id degli item aggiunti try { //se il file non esiste lo crea e provvede a inserirvi l'elemento BufferedWriter webPage = new BufferedWriter( new FileWriter("C:/Programmi/Apache Software Foundation/Tomcat 6.0/webapps/ITemRecommender/ChooseItem.htm")); String text1 = "<html><head><title>Choose Item</title></head><body><h2>Choose An Item</h2><FORM id=\"form_item_chose\" METHOD=\"post\" ACTION=\"ChooseItem\"><b ID=\"ItemChose\">Choose an item to rate to a customer. Choose one of these <SELECT NAME=\"chose\"><OPTION>"; String text2 = "</OPTION></SELECT></p> <INPUT id = \"send\" TYPE=\"submit\" VALUE=\"Send\" /></p> </FORM></body></html>"; webPage.write(text1 + id + text2); } catch (IOException ex) { System.err.println(ex); }[/b] //CONTROLLO SE ESISTE GIA' UN FILE .XML CHE SI CHIAMA REGISTRATED String path = new String ("C:/Programmi/Apache Software Foundation/Tomcat 6.0/webapps/ITemRecommender/xml/Item.xml"); File file = new File(path); //SE IL FILE NON ESISTE LO CREO E GLI AGGIUNGO L'ELEMENTO RADICE IL PRIMO REGISTRATO if (!file.exists()){ file.createNewFile(); elementoItems = new Element("itemAdded"); //AGGIUNGO IL REGISTARTO CHE RISULTA IL PRIMO DATO CHE IL FILE REGISTRATI.XML NON ESISTEVA aggiungiItem(); //SCRIVO IL DOCUMENT NEL FILE documento = new Document(elementoItems); XMLOutputter xmlOutputter = new XMLOutputter(); try{ FileOutputStream fileOutputStream = new FileOutputStream(new File(path)); xmlOutputter.output(documento, fileOutputStream); buf.append("<td align=\"center\">Item, " + id + " added. <a href=\"AddItem.htm\">Go Back</a></p> <a href=\"Recommendations.htm\">Proceed</a></p></td>"); } catch (FileNotFoundException ex){ System.err.println(ex); } catch (IOException ex){ System.err.println(ex); } } else{ //SE IL FILE ESISTE LO CARICO IN MEMORIA SAXBuilder saxBuilder = new SAXBuilder(); try{ documento = saxBuilder.build(new File(path)); } catch (JDOMException ex){ System.err.println(ex); } catch (IOException ex){ System.err.println(ex); } //POI UNA VOLTA CARICATO CONTROLLO CHE NON CI SIA GIA' UN REGISTRATO CON TALE LOGIN E SE NON C'è INSERISCO IL NUOVO //REGISTRATO ALTRIMENTI DICO DI CAMBIARE LOGIN elementoItems = documento.getRootElement(); List lista_items = elementoItems.getChildren(); // ottengo un iteratore alla lista chiamando il metodo iterator() di Collection (essendo una list una collection) Iterator iteratore = lista_items.iterator(); while (iteratore.hasNext()) { // ottengo l'elemento corrente chiamando next() sull'iteratore Element id_corrente = (Element)iteratore.next(); if (id.equals(id_corrente)){ buf.append("<td align=\"center\">Item Already Added. <a href=\"AddItem.htm\">Go Back</a></p></td>"); controllo = new String("ko"); break; } } if (controllo.equals("ok")){ //RISCRIVO L'INTERO DOCUMENTO NEL FILE XML DOPO AVER AGGIUNTO IL REGISTRATO aggiungiItem(); XMLOutputter xmlOutputter = new XMLOutputter(); //IL METODO SEGUENTE Format.getPrettyFormat() SERVE PER SCRIVERE SUL FILE XML IN MODO BEN FORMATTATO //CON GLI A CAPO E LE INDENTAZIONI PER OGNI ELEMENTO, ma non lo accetta //xmlOutputter.setFormat(Format.getPrettyFormat()); try{ FileOutputStream fileOutputStream = new FileOutputStream(new File(path)); xmlOutputter.output(documento, fileOutputStream); buf.append("<td align=\"center\">Item Successfull Added. <a href=\"AddItem.htm\">Go Back</a></p> <a href=\"Recommendations.htm\">Proceed</a></p></td>"); } catch (FileNotFoundException ex){ System.err.println(ex); } catch (IOException ex){ System.err.println(ex); } } } } else{ buf.append("<td align=\"center\">Missing informations, fields with * are compulsory.</td></p><a href=\"AdminRegistration.htm\">Go Back</a></td>"); } buf.append("</tr></tbody></table></body></html>"); responseOutput.println(buf.toString()); responseOutput.close(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }perkè cosa ho sbagliato??codice:HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: Error allocating a servlet instance org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508) java.lang.Thread.run(Unknown Source) root cause java.lang.NoClassDefFoundError: projectservlet/AddItems (wrong name: AddItems) java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClass(Unknown Source) java.security.SecureClassLoader.defineClass(Unknown Source) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508) java.lang.Thread.run(Unknown Source) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs. -------------------------------------------------------------------------------- Apache Tomcat/6.0.13
e poi è possibile leggere con un BufferedReader una parola e sostituirla con un altra una volta ke è stata trovata all'interno della linea appena letta?io ho visto nella doc della sun ma non ho trovato nessun metodo ke sia equivalente a find() o replace()
non so la cosa è fattibile?
grazie mille![]()

Rispondi quotando