Projeto - jsp + servlets + hibernate + jpa

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!! =)

Alguém pra dar um Help??

[quote]

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.

[code] 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);
}
%>
[/code]

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.[/quote]

[quote=Voo livre][quote]

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.

[code] 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);
}
%>
[/code]

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.[/quote][/quote]

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.

[quote]
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.[/quote]

[code] 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>

Login

</html>

Controle.jsp

<form method=post name=“controle” action=“Controle”>

Login:

<INPUT TYPE=text name=login VALUE="" size=“15”>

Senha:

<input type=password name=senha value="" size=“15”>



<input type=“submit” name=“controle” value=“Logar”>
</form>


Cadastre-se

Cadastro.jsp

<form method=post name=“cadastro” action=“Cadastro”>
Login:

<INPUT TYPE=text name=login value="" size=“15”>

Senha:

<INPUT TYPE=password name=senha value="" size=“15”>

Redigite Senha

<input type=password name=senha2 value="" size=“15”>



<input type=“submit” name=“cadastro” value=“Enviar”>
</form>

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(“
senha:”+senha);
out.print(“
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());
 }
 }

}

[/code]


E meu banco de dados ficou assim:

create database login;
use login;
create table usuario(login varchar(15), senha varchar(15));

[quote]
Ahh e obrigado pela apostila, muito boa[/quote]

[quote=Voo livre]

[quote]
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.[/quote]

[code] 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>

Login

</html>

Controle.jsp

<form method=post name=“controle” action=“Controle”>

Login:

<INPUT TYPE=text name=login VALUE="" size=“15”>

Senha:

<input type=password name=senha value="" size=“15”>



<input type=“submit” name=“controle” value=“Logar”>
</form>


Cadastre-se

Cadastro.jsp

<form method=post name=“cadastro” action=“Cadastro”>
Login:

<INPUT TYPE=text name=login value="" size=“15”>

Senha:

<INPUT TYPE=password name=senha value="" size=“15”>

Redigite Senha

<input type=password name=senha2 value="" size=“15”>



<input type=“submit” name=“cadastro” value=“Enviar”>
</form>

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(“
senha:”+senha);
out.print(“
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());
 }
 }

}

[/code]


E meu banco de dados ficou assim:

create database login;
use login;
create table usuario(login varchar(15), senha varchar(15));

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

[quote=Voo livre][quote]

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=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&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ç
[/quote][/quote]
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");