Infatti, con JSP potrai al limite validare il risultato lato server, ma per cercare di impedire l'immissione di certi caratteri dovrai agire via javascript.

codice:
<html>
<head>
<script language="javascript">

function onlyDigits(fld) {
  fld.value = fld.value.replace(/\D/ig, "");
}
</script>
</head>
<body>
<h1>Solo numeri</h1>
<input type="textfield" onkeyup="onlyDigits(this);" />
</body>
</html>
Per esempio.
Ho evidenziato "cercare" perché è sempre possibile che il client abbia javascript disattivato... quindi dovrai comunque validare il risultato lato server.