Erro de compilação

Estou iniciando em J2EE, pos gostaria de sabe porque quando eu compilo pelo prompt minha servlet, ela da erro como se não tive-se encontrando o pacote da servlet.jar

Não é uma boa idéia utilizar o prompt de comando para compilar aplicações web. Elas sempre vão depender de bibliotecas de terceiros e seu comando de compilação ficará muito grande. Utilize uma IDE como o Eclipse

Acredito que vc tenha em sua máquina apenas o jse instalado para que a sua aplicação funcione vc terá que adicionar no path da sua aplicação o pacote javax.servlet mas para evitar esse tipo que coisa aconselho vc a usar alguma ide para criar seus projetos jee eu uso o eclipse 3.1 com o jboss ide que é um plugin que vem com tudo que vc precisa para construir uma aplicação web

http://docs.jboss.com/jbosside/install/build/en/html/installation.html

Bravox

O eclipse eu ja utilizo mas como to tentando roda minha serlet no tomcat e ele me aponta essa mensagem de erro status 500. Gostaria de verifica sabe se minha variavel de amibiente ta configurada certo ou se este erro ta aparecendo por outro motivo.


Como está o seu arquivo web.xml ?

Bravox

Bravox a minha servlet coloquei dentro desse diretorio: C:\tomcat-5\webapps\teste10\WEB-INF\classes

e o meu arquivo web.xml deixei ele assim:

<?xml version="1.0" encoding="ISO-8859-1" ?>


Exemplo10
classes.Exemplo10

<servlet-mapping>
    <servlet-name>Exemplo10</servlet-name> 
    <url-pattern>/Exemplo10</url-pattern> 
</servlet-mapping>

Sera que o erro esta na sua configuração?

Sua classe está dentro de um pacote chamado classes?

classes.Exemplo10

se sua classe se chama Exemplo10 ai vc tem que arrumar o web.xml

Exemplo10

Bravox

Classes não é um pacote, simplesmente é o local onde os códigos java compilados são armazenados.

O nome que deve estar na tag <servlet-class> é o nome completo da classe.

Se sua classe não possui pacote (default package), o que não é aconselhável, você deve fazer como o Bravox , falou, caso contrário deverá colocar com o pacote, assim:

 &lt;servlet-class&gt;pacote.exemplo.Exemplo10&lt;/servlet-class&gt; 

Só uma duvida :

Fazendo com vc sitou no diretório classe terei que ter a mesma estrutura de diretório do pacote ?

exemplo:

classes/pacote/exemplo/Exemplo10

Bravox

Exatamente! Afinal, quando criamos pacotes é isso que acontece. :wink:

Hummmmmmm !!! ai sim !!

Bravox

Estive testando das duas maneiras, mas ficou mais claro deixando a classe sem o pacote (default package).
Aquele erro parece q foi corrigido, agora surgiu um novo erro.


Coloca o codigo ai do seu Servlet !!

Bravox

Bravox é essa o codigo.

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 Exemplo10 extends HttpServlet {

private void enviarFormulario(HttpServletResponse resp, boolean mensagemErro) throws ServletException, IOException{
	resp.setContentType("text/html");
	PrintWriter out = resp.getWriter();
	out.println("<HTML>");
	out.println("<HEAD>");
	out.println("<TTLE>Login</TITLE>");
	out.println("</HEAD>");
	out.println("<BODY>");
	
	if(mensagemErro)
	  out.println("Login falhou, tente novamente.<BR>");
	
	out.println("<BR>");
	out.println("<BR> Digite seu nome de usuario e senha.");
	out.println("<BR> <Form Method = Post>");
	out.println("<BR> Usuario: <Input Type=Submit Name=usuario>");
	out.println("<BR> <Input Type=Submit Value=Submit>");
	out.println("</FORM>");
	out.println("<BODY>");
	out.println("</HTML>");
	
}

public void doGET(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
		enviarFormulario (resp, false);
	}

public void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{
	String usuario = req.getParameter("usuario");
	String senha = req.getParameter("senha");
	
	if(usuario != null && senha != null && usuario.equals("demian") && senha.equals("123456")){
		resp.sendRedirect("Boas Vindas"); }
	else
		enviarFormulario(resp, true);
		
	}

}

Bravox muito obrigado deu certo. Realmente o erro tava na hora que tava criando minha classe. Eu tava criando ela dentro de um pacote mas sem declara ela com a palavra package e carrengando para o tomcat. E isso era a causa do erro.

Cara peguei o seu codigo compilei fiz a alteração no web.xml e criei os diretórios no tomcat rodou na boa pega o arquivo ai e coloca no tomcat e usa a seguinte url

http://localhost:8080/guj/Exemplo10

Beleza então !!!

Bravox