Projeto - jsp + servlets + hibernate + jpa

9 respostas
K

Então galera…

Preciso de uma Orientação para descomplicar algumas dúvidas…

Comecei um pequeno sistema de cadastro de clientes e pedidos usando os itens JSP + SERVLETS + HIBERNATE + JPA…
criei os pacotes = DAO, BO(SERVIÇO), UTIL(HIBERNATE), SERVLETS, BEANS… ATÉ AI BLZ!
Agora o que não tô sabendo é:

*Para fazer as operações de consulta, inclusão, alteração e exclusão tem como eu usar uma “servlet” somente? Como faço?

*Como eu faço para mostrar os dados numa JSP depois que fizer a consulta no banco trazendo uma lista?

Caso alguém possa me esclarecer estas dúvidas vou agradecer muito!! =)

9 Respostas

K

Alguém pra dar um Help??

G
V

Oi pessoal, um colega me mandou um codigo para login e carrinho de compras, a duvida é: Gostaria de saber
em qual lugar eu coloco estes arquivos??? Tenho que criar um pacote para inserir eles dentro??? Estes 3 arquivos
vieram juntos numa pasta chamada libDB. É porque eu sou novo no JAVA.Ahh estou utilizando o netbeans.

Database.jsp


<%@ page import="java.sql.*" %>

<%
String DRIVER  = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String URL     = "jdbc:microsoft:sqlserver://localhost:1433";
String USUARIO = "root";
String SENHA   = "rodrigo";
%>



GetConnection.jsp

<%@ page import="java.sql.*" %>

<%
String DRIVER  = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String URL     = "jdbc:microsoft:sqlserver://localhost:1433";
String USUARIO = "root";
String SENHA   = "rodrigo";
%>




LoadDriver.jsp
<%@ include file="Database.jsp" %>

<%
try {
  Class.forName( DRIVER );
} catch ( ClassNotFoundException cnfe ) {
  String msg = "Driver JDBC não encontrado : " + cnfe.getMessage();
  throw new Exception(msg);
}
%>

Os meus outros arquivos estão tudo ok, somente estes tres que vieram juntos dentro de uma pasta
chamada libDB que eu não estou sabendo onde iseri-los. Se alguem puder dar uma força aí.

Obrigado.

G
Voo livre:

Oi pessoal, um colega me mandou um codigo para login e carrinho de compras, a duvida é: Gostaria de saber
em qual lugar eu coloco estes arquivos??? Tenho que criar um pacote para inserir eles dentro??? Estes 3 arquivos
vieram juntos numa pasta chamada libDB. É porque eu sou novo no JAVA.Ahh estou utilizando o netbeans.

Database.jsp


<%@ page import="java.sql.*" %>

<%
String DRIVER  = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String URL     = "jdbc:microsoft:sqlserver://localhost:1433";
String USUARIO = "root";
String SENHA   = "rodrigo";
%>



GetConnection.jsp

<%@ page import="java.sql.*" %>

<%
String DRIVER  = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String URL     = "jdbc:microsoft:sqlserver://localhost:1433";
String USUARIO = "root";
String SENHA   = "rodrigo";
%>




LoadDriver.jsp
<%@ include file="Database.jsp" %>

<%
try {
  Class.forName( DRIVER );
} catch ( ClassNotFoundException cnfe ) {
  String msg = "Driver JDBC não encontrado : " + cnfe.getMessage();
  throw new Exception(msg);
}
%>

Os meus outros arquivos estão tudo ok, somente estes tres que vieram juntos dentro de uma pasta
chamada libDB que eu não estou sabendo onde iseri-los. Se alguem puder dar uma força aí.

Obrigado.

Coloca na lixeira. Na moral. Não se usa mais colocar código de acesso a banco, ou qualquer código Java na JSP, coloque em classes normais e acesse apenas os resultados por EL/JSTL na JSP. E dá uma lida nesta apostila.

V
Valew, mas, se liga...

Estou com outro codigo para login e senha, mas ele não está achando a servlet que criei no pacote caminho, ou seja eu criei duas servlets
dentro do pacote caminho uma Cadastro e outra Controle, só que quando vou fazer o cadastro clicando em Enviar está dando erro, se vc
puder me dar uma ajuda aí parceiro.

