Sistema locadora ( Pergunta Reformulada)

Olá gente, é o seguinte, estou desenvolvendo um sistema de locadora, em que o usuário reserva dvd´s, sendo cada dvd podendo ter N cópias.

Bem, tenhu uma .JSP de buscas de dvd´s , em que a pessoa digita o o “id” e ele retorna uma lista com este. Sendo que nessa lista há em cada item o botão " Reservar" , Mas para que a operação “reservar” seja feita é necessário que digite o “id” do cliente, caso ele seja "Cadastrado"no Banco, a “situação” do DVD muda para “locado”.

Mas para isso preciso que, ao clicar no botão reservar ele redirecione para uma outra .Jsp que pegue o “id” do cliente e que logo em seguida ( se seu “id” for existente) ja conte este como “LOCADO”

Estou com dúvida nesse processo , em que ao fazer o login ( cliente) logo em seguida ele conste o dvd como “locado” ( se o cliente for existente).

Bem, abaixo vão os fontes que fiz já !

RESULTADODALISTA.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>Insert title here</title>
 </head>
 <body>
 <%@ page import="faculdade.base.Pessoa" %>
 <%@ page import="java.util.ArrayList" %>
 <%@ page import="java.util.Iterator" %>
 
 
<form name='form1'  method='GET' >
 <table border=10> 
 
 
 <tr>
 <td>Nome</td>
 <td>Idade</td>
 <td>CPF</td>
 </tr>
 <%
 	Pessoa p = null ;
 	ArrayList lista = (ArrayList)session.getAttribute("listap");
 	
 	Iterator it = lista.iterator();
 	while (it.hasNext()) {
 	p = (Pessoa)it.next();
 	
 %>
 <tr> 
 		
 		<td> <%= p.getNome() %>  </td>
 		<td> <%= p.getIdade() %> </td>
 		<td> <%= p.getCpf() %> </td>
 		<td><input type="submit" value="Editar" onClick=form1.action='EditarUsuario?nome=<%= p.getIdade() %>'></td>
 		<td><input type="submit" value="Reservar" onClick=form1.action='Reservar1.jsp'></td>
  </tr>	

 		
  
 <%
 }
 %>
  </table>
  </form>

RESERVAR.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>Insert title here</title>
</head>
<body>
<form action='ReservarFilme' method='GET'>
PARA CONFIRMAR A RESERVA DIGITE O ID DO CLIENTE:
Id Cliente: <input type='text' name='idcliente' >
<input type='submit' value='ok' >



</form>
</body>
</html>

SERVLET QUE VERIFICA SE O “ID” EXISTE !


package faculdade.dominio;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import faculdade.base.AcessoDados;
import faculdade.base.Pessoa;

/**
 * Servlet implementation class for Servlet: ReservarFilme
 *
 */
 public class ReservarFilme extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
    /* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#HttpServlet()
	 */
	public ReservarFilme() {
		super();
	}   	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String usuarioForm = request.getParameter("idcliente");
		
		//buscar a pessoa no BD
		Pessoa p = null;
		try {
			p = AcessoDados.loginCliente(usuarioForm);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		String destino;
		if (p != null)
		{
		destino = "Reservar2.jsp";
		}
		else
		{
		destino = "Reservar1.jsp";
		}
		

		//chama o JSP para exibir o objeto
    	RequestDispatcher disp;
    	disp = request.getRequestDispatcher(destino);
   		try {
			disp.forward(request, response);
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}                				

	
	 
	} 
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}   	  	    
}

Grato Reis

Olá,

Não sei se entendi bem, pois achei o post um pouco confuso. Pelo que entendi, você quer que um cliente registrado possa efetuar reservas e locações de um dvd, certo? Caso ele efetue uma reserva, o status do dvd teria que ir para ‘reservado’, e não para ‘locado’ como vc disse no post, certo?

Bom, partindo do princípio que é assim, o método de reservar um dvd teria mais ou menos essa cara:

