Iniciando em JSP/Servlets - Erro ao gerar Servlet a partir do JSP

10 respostas
Luiz_Gustavo

Galera, estou começando a estudar JSP/Servlets e, ao tentar abrir uma página JSP no TomCat obtive o seguinte erro:

o código é o seguinte:

<%@page import="java.util.*,br.com.home.jdbc.*,br.com.home.jdbc.dao.*,br.com.home.jdbc.modelo.*" %>
<html>
<head>
<title></title>
</head>
<body>
<ul>
<%
	ContatoDAO dao = new ContatoDAO();
	List<Contato> contatos = dao.getContatos();
	
	for(Contato contato : contatos){
		%>
		<li>
			<% contato.getNome();%>,
			<% contato.getEmail();%>:
			<% contato.getEndereco();%>
		</li>
	<%
	}
%>
</ul>
</body>
</html>

Se isso puder ajudar

ESTRUTURA DE DIRETÓRIOS:

A dúvida é bem básica, mas é uma dúvida :smiley:

Agradeço qualquer atenção dispensada!

10 Respostas

T

Quem sabe configurar o Tomcat pra ele?
Pelo erro, é porque não está suportando a sintaxe do Java 5.0.
Não sei se é para mexer em server.xml, ou em outro lugar.

Luiz_Gustavo

thingol:
Quem sabe configurar o Tomcat pra ele?
Pelo erro, é porque não está suportando a sintaxe do Java 5.0.
Não sei se é para mexer em server.xml, ou em outro lugar.

POxa thingol…

já é uma dica valiosa pra mim :smiley:

vou dar uma olhada no manual do TomCat pra ver como é feita a configuração.
Se estiver para 1.4 eu mudo pra 5 pra ver.

Mas tem uma coisa, mesmo fazendo o for da maneira antiga “for(int i = 0; …)” dava esse erro.

De qualquer maneira muito obrigado!

Luiz_Gustavo

Ahmmm… pode ser pelo generics tb né…

:roll:

Pedrosa

Retire esses códigos Java do seu Jsp, use jstl para fazer essa iteração seu codigo fica mais limpo, mais facil de dar manutenção, passa essa lista no request:

//servlet

request.setAttribute("contatos",new ContatoDAO().getLista());

//jsp limpo

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<c:forEach var="contato" items="${contatos}">
	<li>${contato.nome},${contato.email},${contato.endereco}</li>
</c:forEach>
</html>

100 nenhum import de java :wink:

Luiz_Gustavo

Pedrosa:
Retire esse códigos Java do seu Jsp, use jstl para fazer essa iteração seu codigo fica mais limpo, mais facil de dar manutenção, passa essa lista no request:

//servlet

request.setAttribute("contatos",new ContatoDAO().getLista());

//jsp limpo

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<c:forEach var="contato" items="${contatos}">
	<li>${contato.nome},${contato.email},${contato.endereco}</li>
</c:forEach>
</html>

100 nenhum import de java etç, pegue esses valores de um request :wink:

Opa… então…

É que eu estou começando a estudar agora.
Até sei, pelo que li, que fica mais limpo usar jstl e tals, é que eu queria aprender a fazer assim antes.

Na verdade, quero entender porque não funcionou se no exemplo que estou seguindo diz pra fazer assim, aprender a entender esses erros, sacou :smiley:

De qualquer maneira muito obrigado pela dica

[]'s

Pedrosa

Como o thingol disse, veja se o seu container suporta recursos de Java 1.5, eu tenho trauma desses scriplets, acho válido a título de curiosidade, mas o jeito mencionado é mais elegante.

Luiz_Gustavo

concordo :smiley:

seguinte…

acabei de fazer um test em ksa
A versão do TomCat é 5.5.7, e segundo o manual é compatível com java 1.5 (na verdde para usar o 1.4 é necessário um adaptador)
Acontece que, tirando do código as sintaxes do java 1.5, o negócio funcionou numa boa.
E eu só tenho o Java 5 update 6 instalado, nenhuma outra versão.

O TomCat não está reconhecendo Generics nem outra sintaxe do Java 5.

Alguma dica/curiosidade/comentário? :smiley:

Vou buscar por outra versão.

O código que funcionou foi o seguinte:

<%@ page import="java.util.*,br.com.home.jdbc.*,br.com.home.jdbc.dao.*,br.com.home.jdbc.modelo.*" %>
<html>
<body>
<ul>
<%
	ContatoDAO dao = new ContatoDAO();
	List contatos = dao.getContatos();
	
	for(int i = 0; i < contatos.size(); i++){
		%>
		<li>
			<%=((Contato) contatos.get(i)).getNome() %>,
			<%=((Contato) contatos.get(i)).getEmail() %>:
			<%=((Contato) contatos.get(i)).getEndereco() %>
		</li>
	<%
	}
%>
</ul>
</body>
</html>
Pedrosa

Vc não pode baixar a ultima versão do Tomcat, nela roda Java1.5 sem problemas.

boaglio

Faça o seguinte:

:arrow: desinstale todos os JRE,JDK e o tomcat
:arrow: instale o JDK 5 no diretório C:\JDK
:arrow: instale o Tomcat apontando para C:\JDK (durante a instalação talvez ele sugira um diretório errado)

Luiz_Gustavo

boaglio:
Luiz_Gustavo:

Alguma dica/curiosidade/comentário? :smiley:

Faça o seguinte:

:arrow: desinstale todos os JRE,JDK e o tomcat
:arrow: instale o JDK 5 no diretório C:\JDK
:arrow: instale o Tomcat apontando para C:\JDK (durante a instalação talvez ele sugira um diretório errado)

Fala boaglio… boa palestra na Unip hein… Até me entusiasmei a estudar JSP/Servlet :smiley:

Olha só, vou tentar desistalar somente o TomCat e fazer uma verificação, pq tenho somente o JDK 5 instalado na máquina.
Tenho um monte de outras coisas apontando pra minha instalação atual (NetBeans, etc…)

Valeu a dica!

[]'s

Criado 11 de maio de 2006
Ultima resposta 11 de mai. de 2006
Respostas 10
Participantes 4