Eu tenho que colocar na sessão?

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

[code]
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

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

Consulta de Veiculos
Modelo: Estado Geral: Selecione Novo Bom Regular Ruim
Chassi: Regiao de Entrega:
Placa:

Id Chassi Marca Modelo Categoria Ano Placa Estado Geral Regiao de Entrega Tipo de Mercadoria Capacidade de Carga Deletar

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

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

}[/code]

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

}[/code]

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

}[/code]

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!