Pergunta

(Reescrito para reabertura:)

Quais são as vantagens relativas dos Servlets sobre o JSP ou vice-versa?

O JSP pode ser preferido porque é fácil colocar código dentro do JSP, ou Servlets porque com eles o código pode ser separado da visualização?Existem outras considerações?

Qualquer informação sobre isso será imensamente útil.

Foi útil?

Solução

A principal vantagem do JSP é que ele é mais fácil de codificar e ler quando você está criando um front-end HTML dinâmico.

Isso ocorre porque você escreve principalmente HTML e, em alguns lugares, incorpora código Java.

Em um servlet você teria que inverter a lógica, ou seja, escrever código java e imprimir HTML.

Isso ocorre porque na camada de apresentação a maior parte do código é HTML/JS.

Por outro lado, a lógica de negócios é, em sua maior parte, código Java, portanto, nesse caso, é melhor usar Servlets ou POJOs (objetos Java simples e antigos).

EDITAR:não há diferença de desempenho, pois o código JSP, como tal, nunca é executado, é convertido em um servlet.Somente na primeira vez que você executa o JSP depois de alterado, ele demora um pouco mais para ser executado porque precisa ser convertido para servlet.

Compare um programa simples "Hello World" em JSP versus servlet:

JSP:

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

Servlets

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>");
      }
    }
Licenciado em: CC-BY-SA com atribuição
scroll top