Ajuda com Servlet ?!?!

Ae povo, alguem ae pode me dar uma idéia de como eu faço as telas de Login para a minha aplicação java?!
Eu tentei de algumas formas não funcionou não, talvez pq eu tenha muito pouca experiência principalmente com servlets e filters 

Alguém pode dar um help para o eu ae please…

E sem querer exagerar, existe como da minha aplicação eu chamar um servlet ?! Tipo tenho um servlet que valida usuário e senha… mais eu não sei se posso chamar ele do meu jsp ou de uma classe java ou tem que ser só no web.xml mesmo?!

p.s. Alguem já usou esse tipo de autenticação??? JCIFS NTLM HTTP Authentication se sim podem me dar uns toques plese eu tente até a morte e não consegui :frowning:

Salve,

dê uma olhada em post passados, há muito material sobre login neste fórum… e para acessar o servlet do jsp dê uma olhada em Artigos e Tutoriais.

:okok:

ahm… se tu der uma pesquisada pelo fórum vai ver um bocado de tópicos q respondem isso, mas bem, como eu ja to matando trabalho aqui mesmo, vou postar deeeee noooooovo…

login.jsp:

<form name="login" action="/loginServlet" method="post">
   Usuário: <input type="text" name="username"/>
   <br/>
   Senha: <input type="password" name="password"/>
</form>

com.foo.LoginServlet:

public void doPost( HttpServletRequest, HttpServletResponse ) {

   String username = request.getParameter( "username" );
   String password = request.getParameter( "password" );

   User user = new User( username, password );

   if ( user existe no banco ) {

      request.getSession().setAttribute( "user", user );
      request.getServletDispatcher( "/paginaSegura" ).
         forward( request, respose );

   } else { // dados de login inválido

      request.getServletDispatcher( "/login.jsp" ).
         forward( request, respose );
   }
      
}

paginaSegura.jsp qualquer:

<%
   if ( session.getAttribute( "user" ) == null ) {

      // o usuario nao esta logado
      // redirecionar para login.jsp
   } 
%>

o web.xml tu sabe fazer? :roll:

Ow obrigado pelas respostas pessoal…

Soh mais uma dúvida, no tutorial que eu achei aqui sobre servlets, ele manda vc colocar a classe java dentro do diretório (no caso do tomcat) na pasta <TOMCAT_HOME>\webapp&lt;pasta do servlet>\web-inf\web.xml e a classe gerada para ser o servlet dentro de …<pasta do servlet>\web-inf\classes. Agora pergunto, POSSO USAR ISSO NA PASTA WEB-INF DA MINHA APLICAÇÃO OU OBRIGATÓRIAMENTE TEM QUE SER NESSA PASTA, SE POSSO USAR NA MINHA APLICAÇÃO, TENHO QUE MEXER NO SERVER.XML COM ALGUMA CONFIGURAÇÃO ESPECÍFICA???

Salve,

Cara, você tem que colocar todas as suas .class dentro da pasta classes, a menos que você as empacote.

:okok:

Hehehe deu tudo certo kra, brigaduuuu valews meu…
Seguinte, tow usando o jar JCIFS NTLM HTTP Authentication, finalmente consegui fazer a bagaça funcionar… o meu tipo de validação é no windows server 2003. Para o usuáro logar na aplicação ele tem que ter uma senha de acesso a rede do Windows.
É bem legal… agora vou aprimorar isso com uma classe java para fazer as permissões de acesso internas da aplicação… Caso alguem queira usar e não esteja conseguindo, me da um toke que eu terei prazer em ajudar flws pessoal…

campos.aurelio@uol.com.br / msn:srsinistro_stg@Hotmail.com

flws

[ ]'s.

[quote=“marcossousa”]Salve,

Cara, você tem que colocar todas as suas .class dentro da pasta classes, a menos que você as empacote.

:okok:[/quote]

   if &#40; user existe no banco &#41; &#123;

Olá, alguem teria um exemplo de código de como poderia ser implementado se o usuário existe na base ou não ?

Obrigado.

Strelow,

dê uma olhada no código abaixo:

[code]public boolean login ( String nome, String senha)
{
try
{
Class.forName("org.gjt.mm.mysql.Driver").newInstance(); // carrega o driver
}
catch ( ClassNotFoundException e )
{
System.out.println( e.toString() );
} catch (InstantiationException e) {
System.out.println( e.toString() );
} catch (IllegalAccessException e) {
System.out.println( e.toString() );
}

		Connection con = DriverManager.getConnection&#40; &quot;jdbc&#58;mysql&#58;//localhost&#58;3306/seuBanco&quot; &#41;;
		
		Statement stm = con.createStatement&#40;&#41;;
	try
	&#123;
		Connection con = DriverManager.getConnection&#40; urlBd &#41;;
		
		Statement stm = con.createStatement&#40;&#41;;
		String sql = &quot;SELECT nome, senha FROM usuario &quot; +
			&quot;WHERE nome = &quot; + rn.devStr&#40; nome &#41; + 
			&quot; AND senha = &quot; + rn.devStr&#40; senha &#41; ;
		PreparedStatement stmt_at = con.prepareStatement&#40;sql&#41;;
		ResultSet res = stmt_at.executeQuery&#40;&#41;;
		if &#40; res.next&#40;&#41; &#41; // se resultSet possuir registros então usuário foi reconhecido
		&#123;
			res.close&#40;&#41;;
			stm.close&#40;&#41;;
			con.close&#40;&#41;;
			return true;
		&#125;
		res.close&#40;&#41;;
		stm.close&#40;&#41;;
		con.close&#40;&#41;;
	&#125;
	catch &#40; SQLException e &#41;
	&#123;
		System.out.println&#40; e.toString&#40;&#41; &#41;;
	&#125;
	catch &#40; Exception e &#41; 
	&#123;
		System.out.println&#40; e.toString&#40;&#41; &#41;;
	&#125;
	return false;
&#125;[/code]

eu não testei este código mas acho que está funcionando.

:okok:

Esse código para verificar se o usuário ta cadastrado vira um servlet ou um bean?

Vou incomodar vocês um bocado aqui com perguntas… eu preciso de um login até amanhã… e to meio fraco em java…

Abraços.

[quote=“Strelow”]Esse código para verificar se o usuário ta cadastrado vira um servlet ou um bean?
[/quote]

creio que seja um Servlet…

:wink:

Salve,

Bem este código é um método que você pode utilizar tanto em servlet quanto num Bean simples. Para o Servlet caso você não saiba trabalhar com servlets consulte este link clique aqui ou se você quiser utilizar um bean veja estes tutoriais Escrever JB e Usar JB

qualquer dúvida, poste-a.

:okok:

Uma possibilidade seria usar segurança declarativa do J2EE. Eu vi um projeto usando e as coisas ficam realmente simples. Aproveito pra perguntar: alguém sabe se o Tomcat dá suporte a Segurança do J2EE ou se tem que usar um servidor de aplicação.

a segurança declarativa q o Tomcat tem é por base no web.xml, como esta na especificação…