FieroddPJ 18 de fev. de 2007
Sua duvida é em relação ao JSP ou ao SQL para gravar dados no banco?
resumindo um exemplo
no html/jsp vc cria um form q recebe os dados e então os passa a um servlet q salva no banco (metodo doPost()) e redireciona para a jsp que exibirá esses dados, caso sejam exibidos
qq coisa posta ae!
fotherPJ 18 de fev. de 2007
da forma que vc flow =)
o form passa os dados ao servlet que salva no banco de dados.
FieroddPJ 19 de fev. de 2007
Blz, mas oq vc ja fez? onde empacou?
poste suas dúvidas de uma maneira mais precisa, assim todos podem ajudar!
fotherPJ 19 de fev. de 2007
entao vamos lá
package br.com.fiskslo.db
Conexao.java
package br.com.fiskslo.db ;
import java.sql.* ;
public class Conexao & # 123 ;
public static String status = "" ;
public static Connection obterConexao & # 40 ; & # 41 ; & # 123 ;
Connection con = null ;
try & # 123 ;
Class . forName & # 40 ; "org.postgresql.Driver" & # 41 ;. newInstance & # 40 ; & # 41 ;;
String url = "jdbc:postgresql://127.0.0.1:5432/postgres" ;
con = DriverManager . getConnection & # 40 ; url , "postgres" , "852852" & # 41 ;;
status = "conexao ok" ;
& # 125 ; catch & # 40 ; SQLException e & # 41 ; & # 123 ;
status = e . getMessage & # 40 ; & # 41 ;;
& # 125 ; catch & # 40 ; ClassNotFoundException e & # 41 ; & # 123 ;
status = e . getMessage & # 40 ; & # 41 ;;
& # 125 ; catch & # 40 ; Exception e & # 41 ; & # 123 ;
status = e . getMessage & # 40 ; & # 41 ;;
& # 125 ;
return con ;
& # 125 ;
& # 125 ;
Usuarios.java
package br.com.fiskslo.db ;
import java.sql.* ;
public class Usuarios & # 123 ;
int idusuario = 0 ;
String nome = "" ;
String login = "" ;
String senha = "" ;
String status = "" ;
public void setIdusuario & # 40 ; int idusuario & # 41 ; & # 123 ;
this . idusuario = idusuario ;
& # 125 ;
public int getIdusuario & # 40 ; & # 41 ; & # 123 ;
return this . idusuario ;
& # 125 ;
public void setNome & # 40 ; String nome & # 41 ; & # 123 ;
this . nome = nome ;
& # 125 ;
public String getNome & # 40 ; & # 41 ; & # 123 ;
return this . nome ;
& # 125 ;
public void setLogin & # 40 ; String login & # 41 ; & # 123 ;
this . login = login ;
& # 125 ;
public String getLogin & # 40 ; & # 41 ; & # 123 ;
return this . login ;
& # 125 ;
public String getStatus & # 40 ; & # 41 ; & # 123 ;
return this . status ;
& # 125 ;
public void incluirUsuario & # 40 ; & # 41 ; & # 123 ;
String q = "" ;
q += "insert into loja.usuarios (idusuario, nome, login)" ;
q += "values ('" + idusuario + "', '" + nome + "', '" + login + "')" ;
Connection con = Conexao . obterConexao & # 40 ; & # 41 ;;
try & # 123 ;
Statement st = con . createStatement & # 40 ; & # 41 ;;
st . executeUpdate & # 40 ; q & # 41 ;;
status = & # 40 ; "Usuario " + nome + " incluido com sucesso!" & # 41 ;;
& # 125 ; catch & # 40 ; SQLException e & # 41 ; & # 123 ;
status = e . getMessage & # 40 ; & # 41 ;;
& # 125 ;
& # 125 ;
& # 125 ;
dentro de WebContent esta a
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastra usuario</title>
</head>
<body>
<jsp:useBean id="u" class="br.com.fiskslo.db.Usuarios" />
<jsp:setProperty name="u" property="*" />
<form method="post">
<table width="300" border="0">
<tr bgcolor="whitesmoke">
<td width="100"></td>
<td width="200"></td>
</tr>
<tr>
<td align="rigth">Id: </td>
<td><input type="text" name="idusuario"></td>
</tr>
<tr>
<td align="rigth">Nome: </td>
<td><input type="text" name="nome"></td>
</tr>
<tr>
<td align="rigth">Login: </td>
<td><input type="text" name="login"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="incluir" value="Cadastrar"></td>
</tr>
</table>
</form>
<%
if(request.getParameter("incluir") != null) {
u.incluirUsuario();
}
%>
<table bgcolor="whitesmoke" width="300" border = "0">
<tr>
<td>Status: </td>
<td><jsp:getProperty name="u" property="status" /></td>
</tr>
</table>
</body>
</html>
esta retornando o seguinte erro:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error & # 40 ; & # 41 ; that prevented it from fulfilling this request .
exception
org . apache . jasper . JasperException & # 58 ; Exception in JSP & # 58 ; / index . jsp & # 58 ; 37
34 & # 58 ; & lt ; / form & gt ;
35 & # 58 ; & lt ; %
36 & # 58 ; if & # 40 ; request . getParameter & # 40 ; "incluir" & # 41 ; != null & # 41 ; & # 123 ;
37 & # 58 ; u . incluirUsuario & # 40 ; & # 41 ;;
38 & # 58 ; & # 125 ;
39 & # 58 ; %& gt ;
40 & # 58 ; & lt ; table bgcolor = "whitesmoke" width = "300" border = "0" & gt ;
Stacktrace & # 58 ;
org . apache . jasper . servlet . JspServletWrapper . handleJspException & # 40 ; JspServletWrapper . java & # 58 ; 506 & # 41 ;
org . apache . jasper . servlet . JspServletWrapper . service & # 40 ; JspServletWrapper . java & # 58 ; 395 & # 41 ;
org . apache . jasper . servlet . JspServlet . serviceJspFile & # 40 ; JspServlet . java & # 58 ; 314 & # 41 ;
org . apache . jasper . servlet . JspServlet . service & # 40 ; JspServlet . java & # 58 ; 264 & # 41 ;
javax . servlet . http . HttpServlet . service & # 40 ; HttpServlet . java & # 58 ; 802 & # 41 ;
root cause
java . lang . NullPointerException
br . com . fiskslo . db . Usuarios . incluirUsuario & # 40 ; Usuarios . java & # 58 ; 42 & # 41 ;
org . apache . jsp . index_jsp . _jspService & # 40 ; index_jsp . java & # 58 ; 90 & # 41 ;
org . apache . jasper . runtime . HttpJspBase . service & # 40 ; HttpJspBase . java & # 58 ; 97 & # 41 ;
javax . servlet . http . HttpServlet . service & # 40 ; HttpServlet . java & # 58 ; 802 & # 41 ;
org . apache . jasper . servlet . JspServletWrapper . service & # 40 ; JspServletWrapper . java & # 58 ; 334 & # 41 ;
org . apache . jasper . servlet . JspServlet . serviceJspFile & # 40 ; JspServlet . java & # 58 ; 314 & # 41 ;
org . apache . jasper . servlet . JspServlet . service & # 40 ; JspServlet . java & # 58 ; 264 & # 41 ;
javax . servlet . http . HttpServlet . service & # 40 ; HttpServlet . java & # 58 ; 802 & # 41 ;
Alguém sabe aonde eu errei?
FieroddPJ 19 de fev. de 2007
Eu demorei um pouco pra entender essa sua jsp … rss
sinceramente eu recomendaria vc usar um servlet pra cadastrar o usuario e entao so devolver o resultado pra jsp … desse jeito ta tudo na jsp, html, taglib, logica etc!!!
mas pelo stacktrace o método incluir usuario esta gerando nullpointer na linha 42
Statement st = con.createStatement();
da uma olhada no codigo que obtem a conexão pois provavelmente não eá conectando e devolve null pra sua Connection, a nullpointer ocorre quando vc chama o metodo createStatement() na con que está null
Guilherme_MelloPJ 19 de fev. de 2007
Se possível, dê uma lida sobre MVC e descubra que usar scriplets pode cheirar mau.
peeterwebPJ 19 de fev. de 2007
Isso é verdade Guilheme, eu percebi depois que comecei a ver o JSF e JSTL eu percebi que usando scriptlets é “sujar” muito o código.
E quanto à dúvida do rapaz, eu com certeza, assim como todos que responderam o tópico, utilizaria a passagem dos dados (Strings) através de um Servlets.
Abs.
fotherPJ 20 de fev. de 2007
bom… eu reformulei o codigo…
agora a Jsp passa os dados para um Class…, o Class é responsavel por cadastrar os dados no banco de dados… e enviar o resultado para a Jsp…
So que a função que o Class está fazendo é a mesma que um servlet iria fazer… o que eu ganho em trocar o Class por um servlet?