Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Servlet e JSP

  1. #1

    Servlet e JSP

    Salve. Conosco molto poco il mondo dell'enterprise edition, che studierò approfonditamente tra non molto. Mi sorge un dubbio: quando conviene utilizzare un servlet e quando una JSP?? Scrivendo un servlet si perderebbe molto tempo rispetto ad una JSP...

  2. #2
    Mah, io direi che la JSP la usi più che altro per occuparti della parte grafica della pagina, la Vista nell'archietettura MVC. La Servlet per la parte applicativa, la logica di business, quindi il Controller nell'MVC.

  3. #3
    Originariamente inviato da scrittore80
    Mah, io direi che la JSP la usi più che altro per occuparti della parte grafica della pagina, la Vista nell'archietettura MVC. La Servlet per la parte applicativa, la logica di business, quindi il Controller nell'MVC.
    Ok ma io vorrei sapere il motivo... perchè?

    Potrei semplicemente creare una semplice JSP senza specificare alcun tag html e scrivere tutto il codice per la parte applicativa:

    codice:
    <%
    ...
    %>
    Invece di scrivere questo casino di robe:

    codice:
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class WelcomeServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    ...
    }
    }
    Non capisco perchè dovrei utilizzare un servlet al posto del JSP... magari un servlet è impercettibilmente superiore nell'ambito delle prestazioni ma non mi sembra sia giustificabile.

  4. #4
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    La servlet è un'elaborazione lato server e quindi tramite la jsp può semplicemente fornire un risultato grafico al client.
    Mentre se tu mandi tutto ad eseguire al client nelle tag <% %> ovviamente accade che il file trasferito è più grande ( occupazione a mio giudizio inutile di banda ) e successivamente tutta l'elaborazione avviene a lato cliente....Prova a pensare se quel poveretto ha uno scassone di Pc...nessuno verrebbe più a visitare il tuo sito internet....Anzi....se recupera la tua e-mail inizia ad insultarti...in più se è un lavoro commissionato...Non vedi dinero!!!
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  5. #5
    Originariamente inviato da @DI3GO@
    La servlet è un'elaborazione lato server e quindi tramite la jsp può semplicemente fornire un risultato grafico al client.
    Mentre se tu mandi tutto ad eseguire al client nelle tag <% %> ovviamente accade che il file trasferito è più grande ( occupazione a mio giudizio inutile di banda ) e successivamente tutta l'elaborazione avviene a lato cliente....Prova a pensare se quel poveretto ha uno scassone di Pc...nessuno verrebbe più a visitare il tuo sito internet....Anzi....se recupera la tua e-mail inizia ad insultarti...in più se è un lavoro commissionato...Non vedi dinero!!!
    Continuo a non capire, che differenza c'è? Sia JSP che servlet vengono elaborati lato server e spediti al client.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    41
    E' una questione di architettura.
    Nelle jsp scrivi il livello di presentazone.
    In una servlet scrivi la logica business. Per tenere logicamente distinte le parti di una applicazione. Di solito comunque si usano jsp per il livello di presentazione e pojo per la parte bisiness a meno che non ci siano delle esigenze particolari.

  7. #7
    Originariamente inviato da Cl4Ba
    E' una questione di architettura.
    Nelle jsp scrivi il livello di presentazone.
    In una servlet scrivi la logica business. Per tenere logicamente distinte le parti di una applicazione. Di solito comunque si usano jsp per il livello di presentazione e pojo per la parte bisiness a meno che non ci siano delle esigenze particolari.
    Ma nulla mi impedisce di scrivere la logica di business in una JSP, quindi perchè utilizzare servlet?

  8. #8
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Perchè è stato creato il sistema MVC????
    Per evitare di dover modificare inutilmente una pagina jsp, oppure di scrivere in ogni pagina jsp un controllo magari comune a 100 jsp che hai creato...sai che P***E!

    La servlet come detto da Cl4Ba è parte del controlle del paradigma MVC, ovvero il Controller, mentre una jsp alla VIEW....
    Ovvio che nessuno ti obbliga a scrivere le due cose separate, ma si tratta poi di praticità nel caso in cui tu dei scrivere o modificare solamente la parte di controllo o solamente la parte di grafica.
    In questo modo per modifiche successive non devi analizzarti tutta una jsp per poi capire cosa devi modificarla e vedere se puoi modificarla.....

    Esattamente come nascono tutte le varie tecnologie, pattern e soluzioni generiche....tutto per il migliorare la gestione ed eventuali modifiche alle implementazioni grafiche....spero di esser stato più chiaro stavolta....altrimenti medita su quello che ti ho detto prima

    ..Non vedi dinero!!!
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  9. #9
    Originariamente inviato da @DI3GO@
    La servlet è un'elaborazione lato server e quindi tramite la jsp può semplicemente fornire un risultato grafico al client.
    Mentre se tu mandi tutto ad eseguire al client nelle tag <% %> ovviamente accade che il file trasferito è più grande ( occupazione a mio giudizio inutile di banda ) e successivamente tutta l'elaborazione avviene a lato cliente....Prova a pensare se quel poveretto ha uno scassone di Pc...nessuno verrebbe più a visitare il tuo sito internet....Anzi....se recupera la tua e-mail inizia ad insultarti...in più se è un lavoro commissionato...Non vedi dinero!!!
    Questo è errato. Al client arriva sempre e solo puro codice HTML. La pagina jsp viene tradotta cmq in una servlet dal container (server) che genera il corrispondente codice html da spedire al client.

    Come già è stato detto le jsp dovrebbero essere utilizzate solo per la presentazione dei dati (vista) e le servlet per l'elaborazione dati (controller). E' una questione di praticità e di manutenzione e leggibilità del codice per chi programma.
    Al mio segnale... scatenate l'inferno!

  10. #10
    Forse non mi sono espresso bene, o forse non riesco a capire data la mia ignoranza sull'argomento. Voglio però farvi un semplice esempio:

    Ho un servlet che si collega ad un database per inserire dei dati, e questo dovrebbe far parte della logica di business giusto? Il servlet dopo aver inserito i dati nel database, invia all'utente una semplice pagina html che avvisa l'utente che i suoi dati sono stati salvati e viene poi reindirizzato alla pagina principale index.jsp tramite il tag meta refresh.

    codice:
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.DriverManager;
    import java.sql.Connection;
    import java.sql.Statement;
    
    public class Insert extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	
    	protected void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
    	{
    		response.setContentType("text/html");
    		PrintWriter out = response.getWriter();
    		
    		String name = request.getParameter("name");
    		String message = request.getParameter("message");
    		String email = request.getParameter("email");
    		
    		out.print("<html><head><meta http-equiv = \"refresh\" content = \"3; url=index.jsp\"></head><body>");
    		
    		try
    		{
    			Class.forName ("com.mysql.jdbc.Driver");
    			
    			Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "");
    			Statement statement = connection.createStatement();
    			
    			statement.executeUpdate("INSERT INTO guestbook (name, message, email) VALUES ('" + name + "', '" + message + "', '" + email + "')");
    			
    			out.print("Your message has been saved!");
    		}
    		catch (Exception exception)
    		{
    			out.print ("Error: " + exception.getMessage());
    		}
    		
    		out.print("</body></html>");
    	}
    }
    Ora vorrei capire, perchè dovrei utilizzare questo servlet invece di questa jsp che mi consente di risparmiare un bel pò di righe di codice?:

    codice:
    <%@page import = "java.sql.*"%>
    <%
    String name = request.getParameter("name");
    String message = request.getParameter("message");
    String email = request.getParameter("email");
    %>
    <html>
    	<head>
    		<meta http-equiv = "refresh" content = "3; url=index.jsp">
    	</head>
    	<body>
    		<%
    		try
    		{
    			Class.forName ("com.mysql.jdbc.Driver");
    			
    			Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "");
    			Statement statement = connection.createStatement();
    			
    			statement.executeUpdate("INSERT INTO guestbook (name, message, email) VALUES ('" + name + "', '" + message + "', '" + email + "')");
    			
    			out.print("Your message has been saved!");
    		}
    		catch (Exception exception)
    		{
    			out.print ("Error: " + exception.getMessage());
    		}
    		%>
    	</body>
    </html>

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.