JSP, Servlet e html

Galera eu to começando a mecher com Web e muitas duvidas estao surgindo o fato de misturar Jsp com servelet e html confundi a minha mente na verdade o que diferencia cada um?

Eu consigo de um servelet mandar uma variavel para um jsp?

Eu consigo criar uma classe java dentro de uma pagina jsp misturada com html?

Alguem tem alguma ideia que possa me ajudar a diferenciar e notar a importancia de cada uma destas linguagens??(Acho que linguagem nao seria o termo mais correto mas tudo bem.)

Obrigado

Cara de uma olhada nessa apostila da Caelum:

Essa apostila é muito boa para iniciantes no ambiente web…

De qualquer forma, nunca utilize código java dentro de seus jsp.
JSP serve apenas para visualização dos dados.
Lógica de negócio e demais código java são implementados dentro dos servlets, que remetem o resultado aos jsps apenas para visualização das informações.
E mesmo para visualização, não utilize scriptlets e sim taglibs, pois seu código ficará muito mais limpo e fácil de enteder.

att,

Entendi, mas assim o que rola uma duvida e no seguinte ponto, eu consigo de uma pagina .jsp enviar informacoes para um servlet que contem a minha logica de negocios, mas o que eu nao entendo e como vou apresentar informacoes em um jsp sendo que nao consigo mandar as informacoes de um servlet para um jsp, isso que nao entendo alguem pode me dar uma clareada?

Por exemplo eu vou capturar as informações do usuario em uma pagina jsp e logo em seguida vou mandar para o servlet que resgata as informações e efetua uma consulta no banco, como eu mando o resultado da busca no banco devolta para o jsp no qual eu havia resgatado as informãções?

Opa, beleza!!Para retornar a pagina jsp:

req.getRequestDisptacher("suaPagina.jsp").forward( req, response );

Mas assim por que e ruim misturar codigo java com html, o ideal seria o .jsp para mostrar e o .java para raciocinar e isso?? mas e quando eu tenho um resultado em um servlet e preciso apresenta-lo? o unico meio e o out.println("<html> <body> teste </body> </html> ");

Exatamente Java serve para montar suas classes de negócio e controladoras, que são o M e C do MVC. que proproe a separação lógica em camadas, de uma olhada com calma na apostila que eu passei acima, que as coisas ficarão mais claras.

Definição: