Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 30
  1. #11
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    L'errore persiste in ogni caso, continua a dirmi quando clicco sull'invia del form che la risorsa a cui accedo non è disponibile. con entrambe le opzioni.
    Ma quello che ho capito del web.xml è che il nome della servlet lo scelgo io (login) poi nella classe devo scrivere il nome del .class presente in web-inf/classes senza però indicare web-inf/classes? (considerato che login.class si trova in web-inf/classes senza essere in nessuna sottocartella di tale cartella).
    Poi nel mapping della servlet devo riprendere il nome login e invento io un url-pattern? Che sarà quello che uso per i link e le action dei form????Oppure questo url non è inventato ma deve corrispondere a qualcosa? Per esempio /servlets/login io lo ho inventato e non c'è una cartella cosi nella mia applicazione...
    Se è tutto giusto quello che ho capito, come mai non funziona???

  2. #12
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    TUTTO RISOLTO, RINGRAZIO COMUNQUE TUTTI. POSTO IL CODICE COMPLETO DEL WEB.XML, MANCAVA IL PASSAGGIO DI PARAMETRI CHE SONO 2 DATO CHE IL FORM PASSA DUE CAMPI ALLA SERVLET LOGIN.

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
    version="2.5">
    <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>login</servlet-class>
    <init-param>
    <param-name>Param1</param-name>
    <param-value>Value1</param-value>
    </init-param>
    <init-param>
    <param-name>Param2</param-name>
    <param-value>Value2</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/servlets/login</url-pattern>
    </servlet-mapping>
    </web-app>

  3. #13
    Veramente, i due parametri che hai aggiunto tu sono parametri di inizializzazione della servlet che servono per configurarla (nel senso che dal codice della servlet puoi accedere ai valori di questi parametri e utilizzarli per configurarla), e nulla hanno a che vedere con i parametri della request. Perciò la tua servlet deve funzionare anche eliminando questi due parametri; forse c'era qualche altro errore.

    Ciao,

  4. #14
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    E' verò hai ragione, infatti li ho tolti e va lo stesso, chissà l'importante è che ora funzioni.
    Posso chiederti ancora una cosa? La servlet login al suo interno deve caricare in memoria il file xml dei registrati e vedere se il login inserito è corretto. So quello che devo fare, ma i metodi che uso sono nel package javax.xml.parser.* e quando lo importo e compilo la classe mi dice che tale package non esiste e quindi mi da poi i relativi errori sui metodi che uso di tale package. (o più propriamente sugli oggetti istanziati riferiti a classi che stanno in tale package).
    Questo significa che non ho il package? Dove lo trovo? Come faccio a installarlo e dove lo metto?

    Oppure ho visto che si può utilizzare la libreria JDOM,allora proverò a scaricarla. Un articolo che ho letto mi dice semplicemente di scaricare tale libreria e di usare un file.jar per compilare la classe dal comando javac nella classpath, ma la servlet gia la compilo con un .jar nel comando javac, come faccio a dirgli entrambi i jar quando compilo? Devo metterli entrambi nella stessa cartella e settare una classpath di windows che punti li così verranno sempre presi in considerazione? Oppure posso indicarne più fi uno di percorso nel comando javac?

  5. #15
    Come consiglio, quando devi chiedere cose nuove, non aggiungerle in fondo ad una discussione già esistente, ma apri una nuova discussione.

    Comunque, per il package javax.xml, puoi scaricare Apache Xerces; altrimenti puoi scaricare JDOM come hai detto tu.
    I jar nel classpath devono essere separati da punto e virgola se sei su Windows e da due punti se sei su Unix.

    Ciao,

  6. #16
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    GRAZIE DEL CONSIGLIO.
    Ho provato a scaricare il jdom
    ho zippato tutto in questa cartella:
    c:/programmi/java/librerie_aggiunte/jdom-1.0/qui ci sono diverse cose tra cui una cartella build contenete il jdom.jar

    Quello che ho fatto è stato settare la classpath di window direttamente dal pannello di controllo (e poi ho riaviato window prima di proseguire). Lo settata indicando il percorso di dove si trova il file jdom.jar.
    Poi all'inizio della servlet tra i vari import metto anche questo:
    import org.jdom.* MA MI DICE CHE IL PACKAGE ORG NON ESISTE.
    iO NON SONO BRAVO A INSTALLARE NUOVI PACKAGE PUOI DARMI UNA MANO?

  7. #17
    Non c'è da installare niente, semplicemente devi verificare che il classpath sia corretto. Se per esempio hai due jar, C:\libreria1\lib1.jar e C:\libreria2\lib2.jar, il classpath sarà fatto così:

    codice:
    CLASSPATH=C:\libreria1\lib1.jar;C:\libreria2\lib2.jar
    Se il classpath è impostato correttamente e ancora non compila, verifica il tool che stai utilizzando quale classpath ha impostato.

    Ciao,

  8. #18
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    Ok ho scaricato jdom e ho impostato la classpath nel modo giusto percho mi compila sia la servlet (quindi ho messo l'indicazione giusta del.jar per le servlet) e non mi da più errore su import org.jdom.*; (quindi ho impostato nella classpath in modo corretto anche il percorso del jdom.jar).
    Ora nella mia servlet scrivo questo per caricare il file xml in memoria, ma mi dice che non riconosce il SAXBuilder, devo importare qualche altro package o sottopackage di org.jdom?
    //INSTANZIO GLI OGGETTI CHE MI SERVONO PER CARICARE IL FILE XML IN MEMORIA E LO CARICO - USO LA LIBRERIA JDOM
    Document documento = null;
    SAXBuilder saxBuilder = new SAXBuilder();
    try{
    documento = saxBuilder.build(new File("//xml/registrati.xml"));
    }
    catch (JDOMException ex){
    System.err.println(ex);
    }
    catch (IOException ex){
    System.err.println(ex);
    }

  9. #19
    SAXBuilder fa parte del package org.jdom.input, perciò devi importare anche org.jdom.input.*.

    Ciao,

  10. #20
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    OK RISOLTO ANCORA
    NON SO COME RINGRAZIARTI SO DI ESSERE UNA PALLA MA è COSì DI SOLITO QUANDO SI PARTE CON I NUOVI LINGUAGGI

    LA SERVLET SEMBRA ESSERE GIUSTA NEL CODICE MA TOMCAT DA ERRORE COSì:

    description :The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    java.lang.NullPointerException
    login.doPost(login.java:35)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:803)

    COSA SIGNIFICA?

    IL CODICE COMPLETO DELLA SERVLET è QUESTO

    import java.util.*;
    import java.text.*;
    import org.jdom.*;
    import org.jdom.input.SAXBuilder;
    import java.util.Iterator;
    import java.util.List;

    public class login extends HttpServlet{
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
    response.setContentType("text/html");
    PrintWriter responseOutput = response.getWriter();
    StringBuffer buf = new StringBuffer();
    String controllo = new String("ko");

    //RECUPERO LE INFORMAZIONI INVIATE DAL FORM
    String password_inviata = request.getParameter("password");
    String username_inviato = request.getParameter("username");
    buf.append("<html><head></head><body>");
    //INSTANZIO GLI OGGETTI CHE MI SERVONO PER CARICARE IL FILE XML IN MEMORIA E LO CARICO E LO ANALIZZO - USO LA LIBRERIA JDOM
    Document documento = null;
    SAXBuilder saxBuilder = new SAXBuilder();
    try{
    documento = saxBuilder.build(new File("../../xml/registrati.xml"));
    }
    catch (JDOMException ex){
    System.err.println(ex);
    }
    catch (IOException ex){
    System.err.println(ex);
    }
    //ANALIZZO LA STRUTTURA XML PER TROVARE SE ESISTE IL LOGIN INSERITO, SE NON ESISTE O SE è QUELLO DELL'AMMINISTRATORE
    Element elementoRadice = documento.getRootElement();
    List lista_registrati = elementoRadice.getChildren();
    // ottengo un iteratore alla lista chiamando il metodo iterator() della Collection
    Iterator iteratore_registrati = lista_registrati.iterator();
    // si cicla finche' hasNext() restituisce true,
    // cioe' se ci sono ancora elementi da scorrere
    while (iteratore_registrati.hasNext()){

    buf.append("sdcvgbh");

    // ottengo l'elemento corrente chiamando next() sull'iteratore
    Element registrato = (Element)iteratore_registrati.next();
    String username = (String)registrato.getAttributeValue("username");
    String password = (String)registrato.getAttributeValue("password");
    if ((username_inviato.equals(username)) && (password_inviata.equals(password))){
    String ruolo = (String)registrato.getAttributeValue("ruolo");
    controllo = "ok";
    if (ruolo.equals("admin")){
    controllo = "admin";
    }
    break;
    }
    }

    if (controllo.equals("ok")){
    buf.append("si carica l'iframe del utente generico");
    }
    if (controllo.equals("ko")){
    buf.append("Login errato reinserire i dati");
    }
    if (controllo.equals("admin")){
    buf.append("si carica l'iframe del amministratore");
    }
    buf.append("</body></html>");
    responseOutput.println(buf.toString());
    responseOutput.close();
    }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.