index.jsp





<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Login</title>
    </head>
    <body>
        <h2>Criando um sistema de login</h2>
    </body>


<a >Login</a>



&lt;/html&gt;



Controle.jsp


&lt;form method=post name="controle" action="Controle"&gt;

Login:<br>
    &lt;INPUT TYPE=text name=login VALUE="" size="15"&gt;
    <br> Senha:<br>
        &lt;input type=password name=senha value="" size="15"&gt;
            <br><br>
                &lt;input type="submit" name="controle" value="Logar"&gt;
            &lt;/form&gt;
            <br> 
            <a >Cadastre-se</a>
            


Cadastro.jsp



&lt;form method=post name="cadastro" action="Cadastro"&gt;
    Login:<br>
    &lt;INPUT TYPE=text name=login value="" size="15"&gt;
    <br> Senha:<br>
        &lt;INPUT TYPE=password name=senha value="" size="15"&gt;
    <br> Redigite Senha<br>
        &lt;input type=password name=senha2 value="" size="15"&gt;
            <br><br>
                &lt;input type="submit" name="cadastro" value="Enviar"&gt;
            &lt;/form&gt;
            
            

Cadastro.java(servlet dentro do pacote java caminho)



package caminho;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.security.*;
import java.sql.*;
import sun.misc.*;


public class Cadastro extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();
String login = request.getParameter("login");
String senha = request.getParameter("senha");
String senha2 = request.getParameter("senha2");
if(senha.equals(senha2)){
    // criptografa
    byte chave1[]=login.getBytes();
    login = new BASE64Encoder().encode(chave1);
    byte chave2[] = senha.getBytes();
    senha=new BASE64Encoder().encode(chave2);
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","rodrigo");
PreparedStatement stmt=con.prepareStatement("insert into usuario values(?,?)");
            stmt.setString(1,login);
            stmt.setString(2,senha);
            stmt.execute();
            stmt.close();
            out.print("<br>senha:"+senha);
            out.print("<br>Login:"+login);
}catch (Exception e){
out.print(e.getMessage());
}


}
      }
}




Controle.java(servlet dentro do pacote java caminho)



package caminho;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import sun.misc.*;
import java.sql.*;

public class Controle extends HttpServlet {
     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
       
        
PrintWriter out = response.getWriter();
String login = request.getParameter("login");
String senha = request.getParameter("senha");
byte chave1[] = login.getBytes();
byte chave2[] = senha.getBytes();
    login = new BASE64Encoder().encode(chave1);
    senha = new BASE64Encoder().encode(chave2);
    
    try{
Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","rodrigo");
PreparedStatement stmt=con.prepareStatement("select * from usuario where login=? and senha=?");
            stmt.setString(1,login);
            stmt.setString(2,senha);
            ResultSet rs=stmt.executeQuery();
            while(rs.next()){
           out.print("Acesso ok,login e senha confere");
            break;
    }
    
     }catch(Exception e){
             out.print(e.getMessage());
     }
     }
}
E meu banco de dados ficou assim:

create database login;
use login;
create table usuario(login varchar(15), senha varchar(15));
Ahh e obrigado pela apostila, muito boa
G
Voo livre:
Valew, mas, se liga...

Estou com outro codigo para login e senha, mas ele não está achando a servlet que criei no pacote caminho, ou seja eu criei duas servlets
dentro do pacote caminho uma Cadastro e outra Controle, só que quando vou fazer o cadastro clicando em Enviar está dando erro, se vc
puder me dar uma ajuda aí parceiro.

index.jsp





&lt;html&gt;
    &lt;head&gt;
        &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
        &lt;title&gt;Sistema de Login&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h2&gt;Criando um sistema de login&lt;/h2&gt;
    &lt;/body&gt;


<a >Login</a>



&lt;/html&gt;



Controle.jsp


&lt;form method=post name="controle" action="Controle"&gt;

Login:<br>
    &lt;INPUT TYPE=text name=login VALUE="" size="15"&gt;
    <br> Senha:<br>
        &lt;input type=password name=senha value="" size="15"&gt;
            <br><br>
                &lt;input type="submit" name="controle" value="Logar"&gt;
            &lt;/form&gt;
            <br> 
            <a >Cadastre-se</a>
            


