Servlets e xml

10 respostas
G

Estou iniciando em servlets e estou tendo uma dificuldade para iniciar minha aplicação, criei a class de servlets e a compilei e criei o arquivo xml pra permitir que o servidor tomcat rode a minha aplicação, mas toda hora da erro e não consigo execultar meu “ola mundo”, se alguem poder verificar meus códigos e indicar o erro eu agradeço.

package servlets;
  import java.io.*;
  import java.servlet;
  import java.servlet.http.*;
  
  public class Hello extends HttpServet
  {
    public void doGet(HttpServletRequest requisicao,
	   HttpServletResponse resposta)
	       throws ServletException, IOException
		   {
		   PrintWriter out;
		   resposta.setContentType("text/html");
		   out = resposta.getWriter();
		   
		   out.println(" <html>");
		   out.println(" <head>");
		   out.println(" <title>JSP - Alo mundo!</html>");
		   out.println(" </head>");
		   out.println(" <body>");
		   out.println(" <h2>Primeira página em servlet.</h2>");
		   out.println(" </body>");
		   out.println(" </html>");
		   }
		   }
<?xml version="1.0" encoding="ISO-8859-1"?>
   
   <web-app>
   <servlet>
     <servlet-name>PrimeiroServelet</servlet-name>
	 <servlet-class>servlets.Hello</servlet-name>
   </servlet>
   
   <servlet-mapping>
     <servlet-name>PrimeiroServelet</servlet-name>
	 <url-pattern>/hello</url-pattern>
   </servlet-mapping>
   
   </web-app>

Agradeço des de já quem poder me ajudar.

10 Respostas

rmendes08

A princípio seu código está correto, qual é exatamente o erro que acontece ?

Edifran

Oi goodboop, coloque ou explique o erro que ocorre, fica mais fácil de obter ajuda.

Abraço.

Guike

Certeza que a classe extendia é HttpServet e não HttpServlet?

você escreveu

public class Hello extends HttpServet

ao invés de extender HttpServet tente extender HttpServlet

no htlm quando você abre o <title> logo depois da escrita você ao invés de fechar o title você fecha o htlm “</html>” com isso a escrita não aparece na página, ao invés de fechar html feche o o title </title> e feche o htm por último

ao invés disso

out.println(" &lt;title&gt;JSP - Alo mundo!&lt;/html&gt;");

faça isso

out.println(" &lt;title&gt;JSP - Alo mundo!&lt;/title&gt;");

reveja essa alterações e vê se funciona

G

Corrigi os trechos de código que vc indicou mas o erro persite, estou achando que fiz a extrutura de diretorios de forma errada.

minha estrutura ficol assim,

webapps/serv2/servlets
webapps/serv2/WEB-INF/classes

dentro de WEB-INF coloquei o arquivo web.xml e o arquivo Hello.class ficou
na pasta classes.
Mas na hora de chamar o arquivo no navegador digito “localhost:8080/serv2/WEB-INF/classe/Hello.class” tbm já coloquei “ocalhost:8080/serv2/classe/Hello.class”
sem o WEV-INF pra testa
mas da o segunte erro:

" HTTP Status 404 -

type Status report

message

description The requested resource () is not available.
Apache Tomcat/6.0.35 "

C

O problema é a sua requisição.

Você cria o mapeamento da servlet exatamente para ter um acesso mais amigável para a mesma.
Tente chamar pelo nome que você configurou em /hello

localhost:8080/serv2/hello

Guike

É deve ser a requisição mesmo tente fazer o que o nosso amigo crisaltmann disse.

Você deve está tendo um pouco de dificuldade para entender o funcionamento dos mapeamentos e estrutura das pastas, e o xml é justamente para ensinar para o container o que o navegador pode acessar por exemplo para acessar sua sevlet tente

http://localhost:8080/“aqui você digita o nome do seu projeto”/hello

no seu caso acho que ficaria http://localhost:8080/serv2/hello

vou tentar explicar por partes

http://localhost:8080/” aqui é endereço onde o container está instalado no caso o tomcat onde localhost é um endereço recursivo que aponta para a própia máquinae :8080 é porta por onde ele responde as requisições

“serv2” nome do seu DynamicWebProject

“hello” nome configurado no xml

vê se funciona qualquer dúvidas estaremos por aqui

G

vlw gente pela esplicação, agora peguei essa logica de diretorios melhos, acho que o problema esta nisso pos continua dando esta menssagem toda vez:
" HTTP Status 404 -

type Status report

message

description The requested resource () is not available. "

vou tentando aki, quando conseguir eu aviso vcs.

G

Quando eu coloco o caminho completo para o arquivo servlets ele encontra o arquivo e meda a opção de salvar o arquivo com o gerenciador de dawnloads, mas penssei que ele deveria abrir pelo navegador.

Obs: Eu não usei o apelido dado no arquivo xml eu chamei ele pelo nome da classe mesmo.

Ruttmann

goodboop:
Quando eu coloco o caminho completo para o arquivo servlets ele encontra o arquivo e meda a opção de salvar o arquivo com o gerenciador de dawnloads, mas penssei que ele deveria abrir pelo navegador.

Obs: Eu não usei o apelido dado no arquivo xml eu chamei ele pelo nome da classe mesmo.

Se você mapeou seu servlet, logicamente tem que usar o nome informado no mapeamento, senão nem tem porque mapear, não?

:roll:

Tenta acessar assim: http://localhost:8080/“aqui o nome do seu projeto(igualzinho, sem CaseSensitive)”/“aqui o nome que você deu no mapeamento”

Assim não vai ter erro!

:wink:

Ruttmann

goodboop:
Quando eu coloco o caminho completo para o arquivo servlets ele encontra o arquivo e meda a opção de salvar o arquivo com o gerenciador de dawnloads, mas penssei que ele deveria abrir pelo navegador.

Obs: Eu não usei o apelido dado no arquivo xml eu chamei ele pelo nome da classe mesmo.

Se você mapeou seu servlet, logicamente tem que usar o nome informado no mapeamento, senão nem tem porque mapear, não?

:roll:

Tenta acessar assim: http://localhost:8080/“aqui o nome do seu projeto(igualzinho, sem CaseSensitive)”/“aqui o nome que você deu no mapeamento”

Assim não vai ter erro!

:wink:

Criado 29 de agosto de 2012
Ultima resposta 4 de set. de 2012
Respostas 10
Participantes 6