public boolean reservarDvd( int idCliente, int idDvd )
{
      ClienteDao clienteDao = ClienteDao.getInstance();
      Cliente cli = new Cliente();
      cli = clienteDao.getClientePorId( idCliente );

      DvdDao dvdDao = DvdDao.getInstance();
      Dvd dvd = new Dvd();
      dvd = dvdDao.getDvdPorId( idDvd );

      if( < condição de reserva >)
      {
           dvd.setStatus( "reservado" );
           cli.getListaReservas().add( dvd );
           return true;
      }
      return false;     

}

É isso q vc quer?

[]´s
Tatiana

Olá ,

Bem, entendi o raciocínio, só não sei como vou passar os 2 parâmetros ao mesmo tempo, ou seja,

tenhu uma pagina .JSP em que exibe a lista de filme, ao clicar no botão reservar , ele redireciona para uma outra pagina, pedindo a comfirmação do “id” do cliente, e após o “ok” (submit) ele envia o “id” do cliente ao servlet junto com a “id” do filme que foi “pegada” lá atras da tabela(lista exibida).

não sei como passar este 2 parametros ao mesmo tempo .


BUSCA LISTA.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>Insert title here</title>
 </head>
 <body>
 <%@ page import="faculdade.base.Pessoa" %>
 <%@ page import="java.util.ArrayList" %>
 <%@ page import="java.util.Iterator" %>
 
 
<form name='form1'  method='GET' >
 <table border=10> 
 
 
 <tr>
 <td>Nome</td>
 <td>Idade</td>
 <td>CPF</td>
 </tr>
 <%
 	Pessoa p = null ;
 	ArrayList lista = (ArrayList)session.getAttribute("listap");
 	
 	Iterator it = lista.iterator();
 	while (it.hasNext()) {
 	p = (Pessoa)it.next();
 	
 %>
 <tr> 
 		
 		<td> <%= p.getNome() %>  </td>
 		<td> <%= p.getIdade() %> </td>
 		<td> <%= p.getCpf() %> </td>
 		<td><input type="submit" value="Editar" onClick=form1.action='EditarUsuario?nome=<%= p.getIdade() %>'></td>
 		<td><input type="submit" value="Reservar" onClick=form1.action='Reservar1.jsp'></td>
  </tr>	

 		
  
 <%
 }
 %>
  </table>
  </form>
 </body>
 </html>

RESERVAR1.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>Insert title here</title>
</head>
<body>
<form action='ReservarFilme' method='GET'>
PARA CONFIRMAR A RESERVA DIGITE O ID DO CLIENTE:
Id Cliente: <input type='text' name='idcliente' >
<input type='submit' value='ok' >



</form>
</body>
</html>

grato Reis

Cara estive dando uma olhada no seu código, evite colocar esses códigos Java no JSP no caso de uma lista de resultados de uma olhada nisso:

http://displaytag.homeip.net/displaytag-examples-1.1/example-paging.jsp

Caso necessite passar mais de um parametro um pouco de javascript pode te ajudar ou até mesmo usando decorator da taglib mencionada.

http://displaytag.homeip.net/displaytag-examples-1.1/example-decorator-link.jsp

Um framework MVC te pouparia esforço também:
http://vraptor2.sourceforge.net/pt/index.html

Olá amigo, você poderia dar um exemplo dessa passagem de parametros?

Vamos supor que vc tenha o id do cliente essa informação pode ser gravada em um campo hidden

<input type="hidden" name="codCliente" value="${codClie}">

Ao submeter a página você terá esse valor, caso necessite de mais parametros crie os hiddens necessários.

public void service(HttpServletRequest request, HttpServletResponse response)	throws IOException, ServletException {
    //recebendo o parametro
    Integer.parseInt(request.getParameter("codCliente")); 
    Integer.parseInt(request.getParameter("codDvd"));  
    .....
    //faz o que quizer

}
	

Valeu pedrosa e tatiana , a ajuda foi bastante válida !! valeu mesmo !!!

[]´s Reis