Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Servlet e parametri

  1. #1

    Servlet e parametri

    Salve,
    Il mio problema è questo:
    sto facendo un'applicazione con più servlet.
    In alcune di queste, dentro dei form, l'utente inserisce dei dati,
    tipo nome, cognome...
    Ora, quando si clicca il CERCA, si viene indirizzati verso un'altra servlet che
    dovrebbe prendere i dati inseriti, immagino con getParameter(), elaborarli
    tramite interagendo con un DB, e dare il risultato.
    Come avviene il tutto?

    Dimentcavo, uso eclipse e il server jetty .

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    dal form gli passi un "label" nel parametro name del campo di input ad esempio

    codice:
    <form action="TuaServlet">
    </form name="tuoLabel">
    nella servlet prendi il parametro memorizzato nella servlet
    ad esempio

    codice:
     
    String label = reuqest.getParameter("tuoLabel");
    e poi passi la variabile al layer di persistenza, non so che architettura utilizzi se gli ejb hibernate o richiami direttamente la connessione al db dalla servlet

    poi ti riprendi il valore che ti restituisce la query al db

    codice:
    request.setAttribute("tuoLabelRisposta", varRisp);
    e forwardi la risposta alla pagina che deve visualizzare

    codice:
    request.getRequestDispatcher("/tuapaginadiRisposta.jsp").forward(request, response);
    spero di esserti stato di aiuto

  3. #3
    Ti faccio vedere (non badare alla forma, ma sono in fase di prova ancora)

    Servlet che mi permette di inserire i dati:
    codice:
    public class CercaPersona extends HttpServlet {
    	
    	private static final long serialVersionUID = 1L;
    	
    	public void doGet(HttpServletRequest req, HttpServletResponse res)
    			throws ServletException, IOException {
    		ServletOutputStream out = res.getOutputStream();
    		
    		res.setContentType("text/html");
    		out.println("<HEAD><TITLE> Localizzazione_Persona </TITLE></HEAD><BODY>");
    		out.println("<h1> CNR_Localizzazione_persona </h1>");
    		out.println("<form> Cognome: <input type=text name=cognome />");
    		out.println("
    ");
    		out.println("
    ");
    		out.println("<form> Nome: <input type=text name=nome />
    ");
    		out.println("<form name=input action=cerca.jsp method=post><input type=submit value=Cerca /></form>");
    		out.println("</BODY>");
    		out.close();
    		
    	}
    Servlet nella quale vorrei trattarli (ora non interagisco con il DB)
    codice:
    public class Cerca extends HttpServlet{
    	
    	private static final long serialVersionUID = 1L;
    
    	public void doPost(HttpServletRequest req, HttpServletResponse res)
    	throws ServletException, IOException {
    		
    		ServletOutputStream out = res.getOutputStream();
    		res.setContentType("text/html");
    		String cognome = req.getParameter("Cognome");
    		String nome = req.getParameter("Nome");
    		
    		out.println("<HEAD><TITLE> Localizzazione </TITLE></HEAD><BODY>");
    		out.println("<h1> CNR_Localizzazione_risultato </h1>");
    		out.println("Vuoi cercare: "+cognome+", "+nome);
    		out.println("</BODY>");
    	}

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    scusami la domanda devi obbligatoriamente inserire del codice html nella servlet?
    non puoi usare una pagina jsp o semplicemente una pagina html?
    comunque dovrebbe essere (prendilo un po con le pinze testalo)

    codice:
     
    public class CercaPersona extends HttpServlet {
    	
    	private static final long serialVersionUID = 1L;
    	
    	public void doGet(HttpServletRequest req, HttpServletResponse res)
    			throws ServletException, IOException {
    		ServletOutputStream out = res.getOutputStream();
    		
    		res.setContentType("text/html");
    		out.println("<HEAD><TITLE> Localizzazione_Persona </TITLE></HEAD><BODY>");
    		out.println("<h1> CNR_Localizzazione_persona </h1>");
    		out.println("<form action="Cerca"> Cognome: <input type=text name=cognome />");
    		out.println("
    ");
    		out.println("
    ");
    		out.println("<form action="Cerca"> Nome: <input type=text name=nome />
    ");
    		out.println("<form name=input  action="Cerca" method=post><input type=submit value=Cerca /></form>");
    		out.println("</BODY>");
    		out.close();
    		
    	}
    nella servlet Cerca fai:

    codice:
     
    public class Cerca extends HttpServlet{
    	
    	private static final long serialVersionUID = 1L;
    
    	public void doPost(HttpServletRequest req, HttpServletResponse res)
    	throws ServletException, IOException {
    		
    		ServletOutputStream out = res.getOutputStream();
    		res.setContentType("text/html");
    		String cognome = request.getParameter("Cognome");
    		String nome = request.getParameter("Nome");
    		//... chiamata al db
                   //.... Ritorno dati
                  request.setAttribute("Nome", Var)
                  request.setAttribute("Cognome", Var)  
    
                request.getRequestDispatcher("/Servlet3").forward(request, response); //Qua ti ricrei la pagina html ed inserisci i dati che ti ritornano dal db
    
    
    	}

  5. #5
    Nella classe Cerca non mi stampa il nome che inserisco, mi da null,
    evidentemente non li leggo bene.
    In base al codice che ti ho mandato, come faccio a far comparire la scritta
    sulla pagina?
    Sarebbe già un bel passo avanti, almeno mi convinco che qualcosa va,
    per il DB ci penso dopo.

    Per la domanda sul codice html.... me lo sto chiedendo anche io, ma devo
    smettere di chiedermelo, ordini!

    Sei gentilissimo

  6. #6
    Scusa, ma avevo fatto un stupido errore di maiuscole.

    Ora provo ad interagire con il DB.

    Mille grazie per ora, sei stato prezioso!!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    Di nulla.
    L'unico consiglio che posso darti in maniera molto generica è quello di suddividere il + possibile le cose nelle varie servlet in maniera da poter risolvere eventuali problematiche senza impazzire a cercare il metodo nella servlet (poi questo è il mio modo di lavorare e mi trovo bene) nel senso:

    Servlet1 (Stampa la pagina per il login)
    chiama
    Servlet2 (passa i parametri)
    chiama
    Servlet3(si connette con il DB)
    chiama
    Servlet2(passa i parametri)
    chiama
    Servlet4(Stampa i parametri di ritorno dal db)

    In una architettura meglio gestita
    Jsp 1
    servlet
    dao
    servlet
    Jsp2

    Spero di esserti stato utile.
    un saluto e

  8. #8
    Molto utile, è probabile che ti ricontatterò

    Il primo modo di procedere è quello che vorrei seguire,
    dati i vincoli imposti e il poco tempo a disposizione.


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.