Qual é a diferença entre JSF, Servlet e JSP no desenvolvimento web Java?
Olá a todos! Sou um desenvolvedor Java iniciante, aprendendo a criar aplicações web. Estou completamente confuso sobre três tecnologias: JSF, Servlet e JSP. Parece que todas são usadas para web, mas como entender qual escolher?
Tentei escrever um formulário de login simples. Comecei com um servlet:
```java
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String user = request.getParameter("username");
String pass = request.getParameter("password");
// verificação...
request.setAttribute("message", "Olá, " + user);
request.getRequestDispatcher("welcome.jsp").forward(request, response);
}
}
```
Depois vi que é possível usar código Java diretamente no JSP através de scriptlets. E então me disseram que JSF é um "framework de componentes" e é melhor. Mas quando tentei JSF, a lógica era completamente diferente: f