Formatar a data em DATE usando servlet no aplicativo

Pessoal o aplicativo abaixo faz o seguinte:
Na classe Lancamento.jsp eu tenho as vars: data, descricao e valor
index.jsp = solicita inserir lançamentos de despesas via campo de “data” , “valor” e ''descrição" e chama a pag incluirlacamento.jsp
incluirlancamento.jsp = exibe os lançamentos efetuados e pede se quer inserir mais (volta pro index.jsp) ou gravar (passa os dados pro servlet)
servletController.jsp = grava os lançamentos (via lancamentoIO.jsp) num arquivo texto e chama a pag resultado.jsp e passa a ela os laçamentos gravados

Minha dúvida eh a seguinte:
No meu aplicativo eu considerei que a data vem como string do index.jsp para o incluirlancamento.jsp entao foi somente nessa página que fiz a conversão em Date para salvar o dado na variável data (q eh do tipo Date) na classe Lancamento.
Mas no código da apostila do Professor Antonio Passos (o qual paguei pelo acesso) ele formata a data tanto no incluirlancamento.jsp quanto no resultado.jsp. E além disso ele formata a data até na saidas de dados pro usuário que essas duas páginas tem, eqto eu nessas saidas apenas uso

<%=lancamento.getData()%>

Abaixo os codigos
index.jsp

<body>
<jsp:include page="cabecalho.jsp">
	<jsp:param value="DAWJ - AppWebController" name="cabecalho"/>
</jsp:include>
	<form action="incluirlancamento.jsp" method="post">
		<fieldset style="width: 550px">
			<legend><b>Lancamentos</b></legend>
			<table>
				<tr>
					<td align"right">Data</td>
					<td><input type="text" name="data"></td>
				</tr>
				<tr>
					<td align"right">Descrição</td>
					<td><input type="text" name="descricao"></td>
				</tr>
				<tr>
					<td align"right">Valor</td>
					<td><input type="text" name="valor"></td>
				</tr>
			</table>
		</fieldset>
		<br />
		<input type="submit" value="incluir lançamento" />
		<input type="reset" value="Limpar" />
	</form>
	<p>ùltima gravação realizda: ${cookie.DataUltimaGravacao.value}</p>
	<jsp:include page="rodape.jsp" />
</body>

incluirlancamento.jsp

<body>
	<jsp:include page="cabecalho.jsp">
		<jsp:param value="DAWJ - AppWebController" name="cabecalho" />
	</jsp:include>
	<jsp:useBean id="lancamentoBean" class="net.rcy.appwebcontroller.modelo.Lancamento" />
	<jsp:useBean id="lancamentos" class="java.util.ArrayList" scope="session" />
	
	<%
		String parametroData = request.getParameter("data");
		DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
		formatador.setLenient(false);
	%>
	
	<jsp:setProperty name="lancamentoBean" property="data" value="<%=(Date)formatter.parse(parametroData) %>"/>
	<jsp:setProperty name="lancamentoBean" property="descricao" param="descricao" />
	<jsp:setProperty name="lancamentoBean" property="valor" param="valor" />
	
	<%
		lancamentos.add(lancamentoBean);
	%>
	
	<fieldset style="width= 550px">
		<legend><b>Lançamento incluido</b></legend>
		<table>
			<tr>
				<td><b>Data:</b></td>
				<td>${lancamentoBean.data}</td>
			</tr>
			<tr>
				<td><b>Descrição:</b></td>
				<td>${lancamentoBean.descricao}</td>
			</tr>
			<tr>
				<td><b>Valor:</b></td>
				<td>${lancamentoBean.valor}</td>
			</tr>
		</table>
	</fieldset>
	<p>
		<input type="button" value="Incluir novo laçamento"onclick="javascript:document.location='index.jsp'"/> 
		<input type="button" value="Gravar lançamentos" onclick="javascript:document.location='ServletController'"/> 
	</p>
	<jsp:include page="rodape.jsp" />
</body>

resultado.jsp

<body>
	<jsp:include page="cabecalho.jsp">
		<jsp:param value="DAWJ - AppWebController" name="cabecalho"/>
	</jsp:include>
	<jsp:useBean id="lancamentos" class="java.util.ArrayList" scope="session" />
	
                // pq ele pega a var String parametroData pra formatar se ela ja foi convertida (no incluirlancamento.jsp) pra Date e salva no objeto Lancamento.data.
                //nem precisava essa formatação abaixo no meu entender, pois la na saida podia usar <td><%=lancamento.getData()%></td>  
	<% 
                String parametroData = request.getParameter("data"); 
                DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 
                formatter.setLenient(false); 
                %>
	
	
	<h2>Lançamentos Gravados</h2>
	<table border="1">
		<tr>
			<th>Data</th>
			<th>Despesas</th>
			<th>Valor</th>
		</tr>
		<%
			Iterator iterator = lancamentos.iterator();
			while (iterator.hasNext()){
				Lancamento lancamento = (Lancamento) iterator.next();
		%>
                                // pq ele usa formatter.format(lancamento.getData()) e formata se nao precisa e basta usar lancamento.getData()
                                // tb nem entendi esse formatter.format(lancamento.getData()) dele.
		<tr>
			<td><%=formatter.format(lancamento.getData())%></td> //nessa saida ele formata e eu so uso <%=lancamento.getData()%>
			<td><%=lancamento.getDescricao()%></td>
			<td><%=lancamento.getValor()%></td>
		</tr>
		<%} %>
		<% session.removeAttribute("lancamentos");%>
	</table>
	<input type="button" value="Gravar novos lançamentos"
	onclick="javascript:document.location='index.jsp'" />
</body>

a classe Lancamento.jsp

public class Lancamento {
	
	private Date data;
	private String descricao;
	private Double valor;
	
	public void lancamento(Date data, String descricao, Double valor){
		this.data = data;
		this.descricao = descricao;
		this.valor = valor;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Double getValor() {
		return valor;
	}

	public void setValor(Double valor) {
		this.valor = valor;
	}
	
}

valeu pessoal