Cadastro.jsp



&lt;form method=post name="cadastro" action="Cadastro"&gt;
    Login:<br>
    &lt;INPUT TYPE=text name=login value="" size="15"&gt;
    <br> Senha:<br>
        &lt;INPUT TYPE=password name=senha value="" size="15"&gt;
    <br> Redigite Senha<br>
        &lt;input type=password name=senha2 value="" size="15"&gt;
            <br><br>
                &lt;input type="submit" name="cadastro" value="Enviar"&gt;
            &lt;/form&gt;
            
            

Cadastro.java(servlet dentro do pacote java caminho)



package caminho;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.security.*;
import java.sql.*;
import sun.misc.*;


public class Cadastro extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();
String login = request.getParameter("login");
String senha = request.getParameter("senha");
String senha2 = request.getParameter("senha2");
if(senha.equals(senha2)){
    // criptografa
    byte chave1[]=login.getBytes();
    login = new BASE64Encoder().encode(chave1);
    byte chave2[] = senha.getBytes();
    senha=new BASE64Encoder().encode(chave2);
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","rodrigo");
PreparedStatement stmt=con.prepareStatement("insert into usuario values(?,?)");
            stmt.setString(1,login);
            stmt.setString(2,senha);
            stmt.execute();
            stmt.close();
            out.print("<br>senha:"+senha);
            out.print("<br>Login:"+login);
}catch (Exception e){
out.print(e.getMessage());
}


}
      }
}




Controle.java(servlet dentro do pacote java caminho)



package caminho;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import sun.misc.*;
import java.sql.*;

public class Controle extends HttpServlet {
     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
       
        
PrintWriter out = response.getWriter();
String login = request.getParameter("login");
String senha = request.getParameter("senha");
byte chave1[] = login.getBytes();
byte chave2[] = senha.getBytes();
    login = new BASE64Encoder().encode(chave1);
    senha = new BASE64Encoder().encode(chave2);
    
    try{
Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","rodrigo");
PreparedStatement stmt=con.prepareStatement("select * from usuario where login=? and senha=?");
            stmt.setString(1,login);
            stmt.setString(2,senha);
            ResultSet rs=stmt.executeQuery();
            while(rs.next()){
           out.print("Acesso ok,login e senha confere");
            break;
    }
    
     }catch(Exception e){
             out.print(e.getMessage());
     }
     }
}
E meu banco de dados ficou assim:

create database login;
use login;
create table usuario(login varchar(15), senha varchar(15));
Ahh e obrigado pela apostila, muito boa


Qual erro está dando? Verifique no web.xml como os servlets estão mapeados, provavelmente é /Cadastro e /Caminho

V
G

Voo livre:

Meu form ficou: &lt;form method=post name="controle" action="/Controle"&gt; e &lt;form method=post name="controle" action="/Cadastro"&gt;
Quando eu clico em logar ou cadastra aparece uma outra pag com a msg: Access denied for user 'root'@'localhost' (using password: YES)

Veja como está meu Web xml:

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;Cadastro&lt;/servlet-name&gt;
        &lt;servlet-class&gt;caminho.Cadastro&lt;/servlet-class&gt;
    &lt;/servlet&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;Controle&lt;/servlet-name&gt;
        &lt;servlet-class&gt;caminho.Cadastro&lt;/servlet-class&gt;
    &lt;/servlet&gt;
    
    
   &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;Cadastro&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/Cadastro&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;Controle&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/Controle&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    &lt;session-config&gt;
        &lt;session-timeout&gt;
            30
        &lt;/session-timeout&gt;
    &lt;/session-config&gt;
    &lt;welcome-file-list&gt;
        &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
        &lt;/welcome-file-list&gt;
    &lt;/web-app&gt;

Este web.xml gerou sozinho, uso o netbeans.

Abç


O erro é auto-explicativo, você não está conseguindo acessar o banco por questões de usuário e/ou senha, reveja as configurações do seu banco de dados, se o usuário e senha são os mesmos que estão em Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","rodrigo");

V
Criado 24 de março de 2009
Ultima resposta 25 de abr. de 2009
Respostas 9
Participantes 3