Eu tenho que colocar na sessão?

0 respostas
BLV_DOOM_JAVA

Oi pessoal, estou fazendo um sisteminha da faculdade de uma transportadora.
bom tenho duas duvidas cruéis...
mas primeiro meu código:

<!-- tela de listagem de veiculos -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:import url="/cabecalho.jsp" />

<form id="formconsultaveiculo" name="formconsultaveiculo" method="post">

<center>
<table>
	<tr>
		<td colspan="4"
			style="background-color: navy; color: white; text-align: center; font-size: medium; font-weight: bold">
		Consulta de Veiculos</td>
	</tr>
	<tr>
		<td style="font-size: x-small; color: black">Modelo:</td>
		<td><input type="text" style="font-size: x-small;" name="tmodelo"
			id="tmodelo"></td>
		<td style="font-size: x-small; color: black">Estado Geral:</td>
		<td><select style="font-size: x-small; width: 145px"
			name="sestadogeral" id="sestadogeral">
			<option id="opt_estado_geral0" label="Selecione">Selecione</option>
			<option id="opt_estado_geral1" label="Novo">Novo</option>
			<option id="opt_estado_geral2" label="Bom">Bom</option>
			<option id="opt_estado_geral3" label="Regular">Regular</option>
			<option id="opt_estado_geral4" label="Ruim">Ruim</option>
		</select></td>
	</tr>
	<tr>
		<td style="font-size: x-small; color: black">Chassi:</td>
		<td><input type="text" style="font-size: x-small;" name="tchassi"
			id="tchassi"></td>
		<td style="font-size: x-small; color: black">Regiao de Entrega:</td>
		<td><input type="text" style="font-size: x-small;"
			name="tregiaoentrega" id="tregiaoentrega"></td>
	</tr>
	<tr>
		<td style="font-size: x-small; color: black">Placa:</td>
		<td><input type="text" style="font-size: x-small;" name="tplaca"
			id="tplaca"></td>
		<td colspan="2" style="text-align: right"><input type="submit"
			style="border-color: darkblue; border-style: ridge; width: 70px;"
			value="Pesquisar" id="bpesquisar"> <input type="reset"
			style="border-color: darkblue; border-style: ridge; width: 70px;"
			value="Limpar" id="blimpar"></td>
	</tr>
</table>
</center>
<hr />
<center>
<table>
	<tr>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Id</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">		
		Chassi</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Marca</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Modelo</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Categoria</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Ano</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Placa</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Estado Geral</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Regiao de Entrega</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Tipo de Mercadoria</td>
		<td
			style="background-color: navy; color: white; text-align: center; font-size: small; font-weight: bold">
		Capacidade de Carga</td>
	</tr>
	<c:forEach var="veiculo" items="${veiculos.lista}">
	  <tr>
	    <td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.id}"/></td>
				<td
			style="color: black; text-align: center; font-size: small;">
		<c:url value="telaedicaoveiculo.jsp" var="editar">
		  <c:param name="id" value="${veiculo.id}" />
		  <c:param name="chassi" value="${veiculo.chassi}" />
		  <c:param name="marca" value="${veiculo.marca}" />
		  <c:param name="modelo" value="${veiculo.modelo}"/>
		  <c:param name="categoria" value="${veiculo.categoria}" />
		  <c:param name="ano" value="${veiculo.ano}" />
		  <c:param name="placa" value="${veiculo.placa}" />
		  <c:param name="estado_geral" value="${veiculo.estado_geral}" />
		  <c:param name="regiao_entrega" value="${veiculo.regiao_entrega}" />
		  <c:param name="tipo_mercadoria" value="${veiculo.tipo_mercadoria}" />
		  <c:param name="capacidade" value="${veiculo.capacidade}" />
		</c:url>
		<a href="${editar}"><c:out value="${veiculo.chassi}"/></a></td>
	    <td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.marca}"/></td>
		<td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.modelo}"/></td>
		<td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.categoria}"/></td>
		<td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.ano}"/></td>
		<td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.placa}"></c:out></td>
		<td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.estado_geral}"/></td>
		<td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.regiao_entrega}"/></td>
		<td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.tipo_mercadoria}"/></td>
		<td
			style="color: black; text-align: center; font-size: small;">
		<c:out value="${veiculo.capacidade}"/></td>
		<td
			style="color: black; text-align: center; font-size: small;">
		<c:url value="excluirveiculo.do" var="deletar">
		  <c:param name="id" value="${veiculo.id}" />
		</c:url>
		<a href="${deletar}">Deletar</a>
		</td>  
	  </tr>
	</c:forEach>
</table>
</center>
</form>
<br/>
<center><a href="telainclusaoveiculo.jsp"
	style="border-color: darkblue; border-style: ridge; width: 100px; font-size:15; font-family: sans-serif"
	id="lnovo">NOVO</a></center>
