Perché utilizzare JSP invece di servlet? [chiuso]

3

(Riscritto per la riapertura:)

Quali sono i vantaggi relativi dei servlet su JSP o viceversa?

Potrebbe essere preferibile JSP perché è facile inserire il codice all'interno di JSP o Servlet perché con esso il codice può essere separato dalla vista? Ci sono altre considerazioni?

Qualsiasi informazione in merito sarà estremamente utile.

    
posta JNL 01.07.2013 - 20:24
fonte

1 risposta

4

Il vantaggio principale di JSP è che è più facile codificarlo e leggere quando stai creando un front-end HTML dinamico.

Questo perché scrivi principalmente HTML e in alcuni casi incorpora il codice Java.

In una servlet dovresti invertire la logica, cioè scrivere codice java e stampare HTML.

Questo perché nel livello di presentazione la maggior parte del codice è HTML / JS.

D'altro canto, la logica aziendale è in gran parte codice Java, quindi in tal caso è meglio usare Servlet o POJO (semplici, vecchi oggetti Java).

EDIT: non c'è differenza di prestazioni dal momento che il codice JSP, in quanto tale, non viene mai eseguito, viene convertito in servlet. Solo la prima volta che esegui il JSP dopo che è stato modificato, è necessario un po 'più di tempo perché venga convertito in servlet.

Confronta un semplice programma "Hello World" in JSP vs servlet:

JSP:

<html>
        <head><title>Hello World JSP Page.</title></head>
        <body>
                <font size="10"><%="Hello World!" %></font>
        </body>
</html>

Servlet

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

    public class HelloWorld extends HttpServlet{ 
      public void doGet(HttpServletRequest request, 
      HttpServletResponse response)
      throws ServletException,IOException{
      response.setContentType("text/html");
      PrintWriter pw = response.getWriter();
      pw.println("<html>");
      pw.println("<head><title>Hello World</title></title>");
      pw.println("<body>");
      pw.println("<h1>Hello World</h1>");
      pw.println("</body></html>");
      }
    }
    
risposta data 01.07.2013 - 20:46
fonte