Java para web

25 respostas
M

Olá estava fazendo a conexão com o banco de dados, colei os arquivos .jar corretos na pasta ext mesmo assim ele não acha o driver para carregar.

<%@ page  import="java.sql.*"; %>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<link rel="stylesheet" href="login.css" type="text/css" media="all"/>
	</head>
	<body>
	
		<%
			try{			
				Class.forName("org.postgresql.Driver");
				
				Connection con = DriverManager.getConnection("jdbc:postgresql://localhost/aulas_java","postgres","matheus");
				
				Statement stmt = con.createStatement();
				
				ResultSet rs = stmt.executeQuery("select * from login");
			}
			catch(ClassNotFoundException e){
				out.println("Classe não encontrada "+ e );
			}
			catch(SQLException s){
				out.println("Conexão com banco não realizada "+ s);
			}
		%>
	
		<p align="center">
			<img src="imagens\Penguins.jpg"/>   <!-- remover gambiarra quando aprender posicionamento com css -->
		</p>
		
		<form>
			Usuário.:<input type="text" name="usuario" size="20px"/><br>
			&nbspSenha.: <input type="text" name="senha" size="20px"/><br>
					 <input type="submit" value="Acessar Sistema" id="botao"/>
		</form>
	</body>
</html>

25 Respostas

lele_vader

Está no classpath o driver jdbc ?

M

Olha eu ja coloquei o driver jdbc la na pasta ext, nas video aulas que eu vi dizia que eu teria de colocar la, pode me falar mais algum outro local que tenho que colocar?

lele_vader

Isso é projeto web não é ?
Teria que ser em webinf/lib.
Ou no servidor.

M

webinf/lib? onde fica isso? Estou usando apache tomcat 7 no meu pc mesmo só pra aprender os códigos

lele_vader

Projetos web tem uma estrutura de diretórios, em qual tem uma pasta chamada WEB-INF e dentro dela uma lib, na qual você coloca as lib’s que seu projeto usa.

Como você está usando o tomcat e colocando o seu projeto ?

Está usando alguma ide junto ?

lele_vader

E depois refatora isso para nunca mais colocar acesso a banco de dados na página.
É péssimo.
A conexão deveria estar em um servlet, o qual retornaria um objeto atualizado para ser renderizado na view.
Também é desaconselhado usar scriptlet <% %>.
No seu lugar você pode usar as tag’s de jsp e jstl.

M

Hmm, enquanto a ide to usando dreamweaver só pra aprender eu não sei como faço os códigos na ide e depois os utilizo na pagina.

lele_vader

Daí você tá colocando a página direto lá na pasta de app do tomcat ?
É isso ?

M

Não eu fiz uma pasta para os testes, e outra na do apache, ai para ver eu mando pelo dreamweaver. Muito amador eu sei mas eu tinha que fazer de algum jeito pra começar a aprende.

lele_vader

Tá.
Para você ver isso rodando coloca o jar na pasta lib do tomcat.
Deve funcionar.

M

Hmm, não funcionou velho, é que tipo meu apache tava com problema enquanto ele tava instalado no pc ele não startava, ai eu baixei a versão zip descompactei e só dei dois cliques no startup.bat ai ele começo roda os códigos, será que não é por isso ;\

lele_vader

Apache você diz tomcat não é ?

Qual erro que aparece ?

M

É isso apache tomcat 7, o erro quando eu tento incializar o tomcat quando está instalado é o seguinte:

O serviço apache tomcat 7.0 em computador local foi iniciado e interrompido. Alguns serviços são interrompidos automaticamente se não estiverem sendo usados por outros serviços ou programas.

lele_vader

O seu tomcat não funciona então ?
Desinstala o instalado.

O que está zipado funciona ?

Você mapeou a variável de ambiente JAVA_HOME no path ?
Se for usar o do startup.bat roda no cmd para ver a causa do erro.

M

Sim o que aconteceu foi o seguinte, eu instalei o apache e fiz as pastas la tudo funcionou inclusive conexão com o banco, ai antes de ontem parou de startar então eu fui atraz de uma solução e não encontrei em lugar algum, ai achei essa “medida provisória” pra continuar estudando mas agora o zipado não está fazendo conexão com o banco.

M
Agora vou rodar novamente pelo startup.bat que não da erro nenhum quando o abro apenas starta o apache.
lele_vader

Tenta desinstalar o instalado e instalar de novo.
Ou então tenta fazer no zipado a mesma coisa que você fez no instalado.

Onde você colocou o jar do mysql no instalado ?

M

É jar do postgresql, bom mas então no instalado eu não precisei colocar jar nenhum no tomcat eu precisei colocar apenas na pasta ext do jr7, e por sinal tinha funcionado o banco dessa maneira, mas ai parou de funcionar o apache =x

M

criei uma pasta web-inf dentro da pasta dos arquivos, dentro do apache e colei uns 20 drivers la, agora funcionou valeu ai velho.

lele_vader

Depois le as apostilas da caellum e web,
Lá elas explicam como fazer as aplicações web em java.

Se tiver dúvida na sintaxe e em como programar em java, leia a apostila de orientação a objetos.

M

Sim, eu ja li a fj-16, com a logica de orientação a objetos e com a sintaxe eu tenho facilidade, o meu problema é estruturar os programas para funcionarem, saber qual funciona com qual eu acho isso um saco.

lele_vader

E depois tira aquela lógica de fazer conexão com banco da página.
geralmente essa parte estaria vinculada a um servlet ou um controlador, se for um framework mvc, o qual pegaria os dados da sua jsp, processaria, e aí retornaria os dados atualizados.
Além disso após a conexão com o banco deve-se fechar a conexão e o statement em um bloco finally, senão vão ficar abertas.

M

Hmm, a apostila da caelum fj-16 eu começei a ler do nada ela começa a explicar como funciona o xml, sem ao menos dizer aonde eu faço os arquivos…

lele_vader

Calma.
Você tem que ver a hierarquia de um projeto web.
Abre o eclipse e manda criar um dynamic web project.
Você vai ver que lá vai ter uma pasta src, onde vão ficar o código fonte.

Uma outra página chamada WEB-INF, onde terá um xml, chamado web.xml. Através desse xml você pode definir servlet’s, filtros, página principal,eventos,segurança.

Porém a partir da versão 3.0 de servlet esse arquivo não é mais obrigatório, talvez seja por isso que a apostila não fala mais muito do xml.
No seu lugar podem ser usadas anotações, por exemplo, você poderia colocar no seu web.xml tags e dizendo informações do seu servlet e para onde ele mapearia.
Isso com servlet 3.0 pode ser substituído com a anotação @WebServlet na classe do servlet.

Lembrando que servlet 3.0 só em servidores mais novos.
O seu tomcat já deve dar suporte a isso.

Suas páginas, no eclipse ficam dentro da página web-content.
Se colocar dentro de web-inf não poderá acessá-las diretamente, somente sendo redirecionadas através dos servlets.

Dê uma lida na apostila e crie uns projetos para você se acostumar com a estrutura de um projeto web.

M

Sim, fiz isso no netbeans, agora vo estuda vlw pelas dicas.

Criado 27 de setembro de 2012
Ultima resposta 27 de set. de 2012
Respostas 25
Participantes 2