Você está na página 1de 17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

Buscar

favorito(6)

marcarcomolido

tirardvidas

JavaServer Pages: Autenticao de login com JSP


e PostgreSQL
Veja nesse artigo como criar um sistema de autenticao de usurio com login e senha utilizando a tecnologia
JSP e o banco de dados PostgreSQL

(1) (0)

JSP(JavaServerPages)ummecanismoqueauxiliaosdesenvolvedoresaimplementarempginasparainternetnoformatoHTMLouem
outrostipos,geradasdeformaautomaticamenteedinmica.NesseartigooambientededesenvolvimentoaserutilizadooNetbeans,pois
nele,almdeexistiroservidorparaaexecuodaaplicao,existemdriversespecficosparaaconectividadededadoscomo,porexemplo,
autilizaoPostgreSQL,queagilizamuitooenvioeatrocadeinformaesentreobancodedadoscriadoeaaplicaoweb.Oobjetivo
desseartigocriarumsistemadeautenticaobsiconoqualseroimplementadasduaspginas:umadeloginesenha(entrada)noestilo
padroeaoutrapginaprincipalcomaopodesairdosistema.
ParamanipularmosobancodedadossernecessriooSGBDmaisutilizadoparaoPostgreSQL,queopgAdmin.Ainstalaodo
mesmomuitosimples,porisso,partindoqueelejestejainstaladoemsuamquinaeaberto,serprecisocriarumnovobancodedados
comonomeAutentica.Paracriar,bastaclicarcomobotodireitoemDatabaseslocalizadonoObjectExploreredepoisemNewDatabase.
AparecerumajaneladeacordocomaFigura1.

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

1/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

Figura1.Telaparacriaodeumnovobancodedados.
BastacolocarnocampoNameAutenticaeclicaremOKquesercriado.
AgorasercriadoumatabelareferenteaUsuarioeemseguidaoscamposesuaspropriedades.
Paraisso,necessrioclicaremclimadobancodedadoscriadoeemseguidaclicarnoconeExecutearbitrarySQLqueries,localizado
abaixodabarrademenusecolocarocdigoparaacriaodatabelaeseuscampos,deacordocomaListagem1.
Listagem1.Comandoparaacriaodatabelausurio,seuscamposepropriedades.

CREATETABLEusuario
(
usu_codigointegerNOTNULL,
usu_nomecharactervarying(100)NOTNULL,
usu_logincharactervarying(6)NOTNULL,
usu_senhacharactervarying(6)NOTNULL,
usu_admbooleanNOTNULL,

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

2/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

CONSTRAINTusuario_pkeyPRIMARYKEY(usu_codigo),
CONSTRAINTusuario_usu_login_keyUNIQUE(usu_login)
)
WITH(
OIDS=FALSE
);
ALTERTABLEusuario
OWNERTOpostgres;

Paraconcluir,bastaclicarnobotoExecuteQuery(umasetaapontadaparaadireita),localizadoabaixodabarrademenus,ousepreferir,
aperteatecladeatalhoF5paraterminardecriaratabela.
Paraadicionaralgunsregistrosnatabela,coloqueoscomandosdescritosnaListagem2.
Listagem2.ComandosemSQLparainseroderegistros.

insertintousuario(usu_codigo,usu_nome,usu_login,usu_senha,usu_adm)values(1,'Administrador','admin','123456',true);
insertintousuario(usu_codigo,usu_nome,usu_login,usu_senha,usu_adm)values(2,'Convidado','guest','guest',false);

Objeto de Acesso a Dados (DAO)


AgorasercriadoumObjetodeAcessoaDados(DAO)queservirparaquefuturamenteaaplicaowebpossaconsumirtodosos
recursospresentesnesseobjetoqueporconsequnciasetransformaremumabiblioteca.
ComoNetbeansinstaladoeaberto,vemArquivoNovoProjetoeselecioneJava.Cliqueemprximoparaaparecerajanelade
configuraes,comomostraaFigura2.

