Dúvida em Servlet

Gente, desculpem-me de verdade se já existe o tópico explicando o que eu vou perguntar… mas queria saber a diferença entre JSP e Servlets, pois lí que um Servlet é apenas uma página criada na primeira vez que você compila uma classe JSP, só que eu vejo as pessoas aqui falando em criar Servlets e fiquei meio perdido. Então gostaria de uma força para tirar essa dúvida… Grato desde já !!!

Abraços :wink:

E ai tudo bem…

Seguinte a diferença é essa:
Um jsp é como se fosse umapágina em html que contem codigo java dentro. Esta pagina jsp é compilada na primeira vez que ela é visualizada. Exemplo:

pagina.jsp:

<html>
<body>
<%  Hello Jsp %>
</body>
</html>

Deu pra entender… Qk coisa posta ai … Abraço…

Já um servlet é um classe java que fica no servidor e tem um codigo html

pagina.java


package br.exemplo.servlet;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletExemplo extends HttpServlet
{
	/**
	 * Comment for <code>serialVersionUID</code>
	 */
	private static final long serialVersionUID = 1L;
	public void doGet(HttpServletRequest req, HttpServletResponse res) 
	throws IOException, ServletException	{
		 String olaMundo = "OLA MUNDO no SERVLET";
		 PrintWriter out = res.getWriter();
		 out.println("<html>");		 out.println("<head>");
		 out.println("<title>" + olaMundo + "</title>"); out.println("</head>");
		 out.println("<body bgcolor=\"yellow\" >");
		 out.println("<h1>" + olaMundo + "</h1>");
		 out.println("</body>");		 out.println("</html>");
		
	}
	public void doPost(HttpServletRequest req, HttpServletResponse res) 
	throws IOException, ServletException{
		doGet(req, res);
	}
}

No final das contas JSP e Servlet é a mesma coisa… só que são feitos de formas diferentes…

JSP, você cria uma pagina com tags (geralmente HTML) com codigo Java dentro, isso tudo (tags + Java) é compilado na primeira vez que a pagina é acessada, o resultado dessa compilação é um Servlet.

Você tambem pode criar um Servlet manualmente, simplesmente criando uma classe que implemente a interface javax.servlet.Servlet.

JSP geralmente é usado para desenvolver interface grafica, porque é bem mais facil fazer isso com JSP.

Já Servlet geralmente é usado para realizar regra de negocio (ou controlar a execução dessa regra em outras classes).

No no fim das contas dentro do servidor, fica tudo a mesma coisa.