<c:import url="/rodape.jsp" />
package br.com.transportesmaster.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import br.com.transportesmaster.model.VeiculoMODEL;

public class VeiculoDAO extends GenericDAO {
	
	/*
	 * String que representam os comando SQL utilizados na classe
	 */
	private static final String QUERY_INSERT = 
		"insert into veiculo (marca_veiculo, " 			+
		"modelo_veiculo, categoria_veiculo, " 		+
		"ano_veiculo, placa_veiculo, chassi_veiculo, " 	+
		"estado_geral_veiculo, regiao_entrega_veiculo, " +
		"tipo_mercadoria_veiculo, capacidade_veiculo) " +
		"values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
	private static final String QUERY_UPDATE =
		"update veiculo set marca_veiculo = ?, " 					+
		"modelo_veiculo = ?, categoria_veiculo = ?, " 				+
		"ano_veiculo = ?, placa_veiculo = ?, " 						+
		"chassi_veiculo = ?, estado_geral_veiculo = ?, " 			+
		"regiao_entrega_veiculo = ?, tipo_mercadoria_veiculo = ?" 	+
		", capacidade_veiculo = ? where id = ?";
	private static final String QUERY_DELETE = 
		"update veiculo set status_veiculo = 0 where id_veiculo = ?";
	
	// método construtor sem argumentos
	public VeiculoDAO() throws ClassNotFoundException, SQLException {
	} // fim do construtor
	
	// método para inserir um veiculo no banco de dados
	public void incluirVeiculo( VeiculoMODEL veiculoMODEL ) throws SQLException, ClassNotFoundException {
		Connection connection = super.conectar();
		PreparedStatement stmt = connection.prepareStatement( QUERY_INSERT );
		stmt.setString( 1, veiculoMODEL.getMarca() );
		stmt.setString( 2, veiculoMODEL.getModelo() );
		stmt.setString( 3, veiculoMODEL.getCategoria() );
		stmt.setInt( 4, veiculoMODEL.getAno() );
		stmt.setString( 5, veiculoMODEL.getPlaca() );
		stmt.setString( 6, veiculoMODEL.getChassi() );
		stmt.setString( 7, veiculoMODEL.getEstado_geral() );
		stmt.setString( 8, veiculoMODEL.getRegiao_entrega() );
		stmt.setString( 9, veiculoMODEL.getTipo_mercadoria() );
		stmt.setDouble( 10, veiculoMODEL.getCapacidade() );
		stmt.execute();
		stmt.close();
		super.desconectar( connection );
	} // fim do método incluirVeiculo
	
	// método para editar veiculo no banco de dados
	public void editarVeiculo( VeiculoMODEL veiculoMODEL ) throws SQLException, ClassNotFoundException {
		Connection connection = super.conectar();
		PreparedStatement stmt = connection.prepareStatement( QUERY_UPDATE );
		stmt.setString( 1, veiculoMODEL.getMarca() );
		stmt.setString( 2, veiculoMODEL.getModelo() );
		stmt.setString( 3, veiculoMODEL.getCategoria() );
		stmt.setInt( 4, veiculoMODEL.getAno() );
		stmt.setString( 5, veiculoMODEL.getPlaca() );
		stmt.setString( 6, veiculoMODEL.getChassi() );
		stmt.setString( 7, veiculoMODEL.getEstado_geral() );
		stmt.setString( 8, veiculoMODEL.getRegiao_entrega() );
		stmt.setString( 9, veiculoMODEL.getTipo_mercadoria() );
		stmt.setDouble( 10, veiculoMODEL.getCapacidade() );
		stmt.setInt( 11, veiculoMODEL.getId() );
		stmt.execute();
		stmt.close();
		super.desconectar( connection );
	} // fim do método editarVeiculo
	
	// método para deletar veiculo do banco de dados
	public void deletarVeiculo( VeiculoMODEL veiculoMODEL ) throws ClassNotFoundException, SQLException {
		Connection connection = super.conectar();
		PreparedStatement stmt = connection.prepareStatement( QUERY_DELETE );
		stmt.setInt( 1, veiculoMODEL.getId() );
		stmt.execute();
		stmt.close();
		super.desconectar( connection );
	} // fim do método deletarVeiculo
	