Figura2.ConfiguraodoNomedoProjeto

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

3/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

ColoquenocamponomecomodaoenocampolocalizaodoProjetocoloqueocaminhoD:\.NoesqueadedesmarcaraopoCriar
ClassePrincipal.
EmseguidabastaclicaremFinalizarqueoprojetodaoestarprontoparaserimplementado.
Apropostaagoracriartrspastas:sql,entidadeseao.
DentrodapastasqlsercriadaanovaclasseJavacomonomedeConexo.java.Dentrodapastaentidadessercriadaanovaclasse
JavacomonomedeUsuario.javaedentrodapastadaosercriadaumainterfacecomonomeDAO.javaeduasclassescomosnomes
DAOException.javaeUsuario.java.Paravermoscomoficartodaessacriao,olayoutdeveestarparecidocomaFigura3.

Figura3.LayoutdecomodevemestaraspastaseasclassesJavadentrodoprojetodao.
DentrodaclasseConexao.javaserimplementadoocdigodescritosnaListagem3.
http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

4/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

Listagem3.ClasseresponsvelpelaconexocomobancodedadosAutentica.

packagesql;

importjava.sql.*;
importjava.util.logging.Level;
importjava.util.logging.Logger;

publicfinalclassConexao{

privatestaticfinalStringusuario="postgres";
privatestaticfinalStringsenha="postgres123";
privatestaticfinalStringurl="jdbc:postgresql://127.0.0.1:5432/Autentica";

publicstaticConnectionopen(){
try{
Class.forName("org.postgresql.Driver");
returnDriverManager.getConnection(url,usuario,senha);
}catch(SQLException|ClassNotFoundExceptionex){
Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE,null,ex);
returnnull;
}
}

publicstaticvoidclose(ResultSetrs,Statementst,Connectionconn){
if(rs!=null){
try{
rs.close();
}catch(SQLExceptione){
}
}
if(st!=null){
try{
st.close();
}catch(SQLExceptione){
}
}
if(conn!=null){
try{
conn.close();
}catch(SQLExceptione){
}
}
}

publicstaticvoidclose(Statementst,Connectionconn){
close(null,st,conn);
}

publicstaticvoidclose(Connectionconn){
close(null,null,conn);
}
}

DentrodaclasseUsuario.javaserimplementadaoscdigosdescritonaListagem4.Essaclassetercomoobjetivoseromodeloda
aplicao,comaspropriedadesdoscampos,receberedefinirosdadosdeacordocomseutipo,encapsulandoosetambmcompararo
queestsalvocomosdadosinformadospelousurio.
Listagem4.ClasseModel

packageentidades;

importjava.io.Serializable;
importjava.util.Objects;

publicclassUsuario
implementsSerializable{

privateIntegercodigo;
privateStringnome;

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

5/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

privateStringlogin;
privateStringsenha;
privatebooleanadministrador;

publicUsuario(){
this(null,null,null,null,false);
}

publicUsuario(Integercodigo,Stringnome,Stringlogin,Stringsenha,booleanadministrador){
this.codigo=codigo;
this.nome=nome;
this.login=login;
this.senha=senha;
this.administrador=administrador;
}

publicIntegergetCodigo(){
returncodigo;
}

publicvoidsetCodigo(Integercodigo){
this.codigo=codigo;
}

publicStringgetNome(){
returnnome;
}

publicvoidsetNome(Stringnome){
this.nome=nome;
}

publicStringgetLogin(){
returnlogin;
}

publicvoidsetLogin(Stringlogin){
this.login=login;
}

publicStringgetSenha(){
returnsenha;
}

publicvoidsetSenha(Stringsenha){
this.senha=senha;
}

publicbooleanisAdministrador(){
returnadministrador;
}

publicvoidsetAdministrador(booleanadministrador){
this.administrador=administrador;
}

@Override
publicinthashCode(){
inthash=7;
hash=89*hash+Objects.hashCode(this.codigo);
returnhash;
}

@Override
publicbooleanequals(Objectobj){
if(obj==null){
returnfalse;
}
if(getClass()!=obj.getClass()){
returnfalse;
}
finalUsuarioother=(Usuario)obj;
if(!Objects.equals(this.codigo,other.codigo)){
returnfalse;

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

6/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

}
returntrue;
}
}

