Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77

    Non riesco a passare parametri da un link ad una servlet

    Scusate non so quale sia il problema:
    ho questo html
    codice:
    <HTML>
    	<HEAD>
    		<TITLE>
    			PAGINA DELL'AMMINISTRATORE
    		</TITLE>
    	</HEAD>
    	<BODY BGCOLOR="#99CC66">
    		<DIV>
    			Inserisci ristorante
    
    
    			Modifica ristorante
    
    
    			Elimina ristorante
    
    
    		</DIV>
    	</BODY>
    </HTML>
    POI HO QUESTA SERVLET lista_city

    codice:
    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.Format;
    import org.jdom.output.XMLOutputter;
    import java.util.Iterator;
    import java.util.List;
    import com.oreilly.servlet.*;
    import java.util.Enumeration;
    public class lista_city extends HttpServlet{
    	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
    		response.setContentType("text/html");
    		PrintWriter responseOutput = response.getWriter();		
    		StringBuffer buf = new StringBuffer();
    		String elimina = request.getParameter("elimina");
    		String cities[] = null;
    		buf.append("<html><head><LINK REL='stylesheet' TYPE='text/css' HREF='../css/index.css' MEDIA='all' /></head><body>");
    		buf.append("<DIV ID='lista_città' NAME='lista_città'>");		
    		File file = new File("../webapps/restaurants/xml/ristoranti");
    		if (file.exists()){
    			cities = file.list();
    		}
    		buf.append("<DIV ID = 'titolo_lista_città'>Ecco la lista delle città, clicca sulla città dove si trova il ristorante su cui desideri operare</DIV>");
    		for(int i = 0; i < cities.length; i++){
    			String city = new String(cities[i]);
    			buf.append("<A HREF='lista_ristoranti?city="+city+"&elimina="+elimina+"'>"+city+"
    
    ");
    		}
    		buf.append("</DIV>");
    		responseOutput.println(buf.toString());
    		responseOutput.close();	
    	}
    }
    Così come sono fatte dovrebbe succedere che il link nell'html riesca a mandare il paramentro elimina con valore 'elimina' alla servlet.
    ma succede che la servlet contiene un altro link che rispedisce sempre il valore del parametro elimina come nuovo parametro che si chiama sempre elimina ma io vedo che nella barra infondo ad internet explorer il parametro elimina (il secondo per la precisone, quello nella servlet) compare così: elimina= e poi non c'è niente, ma nella servlet non va bene come lo ho recuperato con getParameter????

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    Ho scoperto prima di tutto di aver sbagliato con i confronti con il null, nel senso che getParameter ritorna una stringa e ritorna la stringa "null" se il parametro non è stato inviato e non u n oggetto null, quindi al posto di elimina != null devo scrivere negli if !elimina.equals("null")

    MA NONOSTANTE QUESTO IL PROBLEMA NON SI RISOLVE, ANCHE PERCHè SONO DUE COSE SLEGATE PENSO....INSOMMA CONTINUA AD ESSERCI NELLA BARRA SOTTO DEL BROWSER elimina=....niente

  3. #3
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    Originariamente inviato da luke1979
    Ho scoperto prima di tutto di aver sbagliato con i confronti con il null, nel senso che getParameter ritorna una stringa e ritorna la stringa "null" se il parametro non è stato inviato e non u n oggetto null, quindi al posto di elimina != null devo scrivere negli if !elimina.equals("null")
    no no, ritorna proprio NULL se il parametro che cerchi di leggere non esiste, nessuna stringa.

    Poi prova a sostituire, nel primo spezzone di codice
    con
    che con la storia di "elimina='elimina'" non si capisce veramente niente...

    invece nella seconda parte, aggiungi sotto
    codice:
    String elimina = request.getParameter("elimina");
    la riga
    codice:
    System.out.println("-->" + elimina);
    e vediamo cosa ti stampa in console....

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Ciao, e' un problema di apici.
    codice:
    <A HREF='lista_ristoranti?city="+city+"&elimina="+elimina+"'>
    essendo elimina='elimina' il link diventa
    codice:
    <A HREF='lista_ristoranti?city=nomeCitta&elimina='elimina'>
    dove la parte in grassetto rappresenta l'url a cui punta il link.
    Le soluzioni sono:
    1)evitare apici e doppi apici nelle url visto che non servono e solitamente non si usano (il valore del parametro e' tutto cio' che sta tra = e l'eventuale successivo &). In questo caso devi modificare la pagina html
    2)se per qualche motivo non puoi rinunciare all'apice metti i doppi apici nel html creato dalla servlet al posto dei singoli apici. La riga in questione diventa
    codice:
    buf.append("<A HREF=\"lista_ristoranti?city="+city+"&elimina="+elimina+"\">"+city+"
    
    ");

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    ok ragazzi era tutto li il problema, grazie mille....

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    6
    Ciao, ho lo stesso problema, in pratica ho una jsp che crea dinamicamente un serie di link in base a dei dati prelevati da db, ra ogni link dovrebbe linkare una servlet passando un valore diverso ma non ci riesco....ecco il codice:

    CODICE DELLA JSP

    <div id="center" align="center"
    style="width: 100%; top: auto; font-family: monospace; text-align: center;">
    <table width="60%" height="236px" border="1" align="center"
    style="border-color: gold; border-collapse: collapse; margin: 25px;">
    <tr align="center">
    <td colspan="3"
    style="width: 60%; background-color: gold; font-family: arial; font-weight: bolder; ">
    <font color="red">Ricerca per Categoria</font></td>
    </tr>
    <tr>
    <%
    int l = visCategorie.size();
    %>
    <%
    for (int i = 0; i < visCategorie.size(); i++) {
    if ((l % 3) == 0) {
    %>
    </tr>
    <tr>
    <%
    }
    Categoria c = (Categoria) visCategorie.get(i);
    %>
    <td id="<%= "categoria"+i%>" style="border: 0; font-family: arial; font-size: 15px; margin: 10px;" align="left"><%=c.getNome()%></td>
    <%
    l--;
    }
    %>
    </tr>
    </table>
    </div>

    servlet/VisualizzaCategoria questo è il percorso della servlet (la servlet è contenuta nello stesso packge del progetto ma in un sotto-package)

    quando richiamo l'applicazione dal web mi da l'errore : HTTP Status 404


    come posso fare??
    GRAZIE

  7. #7
    secondo me dovresti controllare bene "l'indirizzo" della tua servlet
    l'errore 404 indica che il server non ha trovato l'url richiesto
    sei sicuro che la tua web-app si chiami "servlet"?
    la jsp la riesci a vedere?se si cosa c'è scritto nella barra dell'indirizzo del tuo browser?

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    6
    Era un problema di path..risolto!!!
    GRAZIE

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 © 2025 vBulletin Solutions, Inc. All rights reserved.