package com.roshka.webprojecttest.servlets; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/factorial-response") public class FactorialResponseServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter pw = new PrintWriter(resp.getOutputStream()); Boolean valido=true; String parametro = req.getParameter("number"); if(parametro.length() <1) valido=false; for(int i = 0 ; i < parametro.length(); i++) { if( ( !Character.isDigit(parametro.charAt(i)) && i > 0) && !(Character.isDigit(parametro.charAt(i)) && i == 0 && parametro.charAt(i) != '-' ) ) { valido=false; break; } } if (!valido) { pw.write("" + "" + "Error de parametro" + "" + "" + "No se puede generarla tabla de multiplicar. Valor del parametro \" " + parametro + " \" invalido." + "" + ""); } else { Integer numero = Integer.parseInt(parametro); if(numero > 100) { pw.write("" + "" + "Error de parametro" + "" + "" + "Mi programa solo conoce el factorial de hasta el numero 100. El numero pasado fue: "+numero + "" + ""); } else if(numero<0) { pw.write("" + "" + "Error de parametro" + "" + "" + "Mi programa no sabe obtener el factorial de numeros negativos" + "" + ""); } else{ long facto=1; for (long i = 2; i <=numero;i++) facto*=i; pw.write("" + "" + "Hola, bienvenidos al factorializador" + "" + "" + "

Soy un generador de factorial de numeros

" + "
" + "
" + "Introduzca el numero:
" + "" + "
" + "
" + "
" + "

El factorial de "+ numero+" es: " + facto +"

" + "
" + "" + ""); } } pw.close(); } }