Non ho ben capito se devi permettere SOLO l'inserimento con la virgola oppure va bene ANCHE con la virgola.

pagina del form (form.jsp):
codice:
<form action="controllo.jsp">
<input type=text name="name" value="<%=request.getParameter("name")==null?"":request.getParameter("name")%>" />
<input type=text name="surname" value="<%=request.getParameter("surname")==null?"":request.getParametersurname")%>" />
<input type=text name="quota" value="<%=request.getParameter("quota")==null?"":request.getParameter("quota")%>"/> (non ho mai visto il type "number", credo proprio non esista)
</form>
pagina del controllo / inserimento (controllo.jsp):
codice:
<%
     //... 
     String quota = request.getParameter("quota");
     if (quota==null){
       pagecontext.forward("form.jsp");
       return;
     }

     //controllo quota
     quota = quota.replace(',','.');
     if (quota.indexOf(".")>-1 && quota.split(".")[1]<=3){
        // la quota è corretta e la uso
     }
     else{
       // la quota non è corretta, cioè non ha nè punti nè virgole, oppure ha più di 3 cifre decimali quindi la faccio reinserire
       pagecontext.forward("form.jsp");
     }
%>
magari c'è qualche errorino qua e là perchè non l'ho provata ma la logica dovrebbe ndare se ho capito il tuo problema