In this section you will learn how to find the factorial of a number.
Java Servlet Factorial Program Using Recursion
In this section you will learn how to find the factorial of a number.
Here I am giving a simple java servlet example which is concern for finding the factorial of a number. In mathematics factorial is defined as n! = n*(n-1)...2*1. where, n is a natural number and n ≥ 1. Value of 0! is 1. for example 5! = 5*4*3*2*1.
Now, since I have to use this function in java servlet program, therefore I have created a java servlet class named FactorialServlet which extends the HttpServlet class. In the body of class I overridden the method doGet() and created an objects of HttpServletRequest and HttpServletResponse into its parameter. Inside the doGet() method first I set the mime type that in which format the browser will show the output. In the next line I used the getWriter() method of ServletResponse interface with the object of HttpServletResponse. HttpServletResponse interface extends this method from the ServletResponse. In Next step I am taking input using the getParameter() method of ServletRequest with the object of HttpServletRequest. And create a recursive method for manipulating factorial.
Example :
factorial.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Factorial</title> </head> <body> <form method="get" action="factorialServlet"> <table> <tr><td>Enter a value to find its factorial</td><td><input type="text" name="text1"/></td></tr> <tr><td></td><td><input type="submit" value="ok"/></td></tr> </table> </form> </body> </html>
FactorialServlet.java
package simpleServletExample; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FactorialServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); int num = Integer.parseInt(request.getParameter("text1")); out.println(this.fact(num)); } long fact(long a) { if (a <= 1) return 1; else { a = a * fact(a - 1); return a; } } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>servletBasicExample</display-name> <servlet> <servlet-name>FactorialServlet</servlet-name> <servlet-class>simpleServletExample.FactorialServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FactorialServlet</servlet-name> <url-pattern>/factorialServlet</url-pattern> </servlet-mapping> </web-app>
Output :
When you will execute the above example you will get the output as :
When you will enter the value
You will get the output like as :
[ 0 ] Comments