Olá galera, tenho que desenvolver um simples JSP, de acordo com umas classes pré definidas, a função desse JSP é, quando eu passar a seguinte URL
(http://localhost:8080/oprojeto/jspbusca?tipoconsulta=1&pesquisa=“marcelo”)
e
(http://localhost:8080/oprojeto/jspbusca?tipoconsulta=2&pesquisa="programacao)
No caso teriam que existir dois tipo de consulta, quando fosse passado como parâmetro =1, ele montaria uma tabela com todos os livros que possuem “marcelo” como um de seus autores…
E caso fosse =2, o tipo de pesquisa seria sobre o assunto do livro… no caso todos os livros que tivessem “programacao” como assunto…
As classes são as seguintes:
Classe Autor:
package pacoteprova;
import java.util.*;
public class Autor {
//private int codigo;
private String nome;
private String sobrenome;
private int codigo;
public int getCodigo(){
return codigo;
}
public String getNome(){
return nome;
}
public String getSobreNome(){
return sobrenome;
}
public Autor()
{
}
public Autor(int codigo, String nome, String sobrenome)
{
this.codigo = codigo;
this.nome = nome;
this.sobrenome = sobrenome;
}
public boolean equals(Object objeto)
{
return this.nome.equals(
( (Autor) objeto ).nome
)
&& this.sobrenome.equals(
( (Autor) objeto ).sobrenome
);
}
public String toString()
{
String nomeClase = this.getClass().getName();
String descricao = nomeClase.toUpperCase() + "\n\n\n";
descricao = descricao + "Nome: " + nome +
" -- Sobrenome: " + sobrenome;
return descricao;
}
}
Classe Livro:
package pacoteprova;
import java.util.*;
public class Livro {
private int codigo;
private String titulo;
private String assunto;
private Autor[] autores;
public Livro( int codigo,
String titulo,
String assunto,
Autor[] autores)
{
this.codigo = codigo;
this.titulo = titulo;
this.assunto = assunto;
this.autores = autores;
}
public String toString()
{
String nomeClase = this.getClass().getName();
String descricao = nomeClase.toUpperCase() + "\n\n\n";
descricao = descricao + "Titulo: " + titulo +
" -- Assunto: " + assunto;
return descricao;
}
public Autor[] pegaAutores(){
return this.autores;
}
}
Classe ColecaoAutores:
package pacoteprova;
import java.util.ArrayList;
public class ColecaoAutores {
private static ArrayList estruturaautores;
public ColecaoAutores(){
estruturaautores = new ArrayList();
Autor a1 = new Autor(1,"joao", "bastos");
Autor a2 = new Autor(2,"andre", "moreira");
Autor a3 = new Autor(3,"joana","souza");
Autor a4 = new Autor(4,"marcelo","dias");
Autor a5 = new Autor(5,"ricardo","santos");
Autor a6 = new Autor(6,"debora","almeida");
Autor a7 = new Autor(7,"rafael","soares");
Autor a8 = new Autor(8,"daniela","dantas");
Autor a9 = new Autor(9,"vania","boquimpani");
Autor a10 = new Autor(10,"flavia","vasconcelos");
estruturaautores.add(a1);
estruturaautores.add(a2);
estruturaautores.add(a3);
estruturaautores.add(a4);
estruturaautores.add(a5);
estruturaautores.add(a6);
estruturaautores.add(a7);
estruturaautores.add(a8);
estruturaautores.add(a9);
estruturaautores.add(a10);
}
public static Autor pegaAutor(int codigo){
return (Autor) estruturaautores.get(codigo);
}
}
Classe ColecaoLivros:
package pacoteprova;
import java.util.ArrayList;
public class ColecaoLivros {
private ArrayList estruturalivros;
public ColecaoLivros(){
estruturalivros = new ArrayList();
Autor[] autoreslivro1 = { ColecaoAutores.pegaAutor(1),
ColecaoAutores.pegaAutor(2),
ColecaoAutores.pegaAutor(3)
};
Autor[] autoreslivro2 = { ColecaoAutores.pegaAutor(3),
ColecaoAutores.pegaAutor(4)
};
Autor[] autoreslivro3 = { ColecaoAutores.pegaAutor(10),
ColecaoAutores.pegaAutor(4),
ColecaoAutores.pegaAutor(6),
};
Autor[] autoreslivro4 = { ColecaoAutores.pegaAutor(7),
ColecaoAutores.pegaAutor(5)
};
Livro p1 = new Livro(1,"Mergulhando no Python", "Ling. Programacao", autoreslivro1 );
Livro p2 = new Livro(2,"Core Java", "Linguagem de Programacao", autoreslivro2);
Livro p3 = new Livro(3,"Dominando Linux","Sistemas Operacionais",autoreslivro3);
Livro p4 = new Livro(4,"Redes: aplicacoes praticas","Redes",autoreslivro4);
estruturalivros.add(p1);
estruturalivros.add(p2);
estruturalivros.add(p3);
estruturalivros.add(p4);
}
public void insereLivro(Livro p){
estruturalivros.add(p);
}
public void removeLivro(Livro p){
estruturalivros.remove(p);
}
public Livro pegaUmLivro(int indice){
return (Livro) estruturalivros.get(indice);
}
public ArrayList pegaTodosLivros(){
return this.estruturalivros;
}
}
Por Fim o TAl JSP que faz a consulta:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>JSPRelacaoLivroAutores</title>
</head>
<body>
<%
int tconsulta = new Integer(request.getParameter("tipoconsulta")).intValue();
String pesq = request.getParameter("pesquisa");
ColecaoAutores colecaoAutores = new ColecaoAutores();
ColecaoLivros colecaoLivros = new ColecaoLivros();
ArrayList todosLivros = colecaoLivros.pegaTodosLivros();
ArrayList todosAutores = colecaoAutores.pegaTodosLivros();
%>
<table border=2>
<caption> <h1>Listagem de todas as Pessoas </h1></caption>
<%
Livro livroAtual;
Autor autorAtual;
if (tconsulta == 1){
%>
<tr><th> CODIGO </th><th> TITULO </th><th> ASSUNTO </th></tr>
<%
for (Object livro:todosLivros){
livroAtual = (Livro) livro;
boolean existeautor = false;
for ( Object autor:livroAtual.getAutores()){
autorAtual = (Autor) autor;
if (autorAtual.getNome().equals(pesq)){
existeautor = true;
}
}
if (existeautor){
%>
<tr><td> <%=livroAtual.getCodigo() %> </td><td> <%=livroAtual.getTitulo()%> </td><td> <%=livroAtual.getAssunto()%> </td></tr>
<% }
}
}
else if (tconsulta==2){
%>
<tr><th> CODIGO </th><th> TITULO </th><th> ASSUNTO </th><th> AUTOR </th></tr>
<tr><td> ASSUNTO: <%= pesq %> </td><td> <%="\n"%>
<% for (Object livro:todosLivros){
livroAtual = (Livro) livro;
if (livroAtual.getAssunto().toUpperCase().equals(pesq.toUpperCase())){
Autor[] autoresDoLivro = livroAtual.getAutores();
for (int i = 0 ; i < autoresDoLivro.length ; i++){
autorAtual = (Autor) autoresDoLivro[i];
if (i == 0) // se for o primeiro autor da relacao de autores desse livro...
%>
<tr><td> <%= livroAtual.getCodigo() %>
</td><td> <%=livroAtual.getTitulo() %>
<%=livroAtual.getAssunto() %>
</td><td><%= autorAtual.getNome() %>
</td></tr>
<% else %>
<tr><td> <%="" %> </td>
<td> <%= "" %> </td>
<td> <%= "" %></td>
<td> <%= autorAtual.getNome() %></td>
</tr>
<% }
}
}
%>
</TABLE>
</body>
</html>