JSP vs Servlets
Un Servlet è un componente software lato server scritto in Java e viene eseguito in un ambiente container compatibile noto come container Servelt (come Apache Tomcat). I servlet vengono utilizzati principalmente nell'implementazione di applicazioni Web che generano pagine Web dinamiche. Possono tuttavia generare qualsiasi altro tipo di contenuto come XML, testo, immagini, clip audio, PDF, file Excel in modo programmatico.
Un servlet scritto per generare del codice HTML potrebbe assomigliare a questo:
MyServlet di classe pubblica estende HttpServlet {
protected void doGet(Richiesta HTTPServletRequest, risposta HttpServletResponse) genera ServletException, IOException {
PrintWriter w=response.getWriter();
w.write(“”);
w.write(“”);
Data d=nuova data();
w.write(d.toString());
w.write(“”);
w.write(“”);
}
}
Il codice sopra contiene una combinazione di codice sorgente HTML e Java. Tale non è molto leggibile e manutenibile. JSP che sta per JavaServer Pages fornisce un' alternativa migliore. Ad esempio, quello che segue è un frammento di codice JSP che risulta in un output identico:
Gli autori di pagine Web trovano JSP più facile da scrivere e mantenere. I file JSP vengono tuttavia tradotti in servlet da un contenitore servlet nel momento in cui si accede per la prima volta ai file JSP. Tuttavia, gli scrittori di logica aziendale ritengono che sia più facile lavorare con i servlet.
Una richiesta ricevuta da un'applicazione Web dovrebbe attivare l'esecuzione di alcune logiche di business e quindi generare una pagina Web risultante come risposta. Nelle moderne applicazioni Web, il controllo dell'intero ciclo di elaborazione delle richieste è gestito principalmente dai servlet. Come ultima fase dell'elaborazione di una richiesta, tale servlet generalmente affida la responsabilità di generare l'HTML dinamico a un JSP.