Olá, ahh eu li em algum lugar que em sistemas WEB, o mais indicado é fazer a parte "visual" em jsp e a parte "sistema (programação)" em servlets, pra não confundir as duas coisas, para manutenção (tanto do jsp quanto da programação), etc...
Num sistama, se eu NÃO fizesse com servlet, ficaria desse jeito:
<%
String mensagem = "";
if(request.getParameter("isset")!=null){
/*
conexao com banco
pesquisa no banco a senha pelo login
String senha = request.getParameter("senha");
condição: if(!senha.equals(resultado da pesquisa no banco)){
mensagem = "Login invalido";
}
else{
response.sendRedirect("home.jsp");
}
*/
}
%>
<html>
<head>
<title>Index</title>
</head>
<body>
<center>
<form action="index.jsp" method="post">
<input type="hidden" name="isset" value="ok">
Login: <input type="text" name="login"><br><br>
Password: <input type="password" name="password"><br><br>
<input type="submit" value=" Login ">
</form><br><br>
<% out.println(mensagem); %>
</center>
</body>
</html>
***reparem que depois do botão "LOGIN" aparece o atributo MENSAGEM. Como ele é vazio na primeira vez, não aparece nada, mas se a senha estiver errada, ele aparece como LOGIN INVALIDO.
Agora, como eu faço isso numa servlet? Eu não consigo passar um atributo para a página jsp pra exibição (login invalido por exemplo).
Servlet:
package br.com.teste.Servlet;
import java.io.IOException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class Valida extends HttpServlet {
protected void service (HttpServletRequest request, HttpServletResponse response)
throws IOException{
String usuario = request.getParameter("usuario");
String senha = request.getParameter("senha");
/*
RequestDispatcher rd = request.getRequestDispatcher("home.jsp");
conexao com banco
pesquisa no banco a senha pelo login
condição: if(!senha.equals(resultado da pesquisa no banco)){
AQUI, como eu passo a string "login invalido" para a página jsp ?
}
else{
//redireciona para home.jsp
try {
rd.forward(request,response);
}
catch (ServletException e) {
e.printStackTrace();
}
}
*/
}
}
