Pegar parêmetro via URL com JSP e Servlets

Pessoal,

estou fazendo uma tela de cadastro de usuário onde, assim que inserido haverá uma tabela onde este usuário será mostrado imediatamente. Nesta mesma tabela tem dois campos de ações, EDITAR e EXCLUIR, estes campos são do tipo . Minha dúvida é como eu faço para pegar a ação do usuário e o ID e levar para a Servlet e por fim executar a ação?

Ex. Se o Usuário clicar no link “EXCLUIR” em um dos itens da tabela o item será excluído, se clicar em editar o mesmo voltará para o form para ser editado.

Alguma implementação que eu já fiz:

Tabela de usuários cadastrados:


<% for(int i=0;i < listaUsuario.size();i++){ %>
									<% perfil = new Perfil(); %>
									<% perfil = perfilBO.selectById(listaUsuario.get(i).getIdPerfil()); %>
							<tr>
								<td><%= listaUsuario.get(i).getIdUsuario() %></td>
								<td><%= perfil.getDescricao() %></td>
								<td><%= listaUsuario.get(i).getNome() %></td>
								<td><%= listaUsuario.get(i).getUsername() %></td>
								<td><%= listaUsuario.get(i).getEmail() %></td>
								<td><a href="UsuarioController?action=update&id=<%= listaUsuario.get(i).getIdUsuario() %>">Editar</a></td>
								<td><a href="UsuarioController?action=delete&id=<%= listaUsuario.get(i).getIdUsuario() %>">Excluir</a></td>
							</tr>
							<% } %>
						</tbody>
					</table>			

Ou se alguém tiver um jeito melhor, aceito sugestões! :wink:

Desde já agradeço,

pra isso vc usa a request…no seu servlet UsuarioController vc vai ter duas linhas:

String acao = request.getParameter(“action”);
int id = Integer.parseInt(request.getParameter(“id”));

se entendi sua duvida…e isso que você tem que fazer para pegar os dados…ai depois eh só implementar os métodos para alterar e excluir…

Estou usando o request no método Get, veja:

action = request.getParameter("action");
idUsuario = Integer.parseInt(request.getParameter("id"));
		
request.setAttribute("action", action);
request.setAttribute("idUsuario", idUsuario);

E eu implemento os metodos de update e delete no método Post, então para poder utilizar o ID eu criei a variável idUsuario com modificador private no escopo de fora dos métodos, e volto a utilizá-la no Post, veja:

}else if(request.getParameter("action").equals("update")){
			Usuario usuarioBean = usuarioBO.selectById(idUsuario);
			
			usuarioBean.setNome(nome);
			usuarioBean.setUsername(username);
			usuarioBean.setEmail(email);
			usuarioBean.setSenha(senha);
			usuarioBean.setIdPerfil(idPerfil);
			
			usuarioBO.update(usuarioBean);
			
		}else if(request.getParameter("action").equals("delete")){
			Usuario usuarioBean = usuarioBO.selectById(idUsuario);
			
			usuarioBO.delete(usuarioBean.getIdUsuario());
			response.sendRedirect("usercontrol.jsp");
		}

Bom, a ideia ai é que quando o usuário clicar no link excluir, seja passado por parâmetro a String “excluir” a qual será resgata e verificada,
então fiz uma verificação para ver qual foi a ação do usuário e direcionei para seus respectivos métodos do crud. O mesmo acontece com o idUsuario, pode observar que eu o utilizo para excluir um usuário.

Bom, acontece que estou recebendo o seguinte erro:

[quote]HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
br.com.ovdt.controller.UsuarioController.doGet(UsuarioController.java:45)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.

Apache Tomcat/6.0.20[/quote]

Minha dúvida agora é,

[code]

Editar Excluir[/code]

O “action” e o “id” que eu passo ai na URL com este link, é reconhecido pelo request como um parâmetro?

Cara…reconhece no request sim…

o que provavelmente ta acontecendo, é que o valor de id em listaUsuario.get(i).getIdUsuario() está igual a null…vc ta usando int ou Integer? Se você olhar na exceção…ta tentando converter null em int…

Além disso…você deve implementar tudo no método get…sinaum naum vai funcionar…