Ok, lasciamo perdere JSTL e andiamo di vecchio scriptlet, poi rispondo alla tua domanda:
codice:
<html>
<head><title>Pagina</title>
<body>
<form action="index.jsp" method="post">
<input type="text" name="nickname" value="" />
<input type="submit" value="Conferma" />
</form>
<%
String nickName = request.getParameter("nickname");
if ((nickName != null) && !"".equals(nickName)) { %>
Benvenuto <% out.print(nickName); %></p>
<%
}
%>
</body>
</html>
Non c'è nessuna "istruzione" che intercetta l'evento clic. Semplicemente, in HTML, quando c'è un form questo viene inviato alla risorsa indicata nel parametro "action" quando l'utente fa clic sul pulsante contraddistinto dal tipo "submit".
Quindi, ogni form ha un parametro action che dice a quale risorsa verranno inviati i dati e dovrebbe anche avere un pulsante di tipo "submit" che faccia capire che è lui il responsabile dell'invio dei dati. In realtà si può anche fare a meno del pulsante "submit", ma a questo punto il form va inviato tramite una chiamata JavaScript che si occupa di prelevare il form e inviarlo, ma questi sono discorsi che esulano da questa trattazione.
Ciao.