View Full Version : [java] catturare una stringa da tag a tag
gaglioppo
21-02-2006, 10:08
ciao amici,
come posso fare per catturare il contenuto di una file .txt da java racchiuso tra due tag del tipo
<tag1> informazione <tag2>
ho provato con StringToken ma il delimitatore deve essere uguale, mentre nel mio caso tag1<>tag2
grazie
alesnoce
21-02-2006, 10:51
Non so quanto possa aiutarti, ma la stringa che vuoi ottenere mi sembra un Text Node, quindi dovresti cercare tra i metodi di Node o Element quello che ti fa ottenere il Text Node come figlio dell'elemento <tag1>, e poi quello che restituisce il testo.
ma è un file XML?
in caso positivo esistono librerie (jaxp) per il parsing, se invece i tag non rispecchiano la sintassi di XML puoi usare le regular expression (package javax.util.regex)
gaglioppo
21-02-2006, 12:33
si tratta di un pezzo di html
in pratica devo catturare il tag <form> </form>
e poi gli <input.........................>
bè puoi semplicemente usare i metodi indexOf e subString di String (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html),
prima ti fai gli indexOf dei tag, poi ti fai la subString dei valori ricevuti in questo modo estrarrai esattamente la stringa fra i tag!
Ciao!!
ma è un file XML?
in caso positivo esistono librerie (jaxp) per il parsing, se invece i tag non rispecchiano la sintassi di XML puoi usare le regular expression (package javax.util.regex)
Io avrei bisogno di tale libreria. Ho scaricato dal sito della Sun il file java_xml_pack-summer-02_01.zip. Mi dici come si installa?
JAXP è già inclusa nel jdk 1.5.
non ricordo il contenuto di quelllo zip, se lo scompatti non c'e' nulla che spieghi l'installazione? penso sia solo qualche jar da includere in classpath.
Ho installato il jdk 1.5 ma non va. Nello zip che ho scaricato non c'è niente che spiega. Solo file jar. Possono servire a qualcosa?
Comuque questa libreria mi servirebbe perchè devo usare la classe XmlDocument. Non c'è un modo alternativo per sfruttare i servizi della classe XmlDocument, non so una classe diversa.
Ho installato il jdk 1.5 ma non va. Nello zip che ho scaricato non c'è niente che spiega. Solo file jar. Possono servire a qualcosa?
Comuque questa libreria mi servirebbe perchè devo usare la classe XmlDocument. Non c'è un modo alternativo per sfruttare i servizi della classe XmlDocument, non so una classe diversa.
XmlDocument di che package?
cosa vuol dire non funziona il jdk1.5?
Vuol dire che, nonostante abbia installato la jdk 1.5.0, la classe non viene trovata. Comunque lasciamo perdere la classe XmlDocument. Tanto ho capito come si scrive in un file xml.
Ora sto cercando di fare una servlet ma ho problemi a trovare la classe javax.servlet. Ho installato tutte le tecnologie possibili e immaginabili ma non riesce proprio a trovarla. Ho anche preso i file .jar da tomcat e messi in tutte le cartelle bin, lib e ext di jre e jdk ma niente. Ho aggiornato i classpath ma niente.. Come devo fare?
Uso jcreator.
Il package si trova in un jar di nome "j2ee.jar" nel J2EE, in "servlet-api.jar" per Tomcat.
Di solito si include il jar nel percorso temporaneo di ricerca delle classi per la compilazione ma nulla vieta di copiare quell'archivio jar nella cartella "ext" del JDK, trasformandolo in estensione permanente della piattaforma.
A tal fine, copia il file "servlet-api.jar" nella cartella:
JDK/jre/lib/ext/
dove JDK sta per "la cartella in cui hai installato il JDK (il valore predefinito è c:\programmi\java\jdk1.5.0_06).
Nota che l'estensione influenza il JRE privato ma non il JRE pubblico. Quando lanci il programma "java", a meno di aver modificato la variabile PATH, la piattaforma avviata è il JRE pubblico (c:\programmi\java\jre1.5.0_06).
Il package si trova in un jar di nome "j2ee.jar" nel J2EE, in "servlet-api.jar" per Tomcat.
Di solito si include il jar nel percorso temporaneo di ricerca delle classi per la compilazione ma nulla vieta di copiare quell'archivio jar nella cartella "ext" del JDK, trasformandolo in estensione permanente della piattaforma.
A tal fine, copia il file "servlet-api.jar" nella cartella:
JDK/jre/lib/ext/
dove JDK sta per "la cartella in cui hai installato il JDK (il valore predefinito è c:\programmi\java\jdk1.5.0_06).
Nota che l'estensione influenza il JRE privato ma non il JRE pubblico. Quando lanci il programma "java", a meno di aver modificato la variabile PATH, la piattaforma avviata è il JRE pubblico (c:\programmi\java\jre1.5.0_06).
Ho preso il file E:\Programmi\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar e l'ho copiato in E:\Programmi\Java\jdk1.5.0\jre\lib\ext, in E:\Programmi\Java\jre1.5.0\lib\ext e E:\Programmi\Java\jre1.5.0_06\lib\ext ma non va. Devo fare qualche altra cosa?
Ai fini della compilazione è sufficiente estendere il solo JDK. Ripeto comunque che la procedura più comune consiste nell'includere il jar nel percorso delle classi ricercate durante la compilazione. Tuttavia, non conoscendo JCreator, non so darti indicazioni su cosa modificare (potrebbe essere qualcosa che suona come "classpath" tra le ipotetiche opzioni del progetto.
Devi controllare quanti JDK e JRE hai sul tuo sistema. Sembra che tu abbia almeno due JRE, un 1.5.0 e un 1.5.0_06.
E' possibile che tu abbia anche un JDK 1.5.0_06? Per verificarlo puoi aprire la console (prompt del dos in Windows) ed eseguire il comando:
javac -version
Comparirà in prima linea la versione del compilatore e poi le opzioni di compilazione. Puoi anche controllare nel pannello "installazione applicazioni" di windows
Il dubbio mi sorge perchè l'aver copiato il jar nella cartella
E:\Programmi\Java\jdk1.5.0\jre\lib\ext
risolve certamente il problema di rilevamento del package in compilazione. L'unica spiegazione possibile è che quel JDK non sia quello concretamente usato. E, poichè JCreator tenta di compilare, deve essercene almeno un'altro.
Le prime due righe restituite da javac sono "javac 1.5.0" e "javac: no source files".
Ho provato a includere il file jar con una opzione in jcreator ma ancora che non la vede.
Un esorcista?
Allora è esatto aver messo il file nella cartella jdk1.5.0/jre/lib/ext.
A scanso di equivoci, prova a creare un sorgente tipo:
import javax.servlet.*;
public class Prova {}
e a compilarlo da linea di comando:
javac Prova.java
Nel caso in cui non funzioni, mentre procedi con i riti per la rimozione della makumba che qualcuno ha tirato al tuo pc, prova a specificare temporaneamente il percorso del file jar:
javac -cp .;"E:\Programmi\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar" Prova.java
Ho risolto con eclipse. Prima non mi importava i pacchetti perchè dovevo creare un progetto da capo. Invece prima aprivo solo un file e tentavo di compilarlo.
Grazie mille.
Ora ho un altrop roblema. Sto tentando di usare questa servlet che ho creato con un semplice heloWorld. Ho messo il .class in WEB-INF/classes e ho modificato il file web.xml. Se provo a collegare la jsp con una delle servlet di esempio di tomcat va tutto ok. Con a servlet che ho creato io invece mi da questo errore:
description: The server encountered an internal error () that prevented it from fulfilling this request.
javax.servlet.ServletException: Servlet execution threw an exception
filters.ExampleFilter.doFilter(ExampleFilter.java:101).
root cause
java.lang.Error: Unresolved compilation problem:
out cannot be resolved
RicercaProdotto.doGet(RicercaProdotto.java:18)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
filters.ExampleFilter.doFilter(ExampleFilter.java:101).
La servlet è questa:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class RicercaProdotto extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriterout = response.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>è</TITLE></HEAD>");
out.println("<BODY>");
out.println("<STRONG>ma</STRONG>");
out.println("</BODY></HTML>");
}
}
L'unico problema nel codice che hai incollato è la dichiarazione di PrintWriter. Il nome della variabile (out) è attaccato al nome del tipo (PrintWriter):
PrintWriterout = response.getWriter();
Un semplice refuso.
PrintWriter out = response.getWriter();
Accipicchia!!! :doh: Sono proprio fuso...
Grazie comunque.
Comunque ora sono andato avanti e ho un nuovo problema. Ho creato una servlet:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class RicercaProdotto extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
GestioneDB cerca = new GestioneDB();
prodotto p = cerca.cercaProdotto(request.getParameter("marca"), request.getParameter("modello"));
gotoPage("/visualizza_prodotto.jsp?p",request,response);
}
private void gotoPage( String address,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher(address);
dispatcher.forward(request,response);
}
}
Come si vede deve richiamare una jsp visualizza_prodotto che è questa:
<HTML><HEAD><TITLE>BENVENUTO</TITLE></HEAD>
<BODY BGCOLOR="white">
<% prodotto p = request.getParameter("p");
out.println(p.getCategoria());
%>
</BODY>
</HTML>
Questa jsp l'ho messa sia sotto E:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\esercizio che sotto E:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\esercizio\work\org\apache\jsp che
E:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\esercizio\WEB-INF\classes
ma continua a darmi errore "HTTP Status 404 - /visualizza_prodotto.jsp"
"description The requested resource (/visualizza_prodotto.jsp) is not available."
Ho notato che sotto E:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\esercizio\work\org\apache\jsp sono stati creati dei file nome_jsp e nome_jsp.class per ogni jsp chiamata nome. Non so come le ho create. Comunque sono hsp raggiungibili da se,plici link e non dopo l'elaborazione di una servlet
Mi sa che dovrei creare sotto la cartella org/apache/jsp questi file anche per la jsp visualizza_prodotto, ma come faccio?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.