DentrodainterfaceDAO.javaserimplementadaoscdigosdescritosnaListagem5.
Listagem5.Interfaceresponsvelporcontermtodospararecuperarasinformaesdediversasmaneiras.

packagedao;

importjava.util.List;

publicinterfaceDAO<T>{
publicTgetSingle(Object...chave);
publicList<T>getList();
publicList<T>getList(inttop);
}

EdentrodaclasseDAOException.javaserimplementadaocdigodescritonaListagem6.
Listagem6.Classeresponsvelporlanarexceesduranteaaplicao,casohajaalgumimprevisto.

packagedao;

publicclassDAOExceptionextendsException{

publicDAOException(Throwablecause){
super(cause);
}

publicDAOException(Stringmessage,Throwablecause){
super(message,cause);
}

publicDAOException(Stringmessage){
super(message);
}

publicDAOException(){
super();
}
}

DentrodaclasseUsuarioDAO.javaserimplementadaoscdigosdescritonaListagem7.Essaclassepossuidiversosmtodosecadaum
responsvelporbuscaroregistrodeumaformadiferente.
Listagem7.ClasseUsusarioDAO

packagedao;

importentidades.Usuario;
importsql.Conexao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.List;

publicclassUsuarioDAO
implementsDAO<Usuario>{

publicUsuariogetSingle(Stringlogin){
Connectionconn=Conexao.open();
PreparedStatementps=null;

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

7/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

ResultSetrs=null;
try{
ps=conn.prepareStatement("selectusu_codigo,usu_nome,usu_login,usu_senha,usu_admfromusuariowhereusu_login=?");
ps.setString(1,login);
rs=ps.executeQuery();
if(rs.next()){

returnnewUsuario(rs.getInt("usu_codigo"),rs.getString("usu_nome"),rs.getString("usu_login"),rs.getString("usu_senha"),rs.getB
}
}catch(SQLExceptionex){
}finally{
Conexao.close(rs,ps,conn);
}
returnnull;
}

@Override
publicUsuariogetSingle(Object...chave){
if(chave[0]instanceofInteger){
Connectionconn=Conexao.open();
PreparedStatementps=null;
ResultSetrs=null;
try{
ps=conn.prepareStatement("selectusu_codigo,usu_nome,usu_login,usu_senha,usu_admfromusuariowhereusu_codigo=?");
ps.setInt(1,(Integer)chave[0]);
rs=ps.executeQuery();
if(rs.next()){

returnnewUsuario(rs.getInt("usu_codigo"),rs.getString("usu_nome"),rs.getString("usu_login"),rs.getString("usu_senha"),rs.
}
}catch(SQLExceptionex){
}finally{
Conexao.close(rs,ps,conn);
}
}
returnnull;
}
@Override
publicList<Usuario>getList(){
returngetList(0);
}

@Override
publicList<Usuario>getList(inttop){
if(top<0){
returnnull;
}
List<Usuario>lista=null;
Connectionconn=Conexao.open();
Statementps=null;
ResultSetrs=null;
try{
ps=conn.createStatement();
rs=ps.executeQuery("select"+(top>0?"top"+top:"")+"usu_codigo,usu_nome,usu_login,usu_senha,usu_admfromusuario");
lista=newArrayList<>();
while(rs.next()){

lista.add(newUsuario(rs.getInt("usu_codigo"),rs.getString("usu_nome"),rs.getString("usu_login"),rs.getString("usu_senha"),rs.g
}
}catch(SQLExceptionex){
}finally{
Conexao.close(rs,ps,conn);
}
returnlista;
}
}

Criando uma Nova Aplicao Web


Agorasercriadaumanovaaplicaoweb.Paraisso,bastairbarrademenus,emArquivoNovoProjeto.SelecioneacategoriaJava
WebeoProjetoAplicaoWeb.DepoiscliqueemPrximoeaparecerumajanelaparadefinironomedoprojetoassimcomofizermos
anteriorente.
http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

8/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

OresultadodaconfiguraodoservidorseromesmoqueoapresentadopelaFigura4.

Figura4.Telaparaescolhadoservidorqueserexecutadooprojeto.
Porpadro,serselecionadooApacheTomcat,maspoderiaestarselecionadooGlassFishServer.AversodoJavaEEqueest
selecionadaaltimadisponvelnositedatecnologia.OcaminhodoContextopodedeixardojeitoquefoidefinidoautomaticamente.Aofinal
cliqueemFinalizarparaqueoesqueletodoprojetosejacriado.

Implementao do Projeto
Antesdecriarmosaspastasdeorganizaoparaoprojeto,adicionaremosoprojetoDAOdesenvolvidoanteriormente.Paraisso,basta
clicarcomobotodireitoemBibliotecaedepoisem:AdicionarProjeto.SelecioneoprojetocriadoedepoiscliqueemAdicionarArquivos
JARdeProjetoparafinalizaraimportao.
Concluindo,necessrioimportarodriverJDBCprontoeprprioparaoPostgreSQL,comoobjetivodeconectividadecomobancode
dados.Comisso,cliquecomobotodireitoemBibliotecaeselecioneaopoDriverJDBCdoPostgreSQL.CliqueemFinalizarqueodriver
seradicionadoautomaticamente.
Agoradefiniremosaspastasparamelhororganizaodoprojeto,comafinalidadedenohaverpercadecaminhos,arquivosoudetrocas
deinformaes.
Ento,dentrodapastaPacotesdeCdigosfonteserpropostocolocarquatroPacotesJava:filtro,logado,servlet,til.
NopacotefiltrointroduzaumnovoFiltro,clicandocomobotodireitoemcimadopacote,vparaaopo:Outros,selecioneacategoria:
WebeoTipodeArquivo:Filtro.CliqueemPrximoecoloqueonomeparaonovofiltrodeUsuarioLogado.ApsclicaremPrximo,

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

9/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

aparecerumajaneladeconfiguraodeimplantaodofiltro:cliqueemnovoedeixeconfiguradodomesmojeitoqueseencontraaFigura
5.

Figura5.ConfiguraodeImplantaodoFiltro.
Apsisso,cliqueemOKedepoisemFinalizar.
JnofiltrocriadoUsuarioLogado.java,sobrescrevaoseucontedopelocdigoqueseencontranaListagem8.
Listagem8.FiltroUsuarioLogado

packagefiltro;

importentidades.Usuario;
importjava.io.IOException;
importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.annotation.WebFilter;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;

@WebFilter(filterName="UsuarioLogado",urlPatterns={"/logado/*"})
publicclassUsuarioLogadoimplementsFilter{

privateStringcontextPath;

publicUsuarioLogado(){
}

@Override
publicvoiddoFilter(ServletRequestrequest,

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

10/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

ServletResponseresponse,
FilterChainchain)
throwsIOException,ServletException{

HttpServletResponseres=(HttpServletResponse)response;
HttpServletRequestreq=(HttpServletRequest)request;
HttpSessionsession=req.getSession();

Usuariou=(Usuario)session.getAttribute("usuarioLogado");
if(u==null){
session.invalidate();
res.sendRedirect(contextPath+"/index.jsp");
}else{
res.setHeader("Cachecontrol","nocache,nostore");
res.setHeader("Pragma","nocache");
res.setHeader("Expires","1");
chain.doFilter(request,response);
}
}
@Override
publicvoiddestroy(){
}

@Override
publicvoidinit(FilterConfigfilterConfig){
this.contextPath=filterConfig.getServletContext().getContextPath();
}

Essefiltroresponsvelporcontrolartodasasaesduranteaautenticaodosistema,tornandoasrequisieseoacessoparaas
pginaswebmaisrefinada.
DentrodopacotelogadosercriadaumanovaclasseJavacomonomedeMenu.javaeteromesmocdigoqueomesmoencontradona
Listagem9.
Listagem9.ClasseMenu

packagelogado;

importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.RequestDispatcher;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

@WebServlet(name="Menu",urlPatterns={"/logado/menu.jsp"})
publicclassMenuextendsHttpServlet{

protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
RequestDispatcherrd=request.getRequestDispatcher(
"/WEBINF/view/logado/menu.jsp");
rd.forward(request,response);
}

@Override
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}

@Override
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

11/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

@Override
publicStringgetServletInfo(){
return"Shortdescription";
}

Essecdigoresponsvelpordefinirosmodosderequisiesparaapginaprincipaleredirecionamentoscasoaautenticaoesteja
concludaeousurioestejalogadonosistema.
DentrodopacoteservletsercriadoumanovaclassechamadaIndex.javaeserimplementadacomoscdigosdescritosnaListagem10.
Listagem10.Classeindex

packageservlet;

importdao.UsuarioDAO;
importentidades.Usuario;
importutil.Erro;
importjava.io.IOException;
importjavax.servlet.RequestDispatcher;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

@WebServlet(name="Index",urlPatterns={"/index.jsp","/logout.jsp"})
publicclassIndexextendsHttpServlet{

protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
Erroerros=newErro();
if(request.getParameter("bOK")!=null){
Stringlogin=request.getParameter("login");
Stringsenha=request.getParameter("senha");
if(login==null||login.isEmpty()){
erros.add("Loginnoinformado!");
}
if(senha==null||senha.isEmpty()){
erros.add("Senhanoinformada!");
}
if(!erros.isExisteErros()){
UsuarioDAOdao=newUsuarioDAO();
Usuariouser=dao.getSingle(login);
if(user!=null){
if(user.getSenha().equalsIgnoreCase(senha)){
request.getSession().setAttribute("usuarioLogado",user);
response.sendRedirect("logado/menu.jsp");
return;
}else{
erros.add("Senhainvlida!");
}
}else{
erros.add("Usurionoencontrado!");
}
}

}
request.getSession().invalidate();

request.setAttribute("mensagens",erros);

StringURL="/WEBINF/view/index.jsp";
RequestDispatcherrd=request.getRequestDispatcher(URL);
rd.forward(request,response);
}
@Override
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

12/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

throwsServletException,IOException{
processRequest(request,response);
}

@Override
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}

@Override
publicStringgetServletInfo(){
return"Shortdescription";
}

Essaclasseresponsvelportrataroenvioerecebimentodoredirecionamentodaspginasesuasdeclaraes,sendoarmazenadasno
servidorparaquehajaoprocessamentoeenfimvalidaodosdadosqueousurioinformou,fazendootratamentodeerroseadicionando
paraapropriedadedeerrosinstanciadacasoobtivererronaautenticao.
Eporfim,nopacoteutilsercriadaaclasseErro.javaeserimplementadaoscdigosdescritosnaListagem11.
Listagem11.ClasseErro

packageutil;

importjava.io.Serializable;
importjava.util.ArrayList;
importjava.util.List;

publicfinalclassErro
implementsSerializable{

privatefinalList<String>erros;

publicErro(){
erros=newArrayList<>();
}

publicErro(Stringmensagem){
erros=newArrayList<>();
erros.add(mensagem);
}

publicvoidadd(Stringmensagem){
erros.add(mensagem);
}

publicbooleanisExisteErros(){
return!erros.isEmpty();
}

publicList<String>getErros(){
returnerros;
}
}

Agoraapropostaapagaroarquivoindex.htmlquefoicriadoautomaticamente(porpadro)localizadodentrodapastaPginasWebe
criarumanovapastacomonomeviewparadentrodapastaWEBINF.Dentrodessapastaviewsercriadaapginaindex,squeno
formato.jsp.Almdisso,crieoutrapastacomonomelogadoedentrodessacrieumarquivo:.jspcomonomedeMenu.Paraefeitosde
design,dentrodapastaPginasWebcrieumanovapastachamadacssedentrocrieumarquivoCSS.Paraesseltimopasso,cliquecom
obotodireitoemcimadapastacriada:vemNovoOutrosenaparteCategoriasselecioneHTML5.Logoaps,emTiposdeArquivos,
selecioneaopoFolhadeEstiloemCascataedefinaonomedelayout.AoclicaremFinalizar,aestruturadoprojetowebdeveficarda
mesmamaneiraqueademonstradaaFigura6.
http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

13/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

14/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

Figura6.HierarquiadoprojetoWeb.
Vamosagorapreencheroarquivomenu.jspcomocdigodescritonaListagem12.EssecdigoHTMLtagsemJSPresponsvel
responsvelporbuscaronomedousuriologado(autenticado)paraapginaprincipal.Elecontmtambmolinkparaologoutdosistema.
Listagem12.Menu.jsp

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<!DOCTYPEhtml>
<html>
<head>
<metahttpequiv="ContentType"content="text/html;charset=UTF8">
<title>MenudoSistema</title>
</head>
<body>
<h1>MenudoSistema</h1>
<p>Ol${sessionScope.usuarioLogado.nome}</p>
<ul>
<li>
<ahref="${pageContext.request.contextPath}/logout.jsp">Sair</a>
</li>
</ul>
</body>
</html>

Dentrodoarquivoindex.jspcoloqueoscdigosdescritosnaListagem13.
Listagem13.Index.jsp

<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<!DOCTYPEhtml>
<html>
<head>
<metahttpequiv="ContentType"content="text/html;charset=UTF8">
<title>AutenticaodeUsurio</title>
<linkhref="${pageContext.request.contextPath}/css/layout.css"rel="stylesheet"type="text/css"/>
</head>
<body>
<h1>AutenticaodeUsurio</h1>
<c:iftest="${mensagens.existeErros}">
<divid="erro">
<ul>
<c:forEachvar="erro"items="${mensagens.erros}">
<li>${erro}</li>

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

15/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

</c:forEach>
</ul>
</div>
</c:if>
<formmethod="post"action="index.jsp">
<table>
<tr>
<th>Login:</th>
<td><inputtype="text"name="login"
value="${param.login}"/></td>
</tr>
<tr>
<th>Senha:</th>
<td><inputtype="password"name="senha"/></td>
</tr>
<tr>
<tdcolspan="2">
<inputtype="submit"name="bOK"value="Entrar"/>
</td>
</tr>
</table>
</form>
</body>
</html>

EssecdigoHTMLcomJSPresponsvelporexibiraousuriooscamposparainserodelogin,senhaebotoparaautenticao.Casoo
usurioinformedadosincorretosounoinforme,emitidoumamensagemnocantosuperiordizendoqueexistemerros.
Eparafinalizar,coloquedentrodoarquivolayout.cssocdigodescritonaListagem14.
Listagem14.Layout.css

#erro{
width:80%;
margin:0auto;
border:1pxsolidred;
backgroundcolor:beige;
}

Ocdigoresponsvelpordeixaraaparnciadamensagemmaisapresentvelaousurio.
Apsterfinalizado,bastasalvaroprojetoeexecutaromesmoapertandoF6.
Oresultadoserumformulriosimplesdeautenticao,comomostraaFigura7(noMozillaFirefox).

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

16/17

26/10/2016

JavaServerPages:AutenticaodelogincomJSPePostgreSQL

Figura7.Telainicialdosistemasendoexecutado.
Paraautenticar,bastacolocarosdadosqueforamcadastradosnatabelaanteriormenteedepoiscliqueemEntrar.

http://www.devmedia.com.br/javaserverpagesautenticacaodelogincomjspepostgresql/31849

17/17

Você também pode gostar