import java.io.PrintWriter;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SqrtServlet extends HttpServlet {

	//serial version UID to be able to identify the version of the source code
	private static final long serialVersionUID = 0L;

	public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		
		//Pick up PrintWriter output stream for response
		PrintWriter out = response.getWriter();
		
		//Generate standard HTML header etc
		out.println("<html><head><title> Square roots </title></head>");
		out.println("<body>");
		
		//Pick up name=value bindings for data from the form
		String data = request.getParameter("number");
		
		double value = 0.0;
		
		//Does the String represent a number?
		try {value = Double.parseDouble(data);}
		catch(Exception e){
			//String is not a number. Return message and close HTML document
			out.println("<p>Hey... I need NUMERIC data!");
			out.println("</body></html>");
			return;
		}
		
		//Value must be non-negative for the sqrt-operation
		if(value<0.0){
			out.println("You are living in an imaginary world!");
			out.println("</body></html>");
			return;
		}
		
		//Value is valid, process and respond
		value = Math.sqrt(value);
		out.println("Your square root is " + value + " .");
		out.println("</body></html>");
	}//doGet
	
}//SqrtServlet