	// método para gerar um comando sql dinamicamente
	private String createQuery(VeiculoMODEL veiculoMODEL) {
		StringBuilder builder = new StringBuilder();
		builder.append("SELECT * FROM veiculo WHERE 1 = 1 AND status_veiculo = 1");
		if(!veiculoMODEL.getModelo().equals(""))
			builder.append(" AND modelo_veiculo = \"" + veiculoMODEL.getModelo() + "\" ");
		if(!veiculoMODEL.getEstado_geral().equals("") && !veiculoMODEL.getEstado_geral().equals(" "))
			builder.append(" AND estado_geral_veiculo = \"" + veiculoMODEL.getEstado_geral() + "\"");
		if(!veiculoMODEL.getChassi().equals(""))
			builder.append(" AND chassi_veiculo = \"" + veiculoMODEL.getChassi() + "\" ");
		if(!veiculoMODEL.getRegiao_entrega().equals(""))
			builder.append(" AND regiao_entrega_veiculo = \"" + veiculoMODEL.getRegiao_entrega() + "\" ");
		if(!veiculoMODEL.getPlaca().equals(""))
			builder.append(" AND placa_veiculo = \"" + veiculoMODEL.getPlaca() + "\" ");
		return builder.toString();
	}
	
	// método para gerar lista de todos os elementos da tabela veiculos
	public List< VeiculoMODEL > getLista(VeiculoMODEL veiculoMODEL) throws SQLException, ClassNotFoundException {
		List< VeiculoMODEL > lista = new ArrayList< VeiculoMODEL >();
		Connection connection = super.conectar();
		Statement stm = connection.createStatement();
		ResultSet rs = stm.executeQuery(createQuery(veiculoMODEL));
			while ( rs.next() ) {
				VeiculoMODEL veiculo = new VeiculoMODEL();
				veiculoMODEL.setId( rs.getInt( "id" ) );
				veiculoMODEL.setMarca( rs.getString( "marca" ) );
				veiculoMODEL.setModelo( rs.getString( "modelo" ) );
				veiculoMODEL.setAno( rs.getInt( "ano" ) );
				veiculoMODEL.setPlaca( rs.getString( "placa" ) );
				veiculoMODEL.setCategoria( rs.getString( "categoria" ) );
				veiculoMODEL.setChassi( rs.getString( "chassi" ) );
				veiculoMODEL.setEstado_geral( rs.getString( "estado_geral" ) );
				veiculoMODEL.setRegiao_entrega( rs.getString( "regiao_entrega" ) );
				veiculoMODEL.setTipo_mercadoria( rs.getString( "tipo_mercadoria" ) );
				veiculoMODEL.setCapacidade( rs.getDouble( "capacidade" ) );
				lista.add(veiculo);
			}
			rs.close();
			stm.close();
			super.desconectar( connection );
			return lista;
	} // fim do método getListaAll
	
} // fim da classe
package br.com.transportesmaster.service;

import java.sql.SQLException;
import java.util.List;

import br.com.transportesmaster.dao.VeiculoDAO;
import br.com.transportesmaster.dto.VeiculoDTO;
import br.com.transportesmaster.model.VeiculoMODEL;

public class VeiculoSERVICE {

	public void incluirVeiculo( VeiculoDTO veiculoDTO ) throws SQLException, ClassNotFoundException {
		VeiculoDAO veiculoDAO = new VeiculoDAO();
		VeiculoMODEL veiculoMODEL = carregar_dados( veiculoDTO );
		veiculoDAO.incluirVeiculo( veiculoMODEL );
	}

	public void editarVeiculo( VeiculoDTO veiculoDTO ) throws SQLException, ClassNotFoundException {
		VeiculoDAO veiculoDAO = new VeiculoDAO();
		VeiculoMODEL veiculoMODEL = carregar_dados( veiculoDTO );
		veiculoDAO.editarVeiculo( veiculoMODEL );
	}

	public void deletarVeiculo(VeiculoDTO veiculoDTO) throws ClassNotFoundException, SQLException {
		VeiculoDAO veiculoDAO = new VeiculoDAO();
		VeiculoMODEL veiculoMODEL = carregar_dados( veiculoDTO );
		veiculoDAO.deletarVeiculo( veiculoMODEL );
	}

	public List< VeiculoMODEL > getLista(VeiculoDTO veiculoDTO) throws SQLException, ClassNotFoundException {
		VeiculoMODEL veiculoMODEL = carregar_dados(veiculoDTO);
		return new VeiculoDAO().getLista(veiculoMODEL);
	}

	private VeiculoMODEL carregar_dados(VeiculoDTO veiculoDTO) {
		VeiculoMODEL veiculoMODEL = new VeiculoMODEL();
		veiculoMODEL.setId(veiculoDTO.getId());
		veiculoMODEL.setMarca(veiculoDTO.getMarca());
		veiculoMODEL.setModelo(veiculoDTO.getModelo());
		veiculoMODEL.setCategoria(veiculoDTO.getCategoria());
		veiculoMODEL.setPlaca(veiculoDTO.getPlaca());
		veiculoMODEL.setAno(veiculoDTO.getAno());
		veiculoMODEL.setChassi(veiculoDTO.getChassi());
		veiculoMODEL.setEstado_geral(veiculoDTO.getEstado_geral());
		veiculoMODEL.setRegiao_entrega(veiculoDTO.getRegiao_entrega());
		veiculoMODEL.setTipo_mercadoria(veiculoDTO.getTipo_mercadoria());
		veiculoMODEL.setCapacidade(veiculoDTO.getCapacidade());
		return veiculoMODEL;
	}
	
}
package br.com.transportesmaster.model;

