Bom, tou fazendo a apostila da fj21 da Caelum e chegou em uma parte em que fala para colocar um link na tabela para poder alterar e tudo mais e passar o id por ela. Bom criei uma nova servlet e passo no link ela primeiro para popular e outra servlet pra poder pegar os dados e finalizar, enfim minha duvida é, ali onde passo o caminho da servlet no link teria como eu esconder a url que fica ali em cima e ficar só o /altera-contato.jsp sem o nome da servlet e o id que tá indo?
Pelo que entendi, você quer saber por que não passar a página altera-contato.jsp diretor no link. Por que tem que passar um link para um servlet com parâmetros?
Se você chamar a página altera-contato.jsp direto no link, como essa página vai obter uma referência para o contato selecionado na lista?
Pelo que eu entendi na apostila, no link é colocada a url mvc e alguns parâmetros. A url mvc está direcionada para o servlet ControllerServlet (no web.xml). Esse servlet recebe um parâmetro chamado logica, contendo o nome da classe que contém a lógica a ser executada. Recebe também o parâmetro id.
A classe que contém a lógica se chama AlteraContatoLinkLogica. No método execute() essa classe irá obter o objeto Contato utilizando o id recebido. Irá direcionar para a página altera-contato.jsp, passando o objeto Contato como atributo.
Só achei um pouco estranho o nome AlteraContatoLinkLogica. Estou entendendo que essa classe irá obter o contato selecionado na lista e direcionar para a página altera-contato.jsp. Ou seja, ela ainda não vai alterar, só vai preparar a tela onde será feita a alteração.
Então acho que a classe que você chama de AlteraContatoLinkLogica poderia se chamar IniciaAlteracaoLogica, pois ela na verdade só inicia a alteração.
A url quando dou o alterar fica assim /mvc?logica=AlteraContatoLinkLogica&id=1 que é usada pra passar o id pra poder procurar no banco e retornar os dados e tudo mais o que eu queria era esconder isso, entendeu?