Por que usar JSP em vez de servlets?[fechado]
https://softwareengineering.stackexchange.com/questions/203357
-
29-09-2020 - |
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.
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>");
}
}