public class VeiculoMODEL {
	
	private int id;
	private String modelo;
	private String marca;
	private String categoria;
	private int ano;
	private String placa;
	private String chassi;
	private String estado_geral;
	private String regiao_entrega;
	private String tipo_mercadoria;
	private double capacidade;
	
	public VeiculoMODEL() {	
	}

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getModelo() {
		return modelo;
	}
	public void setModelo(String modelo) {
		this.modelo = modelo;
	}
	public String getMarca() {
		return marca;
	}
	public void setMarca(String marca) {
		this.marca = marca;
	}
	public String getCategoria() {
		return categoria;
	}
	public void setCategoria(String categoria) {
		this.categoria = categoria;
	}
	public int getAno() {
		return ano;
	}
	public void setAno(int ano) {
		this.ano = ano;
	}
	public String getPlaca() {
		return placa;
	}
	public void setPlaca(String placa) {
		this.placa = placa;
	}
	public String getChassi() {
		return chassi;
	}
	public void setChassi(String chassi) {
		this.chassi = chassi;
	}
	public String getEstado_geral() {
		return estado_geral;
	}
	public void setEstado_geral(String estadoGeral) {
		estado_geral = estadoGeral;
	}
	public String getRegiao_entrega() {
		return regiao_entrega;
	}
	public void setRegiao_entrega(String regiaoEntrega) {
		regiao_entrega = regiaoEntrega;
	}
	public String getTipo_mercadoria() {
		return tipo_mercadoria;
	}
	public void setTipo_mercadoria(String tipoMercadoria) {
		tipo_mercadoria = tipoMercadoria;
	}
	public double getCapacidade() {
		return capacidade;
	}
	public void setCapacidade(double capacidade) {
		this.capacidade = capacidade;
	}

}
package br.com.transportesmaster.dto;

public class VeiculoDTO {
	
	private int id;
	private String modelo;
	private String marca;
	private String categoria;
	private int ano;
	private String placa;
	private String chassi;
	private String estado_geral;
	private String regiao_entrega;
	private String tipo_mercadoria;
	private double capacidade;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getModelo() {
		return modelo;
	}
	public void setModelo(String modelo) {
		this.modelo = modelo;
	}
	public String getMarca() {
		return marca;
	}
	public void setMarca(String marca) {
		this.marca = marca;
	}
	public String getCategoria() {
		return categoria;
	}
	public void setCategoria(String categoria) {
		this.categoria = categoria;
	}
	public int getAno() {
		return ano;
	}
	public void setAno(int ano) {
		this.ano = ano;
	}
	public String getChassi() {
		return chassi;
	}
	public void setChassi(String chassi) {
		this.chassi = chassi;
	}
	public String getEstado_geral() {
		return estado_geral;
	}
	public void setEstado_geral(String estadoGeral) {
		estado_geral = estadoGeral;
	}
	public String getRegiao_entrega() {
		return regiao_entrega;
	}
	public void setRegiao_entrega(String regiaoEntrega) {
		regiao_entrega = regiaoEntrega;
	}
	public String getTipo_mercadoria() {
		return tipo_mercadoria;
	}
	public void setTipo_mercadoria(String tipoMercadoria) {
		tipo_mercadoria = tipoMercadoria;
	}
	public double getCapacidade() {
		return capacidade;
	}
	public void setCapacidade(double capacidade) {
		this.capacidade = capacidade;
	}
	public void setPlaca(String placa) {
		this.placa = placa;
	}
	public String getPlaca() {
		return placa;
	}

}

Bom pessoal...
minha 1 duvida é que nessa tela de listagem a lista não é preenchida no carregamento da página (isso é intensonal), pois ela deve ser preenchida de acordo com uma pesquisa.
bom minha duvida é, como eu faço para recarregar a pagina após a consulta com a tabela ja preenchida com os veiculo encontrados na pesquisa.
Eu tenho que colocar a lista na sessão? qual a melhor pratica?
a segunda duvida é...
como vcs podem ver, eu estou utilizando o design pattern (ou tentando usar) DTO (Data Transfer Object).
Minha duvida e se eu devo colocar todos meus objetos dto na sessão ou trata-los direto no servlet de controle.
Ah, gostaria tbm que me mostrassem o procedimento de colocar os objetos na sessão, pois ainda estou apanhando com web.
Estou utilizando JSP e Servlet puro, sem nenhuma framework.

Obrigado pessoal!

Criado 29 de outubro de 2010
Respostas 0
Participantes 1