Harlequinn,
Eu editei a mensagem, porque li rapidamente a sua pergunta e, após postar a resposta, fiquei em dúvida se a mesma seria adequada. Assim, resolvi reforçar o questionamento do Gustavokt, para receber maiores informações em relação a sua dúvida.
Lá vai um exemplo básico:
Menu (JSP):
<ul>
<li href="ServletControlador?cmd=exibir">Opção 01</li>
<li href="ServletControlador?cmd=adicionar">Opção 02</li>
</ul>
Servlet Controlador:
//Importacoes diversas.
public class ServletControlador extends HttpServlet {
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String cmd = request.getParameter("cmd");
try {
if (cmd.equals("exibe")) {
//Suas operacoes.
} else if (cmd.equals("adicionar")) {
//Suas operacoes.
}
} catch (Exception e) {
}
}
}
Dessa forma, o servlet receberia o comando desejado e efetuaria as ações necessárias. Após a conclusão da rotina, o próprio servlet redirecionaria o usuário à uma página na qual o mesmo conseguisse visualizar o resultado da sua solicitação.
Todas as ações do servlet devem estar circundadas por um try/catch, permitindo o tratamento das exceções ocorridas (redirecionamento para uma página de erro, por exemplo).
Quanto à validação de sessão em cada página, nem pense nisso. Utilize um filter, mecanismo muito mais prático, eficaz e elegante.
Obs.: Esta é apenas uma implementação muito básica. Complemente seus estudos, pesquisando um framework robusto, por exemplo JSF ou Struts.
Espero ter ajudado.
Até logo.