xxdavide84xx
22-01-2008, 12:21
Salve mi chiedevo avendo questo semplice e intuitivo JSP
<%--
Document : Verifica tesi
Created by : Venturi Davide
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Verifica tesi</title>
</head>
<p align="center"><b><font size="5" color="#0000FF">Verifica parametri tesi</font></b></p>
<FORM ENCTYPE='multipart/form-data'
method='POST' action='mioserver/upload.jsp'>
<p align="center">
<INPUT TYPE='file' NAME='fileUp'>
<INPUT TYPE='submit' VALUE='Upload File'>
</p>
</FORM>
</html>
1) come faccio a dire quando spingo il pulsante Upload di fare partire il mio programma parserDOm.java sul file caricato?
2) Come faccio in sfoglia a fare comparire solo i file .xml???
AnonimoVeneziano
22-01-2008, 12:38
Salve mi chiedevo avendo questo semplice e intuitivo JSP
<%--
Document : Verifica tesi
Created by : Venturi Davide
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Verifica tesi</title>
</head>
<p align="center"><b><font size="5" color="#0000FF">Verifica parametri tesi</font></b></p>
<FORM ENCTYPE='multipart/form-data'
method='POST' action='mioserver/upload.jsp'>
<p align="center">
<INPUT TYPE='file' NAME='fileUp'>
<INPUT TYPE='submit' VALUE='Upload File'>
</p>
</FORM>
</html>
1) come faccio a dire quando spingo il pulsante Upload di fare partire il mio programma parserDOm.java sul file caricato?
2) Come faccio in sfoglia a fare comparire solo i file .xml???
1) Devi creare una Servlet che gestisce la richiesta. Se non sai cos'è una servlet allora devi studiare di più sull'argomento JSP/Servlets. Per prima cosa la definizione generale : http://en.wikipedia.org/wiki/Java_Servlet e questo invece è un libro molto buono e gratuito che spiega un po' di cose sull'argomento : http://pdf.coreservlets.com/
Per usare JSP + Servlet hai bisogno di un server HTTP contenitore che gestisce JSP e Servlets. Ti consiglio di usare Apache Tomcat ( http://tomcat.apache.org )
2) Non lo so :p
xxdavide84xx
22-01-2008, 17:47
NetBeans e Tomcat ce li ho già...
Non mi puoi fare un esempio della Servlet che dovrei utilizzare,
se il mio programma si chiamasse parserDOM.java?
xxdavide84xx
23-01-2008, 11:29
Ho provato a prendere degli esempi dalla rete, ma non riesco ad installare le librerie: javax.servlet
ho provato a scaricare da qui:
http://java.sun.com/products/servlet/2.1/
http://commons.apache.org/fileupload/
http://vmgump.apache.org/gump/public-jars/jakarta-commons/
http://tomcat.apache.org/tomcat-5.5-doc/servletapi/index.html
http://www.servlets.com/cos/
a scaricare i zip, ma non riesco a farli funzionare su un editor Java anche importando (forse erroneamente i file)....
Ho anche Netbean, ma non riesco lo stesso a fare partire questo (ossia non riesco a generare il file .class):
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ControllerFiles extends HttpServlet
{
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
// Istanziamo le variabili
// Il ServletContext sevirà per ricavare il MIME type del file uploadato
ServletContext context = getServletContext();
String forw = null;
try
{
// Stabiliamo la grandezza massima del file che vogliamo uploadare
int maxUploadSize = 50000000;
MultipartRequest multi = new MultipartRequest(request, ".", maxUploadSize);
String descrizione = multi.getParameter("text");
File myFile = multi.getFile("myFile");
String filePath = multi.getOriginalFileName("myFile");
String path = "C:\\files\\";
try
{
// ricaviamo i dati del file mediante un InputStream
FileInputStream inStream = new FileInputStream(myFile);
// stabiliamo dove andrà scritto il file
FileOutputStream outStream = new FileOutputStream(path + myFile.getName());
// salviamo il file nel percorso specificato
while ( inStream.available() > 0 )
{
outStream.write(inStream.read());
}
// chiudiamo gli stream
inStream.close();
outStream.close();
}
catch (FileNotFoundException fnfe)
{
fnfe.printStackTrace();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
forw = "/done.jsp";
// mettiamo nella request i dati così da poterli ricavare dalla jsp
request.setAttribute("contentType", context.getMimeType(path + myFile.getName()));
request.setAttribute("text", descrizione);
request.setAttribute("path", path + myFile.getName());
request.setAttribute("size", Long.toString(myFile.length()) + " Bytes");
RequestDispatcher rd = request.getRequestDispatcher(forw);
rd.forward(request, response);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
crea nuovo progetto web da net beans . metici dentro le tue jsp e classi , poi ( nn ricordo esattamente il percorso ) dal menu crei nuova servlet ( mi racc con la procedura guidata) . Se fai cosi non puoi sbagliare :)
xxdavide84xx
23-01-2008, 12:19
crea nuovo progetto web da net beans . metici dentro le tue jsp e classi , poi ( nn ricordo esattamente il percorso ) dal menu crei nuova servlet ( mi racc con la procedura guidata) . Se fai cosi non puoi sbagliare :)
Se io faccio così
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Verifica tesi</title>
</head>
<p align="center"><b><font size="5" color="#0000FF">Verifica parametri tesi</font></b></p>
<FORM ENCTYPE='multipart/form-data'
method='POST' action='mioserver/upload.jsp'>
<p align="center">
<INPUT TYPE='submit' VALUE='Upload File'>
</p>
</FORM>
</html>
Dove devo mettere upload.jsp per farlo partire???
Io ho un file bb.java che fa una cosa. e funziona normalmente in java, come faccio a farlo partire anche se non è settato per essere una web application spingendo il pulsante upload?
Questo è bb.java:
import java.io.*;
import java.util.*;
import java.awt.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.swing.*;
public class bb
{
Vector styleNodes = new Vector();
Vector styleObjects = new Vector();
Vector bodyNodes = new Vector();
Vector bodyObjects = new Vector();
public bb()
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try
{
builder = factory.newDocumentBuilder();
}
catch (ParserConfigurationException e)
{
e.printStackTrace();
System.exit(1);
}
Document document = null;
try
{
JFileChooser fc = new JFileChooser();
fc.setApproveButtonText("Apri");
//decidi cosa mettere nel pulsante
fc.setDialogTitle("Seleziona XML");
//imposti nome JFileCHooser
fc.setFileFilter(new XMLFilter());
// imposti filtro .xml
int value = fc.showOpenDialog(null);
if ( value == JFileChooser.APPROVE_OPTION )
{
File f = fc.getSelectedFile();
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Verifica_tesi.txt", false)));
document = builder.parse(f);
findStyleNodes(document);
createStyleObjects();
Based_On();
printStyles(pw);
findBodyNodes(document);
createBodyObjects();
printBody(pw);
controlli();
pw.close();
try {
String nomeFile = "Verifica_tesi.txt";
Runtime rt = Runtime.getRuntime() ;
Process proc;
proc = rt.exec("cmd /C start "+nomeFile);
InputStream inp = proc .getInputStream() ;
OutputStream outp = proc .getOutputStream ();
InputStream errp = proc .getErrorStream();
} catch(Exception e) {
e.printStackTrace();
}
}
if ( value == JFileChooser.CANCEL_OPTION )
{
System.out.println("Hai premuto il tasto annulla");
}
if ( value == JFileChooser.ERROR_OPTION )
{
System.out.println("ERRORE");
}
System.exit(0);
}
catch (Exception e)
{
e.printStackTrace();
System.exit(1);
}
}
private void findStyleNodes(Node startingNode)
{
NodeList childNodes = startingNode.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node actualNode = childNodes.item(i);
if ( isStyleNode(actualNode) )
styleNodes.addElement(actualNode);
if ( actualNode.hasChildNodes() )
findStyleNodes(actualNode);
}
}
private boolean isStyleNode(Node node)
{
return node.getNodeName().equals("w:style");
}
private void createStyleObjects()
{
for ( int i = 0; i < styleNodes.size(); i++)
{
Node styleNode = (Node)styleNodes.elementAt(i);
Style style = new Style();
style.name = getAttributeValue(styleNode, "w:styleId");
Node basedNode = getChildNode(styleNode, "w:basedOn");
if ( basedNode != null )
style.based = getAttributeValue(basedNode, "w:val");
Node pPrNode = getChildNode(styleNode, "w:pPr");
if ( pPrNode != null )
{
Node jcNode = getChildNode(pPrNode, "w:jc");
if ( jcNode != null )
style.jc = getAttributeValue(jcNode, "w:val");
}
Node paragraphNode = getChildNode(styleNode, "w:rPr");
if ( paragraphNode != null )
{
Node fontNode = getChildNode(paragraphNode, "wx:font");
if ( fontNode != null )
style.font = getAttributeValue(fontNode, "wx:val");
else
{
Node rfontNode = getChildNode(paragraphNode, "w:rFonts");
if ( rfontNode != null )
style.font = getAttributeValue(rfontNode, "w:cs");
}
Node sizeNode = getChildNode(paragraphNode, "w:sz");
if ( sizeNode != null )
style.size = getAttributeValue(sizeNode, "w:val");
Node grassettoNode = getChildNode(paragraphNode, "w:b");
if ( grassettoNode != null )
style.grassetto = getAttributeValue(grassettoNode, "w:val");
Node italicoNode = getChildNode(paragraphNode, "w:i");
if ( italicoNode != null )
style.italico = getAttributeValue(italicoNode, "w:val");
Node sottolineatoNode = getChildNode(paragraphNode, "w:u");
if ( sottolineatoNode != null )
style.sottolineato = getAttributeValue(sottolineatoNode, "w:val");
}
styleObjects.addElement(style);
}
}
private String getAttributeValue(Node node, String attributeName)
{
NamedNodeMap attributes = node.getAttributes();
if ( attributes == null )
return "";
Node item = attributes.getNamedItem(attributeName);
if ( item == null )
return "";
return item.getNodeValue();
}
private Node getChildNode(Node node, String nodeName)
{
NodeList childNodes = node.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node childNode = childNodes.item(i);
if ( childNode.getNodeName().equals(nodeName) )
return childNode;
}
return null;
}
private void printStyles(PrintWriter pw)
{
for ( int i = 0; i < styleObjects.size(); i++)
{
Style style = (Style)styleObjects.elementAt(i);
//System.out.println(style);
pw.println(style);
}
}
public static void main(String args[])
{
new bb();
}
class Style
{
String name;
String based;
String jc;
String font;
String size;
String grassetto;
String italico;
String sottolineato;
public String toString()
{
StringBuffer buffer = new StringBuffer();
if ( name != null )
{
buffer.append("Stile: " + name + "\n");
if ( based != null )
buffer.append(" Basato su: " + based + "\n");
if ( jc != null )
buffer.append(" Jc: " + jc + "\n");
if ( font != null )
buffer.append(" Font: " + font + "\n");
if ( size != null )
buffer.append(" Dimensione: " + size + "\n");
if ( grassetto != null )
buffer.append(" Grassetto " + grassetto + "\n");
if ( italico != null )
buffer.append(" Italico " + italico + "\n");
if ( sottolineato != null )
buffer.append(" Sottolineato: " + sottolineato + "\n");
}
return buffer.toString();
}
}
private void findBodyNodes(Node startingNode)
{
NodeList childNodes = startingNode.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node actualNode = childNodes.item(i);
if ( isBodyNode(actualNode) )
bodyNodes.addElement(actualNode);
if ( actualNode.hasChildNodes() )
findBodyNodes(actualNode);
}
}
private boolean isBodyNode(Node node)
{
return node.getNodeName().equals("w:p");
}
private void createBodyObjects()
{
String stile = new String();
String jc = new String();
for ( int i = 0; i < bodyNodes.size(); i++)
{
Node bodyNode = (Node)bodyNodes.elementAt(i);
stile = null;
jc = null;
Node paragraphNode = getChildNode(bodyNode, "w:pPr");
if ( paragraphNode != null )
{
Node stileNode = getChildNode(paragraphNode, "w:pStyle");
if ( stileNode != null )
stile = getAttributeValue(stileNode, "w:val");
Node jcNode = getChildNode(paragraphNode, "w:jc");
if ( jcNode != null )
jc = getAttributeValue(jcNode, "w:val");
}
NodeList pNode = getAllChildNode(bodyNode, "w:r");
for ( int j = 0; j < pNode.getLength(); j++)
{
Body body = new Body();
body.stile = stile;
body.jc = jc;
Node rNode = (Node)pNode.item(j);
Node rPrNode = getChildNode(rNode, "w:rPr");
if ( rPrNode != null )
{
Node rstileNode = getChildNode(rPrNode, "w:rStyle");
if ( rstileNode != null )
body.stile = getAttributeValue(rstileNode, "w:val");
Node fontNode = getChildNode(rPrNode, "wx:font");
if ( fontNode != null )
body.font = getAttributeValue(fontNode, "wx:val");
Node grassettoNode = getChildNode(rPrNode, "w:b");
if ( grassettoNode != null )
body.grassetto = getAttributeValue(grassettoNode, "w:val");
Node italicoNode = getChildNode(rPrNode, "w:i");
if ( italicoNode != null )
body.italico = getAttributeValue(italicoNode, "w:val");
Node sottolineatoNode = getChildNode(rPrNode, "w:u");
if ( sottolineatoNode != null )
body.sottolineato = getAttributeValue(sottolineatoNode, "w:val");
Node sizeNode = getChildNode(rPrNode, "w:sz");
if ( sizeNode != null )
body.size = getAttributeValue(sizeNode, "w:val");
}
Node pictNode = getChildNode(rNode, "w:pict");
if ( pictNode != null )
{
Node shapeNode = getChildNode(pictNode, "v:shape");
if ( shapeNode != null )
{
Node imagedataNode = getChildNode(shapeNode, "v:imagedata");
if ( imagedataNode != null )
{
body.titolopict = getAttributeValue(imagedataNode, "o:title");
body.formatopict = getAttributeValue(imagedataNode, "src");
}
}
}
Node wtNode = getChildNode(rNode, "w:t");
if ( wtNode != null )
{
Node testoNode = getChildNode(wtNode, "#text");
if ( testoNode != null )
body.testo = testoNode.getNodeValue();
}
bodyObjects.addElement(body);
}
}
}
private void printBody(PrintWriter pw)
{
for ( int i = 0; i < bodyObjects.size(); i++)
{
Body body = (Body)bodyObjects.elementAt(i);
//System.out.println(body);
pw.println(body);
}
}
private void Based_On()
{
for ( int i = 0; i < styleObjects.size(); i++)
{
Style style = (Style)styleObjects.elementAt(i);
if ( style.size == null )
{
if ( style.based != null )
{
String Based = style.based;
for ( int j = 0; j < styleObjects.size(); j++)
{
Style style1 = (Style)styleObjects.elementAt(j);
String name = style1.name;
if ( Based.equals(name) )
style.size = style1.size;
}
}
}
}
}
private void controlli()
{
for ( int i = 0; i < bodyObjects.size(); i++)
{
Body body = (Body)bodyObjects.elementAt(i);
if ( body.testo != null )
{
if ( body.testo.equalsIgnoreCase("Alma Mater Studiorum - Universit� degli Studi di Bologna") || body.testo.equalsIgnoreCase("Sede di Cesena") ||
body.testo.equalsIgnoreCase("FACOLT� DI SCIENZE MATEMATICHE FISICHE E NATURALI") || body.testo.equalsIgnoreCase("Corso di Studi in Scienze dell�Informazione") )
System.out.println("OK Intestazione iniziale");
if ( body.testo.equalsIgnoreCase("Tesi di Laurea in:") || body.testo.equalsIgnoreCase("Tesi di Laurea in") )
System.out.println("OK materia");
if ( body.testo.equalsIgnoreCase("relatore:") || body.testo.equalsIgnoreCase("relatore") )
System.out.println("OK relatore");
if ( body.testo.equalsIgnoreCase("presentata da:") || body.testo.equalsIgnoreCase("presentata da") )
System.out.println("OK presentata");
if ( body.testo.equalsIgnoreCase("corelaotre") || body.testo.equalsIgnoreCase("correlatore") || body.testo.equalsIgnoreCase("corelaotre:") || body.testo.equalsIgnoreCase("correlatore:") )
System.out.println("OK correlatore");
if ( body.testo.equalsIgnoreCase("sessione i") || body.testo.equalsIgnoreCase("sessione 1") )
System.out.println("OK Prima sessione");
if ( body.testo.equalsIgnoreCase("sessione ii") || body.testo.equalsIgnoreCase("sessione 2") )
System.out.println("OK Seconda sessione");
if ( body.testo.equalsIgnoreCase("sessione iii") || body.testo.equalsIgnoreCase("sessione 3") )
System.out.println("OK Terza sessione");
if ( body.testo.equalsIgnoreCase("indice") || body.testo.equalsIgnoreCase("ndice") )
System.out.println("OK INDICE");
if ( body.testo.equalsIgnoreCase("introduzione") || body.testo.equalsIgnoreCase("ntroduzione") )
System.out.println("OK INTRODUZIONE");
if ( body.testo.equalsIgnoreCase("conclusioni") || body.testo.equalsIgnoreCase("onclusioni") || body.testo.equalsIgnoreCase("conclusione") || body.testo.equalsIgnoreCase("onclusione") )
System.out.println("OK CONCLUSIONI");
if ( body.testo.equalsIgnoreCase("bibliografia") || body.testo.equalsIgnoreCase("ibliografia") || body.testo.equalsIgnoreCase("bibbliografia") || body.testo.equalsIgnoreCase("ibbliografia") )
System.out.println("OK BIBLIOGRAFIA");
if ( body.jc == null && body.font == null && body.size == null )
{
ArrayList buffer1 = stili();
for ( int j = 0; j < buffer1.size(); j++)
{
if ( body.stile.equals(buffer1.get(j)) )
System.out.println("Testo rispetta vincoli");
}
}
else
{
if ( body.font != null )
System.out.println("Font diverso: " + body.font + " dimensione diversa: " + body.size + " contiene: " + body.testo);
}
}
}
System.out.println("WARNING.....");
}
class Body
{
String stile;
String jc;
String font;
String grassetto;
String italico;
String sottolineato;
String size;
String testo;
String titolopict;
String formatopict;
public String toString()
{
StringBuffer buffer = new StringBuffer();
if ( stile != null )
buffer.append("Stile body: " + stile + "\n");
if ( jc != null )
buffer.append(" Jc body: " + jc + "\n");
if ( font != null )
buffer.append(" Font body: " + font + "\n");
if ( size != null )
buffer.append(" Dimensione body: " + size + "\n");
if ( grassetto != null )
buffer.append(" Grassetto body " + grassetto + "\n");
if ( italico != null )
buffer.append(" Italico body " + italico + "\n");
if ( sottolineato != null )
buffer.append(" Sottolineato body: " + sottolineato + "\n");
if ( testo != null )
buffer.append(" Testo body: " + testo + "\n");
if ( titolopict != null )
buffer.append(" Nome immagine body: " + titolopict + "\n");
if ( formatopict != null )
buffer.append(" Formato immagine body: " + formatopict + "\n");
return buffer.toString();
}
}
private NodeList getAllChildNode(Node node, String nodeName)
{
ArrayNodeList arrNodeList = new ArrayNodeList();
NodeList childNodes = node.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node childNode = childNodes.item(i);
if ( childNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && childNode.getNodeName().equals(nodeName) )
{
arrNodeList.add(childNode);
}
}
return arrNodeList;
}
class ArrayNodeList implements NodeList
{
private ArrayList nodesArray = new ArrayList();
public void add(Node n)
{
nodesArray.add(n);
}
public int getLength()
{
return nodesArray.size();
}
public Node item(int index)
{
try
{
return (Node)nodesArray.get(index);
}
catch (IndexOutOfBoundsException e)
{
return null;
}
}
}
private ArrayList stili()
{
String style1 = new String();
ArrayList buffer1 = new ArrayList();
for ( int i = 0; i < styleObjects.size(); i++)
{
Style style = (Style)styleObjects.elementAt(i);
if ( style.jc != null && style.jc.equals("both") )
if ( style.font != null && style.font.equals("Times New Roman") )
if ( style.size != null )
if ( style.size.equals("24") || style.size.equals("26") )
if ( style.grassetto == null && style.italico == null && style.sottolineato == null )
{
style1 = style.name;
buffer1.add(style1);
}
}
return buffer1;
}
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.