Chamar action ( Servlet ) ao clicar em um link

Bom pessoal é o seguinte: Eu tenho uma tabela onde se encontram meus clientes, nessa tabela eu tenho um link que irá levar para outra guia onde serão mostrados os serviços que esse cliente já executou com a loja, bom a questão é que para isso eu preciso chamar minha servlet ao clicar nesse link, e em links não tem o “action” que é usamos para chamar uma servlet em um form. Fiquei sabendo é possível chamar a servlet por JavaScript e assim chamar a função no evento onclick do meu link, alguém sabe como isso ficaria? Ou até mesmo alguém sabe como chamar a servlet ao carregar a página?

vc precisa apenas passa a url no seu link

ex:

<a href='<c:url value="/servico/cliente?id=${cliente.id}"/>'>serviços</a>

Isso se aplica só em JSF ou também em JSP ? Desculpe se eu falei bobagem, é que ainda não sou muito familiarizado com WEB… E uma dúvida: Tem como usar essa mesma linha chamando a action e a minha outra guia?

A primeira coisa que você deve entender é que há muito mais coisas entre o céu e a terra do que julga a nossa vã filosofia.
Primeiro, você sabe quais os tipos de requisição que podem ser feitos a partir de um sistema web?
Partindo daí, sabe de que forma você pode utilizar tais tipos de requisições?

cara, não entendi sua pergunta, mas vamos tentar responder.

em jsf provavelmente vc nunca vera uma linha dessa

<a href='<c:url value="/servico/cliente?id=${cliente.id}"/>'>serviços</a> 

como assim a action e a outra guia?

coloca o que vc já fez pra eu entender melhor o que vc precisa

e pra te ajudar melhor da uma lida nessa apostila

Acho que realmente faltou um pouco de informação, vou tentar te explicar melhor: Ao clicar nesse link:

<td><a href="Relatorio_cliente.jsp?codigo=<%=c.getCodigo() %> " target="_blank" >Serviços</a></td>

Ele me leva até a página de relatórios, nessa página eu tenho o seguinte código:

[code]<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@page import=“dao.JDBCServicoDAO”%>
<%@ page import=“dao.FabricaConexao”%>
<%@ page import=“java.sql.Connection”%>
<%@ page import=“modelo.Ordem_de_servico”%>
<%@ page import=“ação.Relatorio_cliente”%>

SGL 1.0 - Brasil Iphone <% String codigo = request.getParameter("codigo"); Ordem_de_servico servico = new Ordem_de_servico(); servico.setCodigoExcluir(codigo);%> @import url("TelaInicial.css"); div#corpo { margin: 0 auto; padding: 0; width: 1200px; background: silver; height: 350px; }
<div id="menu2">
	<ul>
		<li><a href="TelaInicial.jsp"><b
				style="FONT-SIZE: large; FONT-FAMILY: 'Trebuchet MS';">Cliente</b></a></li>
		<li><a href="Telainicial_funcionario.jsp"><b
				style="FONT-SIZE: large; FONT-FAMILY: 'Trebuchet MS';">Funcionário</b></a></li>
		<li><a href="Telainicial_produto.jsp"><b
				style="FONT-SIZE: large; FONT-FAMILY: 'Trebuchet MS';">Produto</b></a></li>
		<li><a href="Telainicial_servico.jsp"><b
				style="FONT-SIZE: Large; FONT-FAMILY: 'Trebuchet MS';">Serviço</b></a></li>




	</ul>





</div>


<a href="novoServico.jsp" title="Novo Serviço" target="_blank"><img
	src="Imagens/cadastrar.jpg" style="width: 144px; height: 181px;"></a>
<a href="excluirServico.jsp" title="Excluir Serviço" target="_blank"><img
	src="Imagens/excluir.jpg" style="width: 144px; height: 181px;"></a>
<%
	FabricaConexao fabrica = new FabricaConexao();
	Connection conexao = fabrica.fazConexao();
	JDBCServicoDAO dao = new JDBCServicoDAO(conexao);
	java.util.List<Ordem_de_servico> servicos = dao.relatorio();
	fabrica.fecharConexao();
%>

<div id="corpo">

	<table cellspacing="0" cellpadding="0" class="display" id="tabela1">
		<thead>
			<tr>
				<th>Código</th>
				<th>Cliente</th>
				<th>Funcionário</th>
				<th>Produto</th>
				<th>Valor_orçamento</th>
				<th>Valor_total</th>
				<th>Tipo</th>


			</tr>
		</thead>
		
		<tbody>

			<%
				for (Ordem_de_servico s : servicos) {
					
			%>
			<%
			System.out.println("Teste  ");
		%>

			<tr>
				<td><%=s.getCodigo()%></td>
				<td><%=s.getCod_cliente()%></td>
				<td><%=s.getCod_funcionario()%></td>
				<td><%=s.getCod_produto()%></td>
				<td><%=s.getValor_orcamento()%></td>
				<td><%=s.getValor_total()%></td>
				<td><%=s.getTipo_defeito()%></td>


			</tr>
			<%
				}
			%>


		</tbody>

	</table>
</div>
[/code]

Porém eu preciso chamar um action onde esse código é executado:

<% String codigo = request.getParameter("codigo"); Ordem_de_servico servico = new Ordem_de_servico(); servico.setCodigoExcluir(codigo);%>

Para depois executar o método da minha persistência que irá me retornar uma lista de clientes onde o código seja referente ao código do cliente escolhido na tabela !

Obs: Se vc reparar eu coloquei a linha de código acima no topo da página porém por algum motivo não funciona, não a linha em si, mas acredito que por estar na mesma página o método de consulta não consegue fazer o select usando o código pego pelo request !

Obrigado a todos que se prestaram a me ajudar a resolver o problema, mas já consegui resolver aqui. Bastou mandar o código por parametro, dessa forma não foi necessário usar a action. Isso é o que o MVC faz com a gente, sempre queremos mandar tudo para a classe de Modelo para depois usarmos kk Apesar de ter resolvido, caso alguém saiba como chamar a action juntamente com uma outra página e quiser compartilhar isso aqui, eu irei deixar o tópico em aberto pelo menos até a noite !