Hello everyone,
 I am trying to display an error page if user enters a wrong number. The
number has to be between 1 an d 10. I get following error:
type Exception report


message


description The server encountered an internal error () that prevented it
from fulfilling this request.


exception
LuckyException
             at LuckyNumber1Servlet.validate_number(Unknown Source)
             at LuckyNumber1Servlet.doGet(Unknown Source)
             at
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
             at
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

Folks, I tried various ways to fix this issue. spent many hours searching
thru books and internet, but could not find a way out.
Can someone please point out the bug here?
Thanks
Raju Lokhande
*********************************************************************************************************
Here is my servlet code:
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 * This is a simple example of an HTTP Servlet.  It responds to the GET
 * method of the HTTP protocol.
 */
public class LuckyNumber1Servlet extends HttpServlet
      {

            private int inp_int;
      public void init() throws ServletException {
                  ServletContext servletContext = getServletContext();
                  servletContext.setAttribute("ServletTotal", new
Integer(0));

      } // end of init


      public void validate_number(String in_str) throws LuckyException {

            inp_int = Integer.parseInt( in_str );

            if ( inp_int < 1 || inp_int > 10 )
                        throw new LuckyException();

      }
    public void doGet (HttpServletRequest request,
                       HttpServletResponse response)
                        throws ServletException, IOException {

      response.setContentType("text/html");
      response.setBufferSize(8192);
      PrintWriter out = response.getWriter();

      // then write the data of the response
      out.println("<html>" +
                  "<head><title>Hello</title></head>");

   // then write the data of the response
      out.println("<body  bgcolor=\"#ffffff\">" +
         "<img src=\"duke.waving.gif\">" +
         "<h2>My lucky number is 7. What's yours?</h2>" +
         "<form method=\"get\">" +
         "<input type=\"text\" name=\"lnumber\" size=\"25\">" +
         "<p></p>" +
         "<input type=\"submit\" value=\"Submit\">" +
         "<input type=\"reset\" value=\"Reset\">" +
         "</form>");

            String lnumber = request.getParameter("lnumber");

            Integer SessionTotal;
            int temp_int;

            if ( lnumber != null && lnumber.length() > 0 ) {

              try {
                               validate_number( lnumber );
                  }
                  catch ( LuckyException not_ignored) {
                        response.resetBuffer();
                    throw  new ServletException( not_ignored ) ;
                  }

                  HttpSession session = request.getSession( true );

                  synchronized(session) {
                        SessionTotal =
                                    (Integer) session.getAttribute
( "SessionTotal");

                        if ( SessionTotal == null )
                              SessionTotal = new Integer(0);

                        temp_int =  SessionTotal.intValue() ;
                        int temp_count = temp_int + Integer.parseInt(
lnumber);

                        Integer temp_integer = new Integer( temp_count);

                        session.setAttribute ( "SessionTotal", temp_integer
);
                        }

                        ServletContext servletContext = getServletContext
();

                        Integer ServletTotal =
                              (Integer) servletContext.getAttribute
("ServletTotal");

                        if ( ServletTotal == null )
                              ServletTotal = new Integer( 0 );

                        int temp_int2 =  ServletTotal.intValue() ;
                        int temp_count2 = temp_int2 + Integer.parseInt(
lnumber);
                        Integer temp_integer2 = new Integer( temp_count2 );
                        servletContext.setAttribute("ServletTotal",
temp_integer2);

                        RequestDispatcher dispatcher =
                               getServletContext().getRequestDispatcher
("/lucky2");

                        if (dispatcher != null)
                              dispatcher.include(request, response);

      }
      out.println("</body></html>");
      out.close();
    } // end of doGet().

    public String getServletInfo() {
        return "The LuckyNumber1Servlet servlet types a number.";

    }
 } // end of class LuckyNumber1Servlet

*********************LuckyException.java *******************************
import javax.servlet.*;
public class LuckyException extends ServletException {

    public LuckyException () { }

       /*
    public LuckyException (String msg) {
        super(msg);
    }
       */
}
*********************web.xml file under /appication-context/web/WEB-INF
*******************************
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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>hello1</display-name>
  <servlet>
    <display-name>GreetingServlet</display-name>
    <servlet-name>GreetingServlet</servlet-name>
    <servlet-class>GreetingServlet</servlet-class>
  </servlet>
  <servlet>
    <display-name>ResponseServlet</display-name>
    <servlet-name>ResponseServlet</servlet-name>
    <servlet-class>ResponseServlet</servlet-class>
  </servlet>
  <servlet>
    <display-name>LuckyNumber1Servlet</display-name>
    <servlet-name>LuckyNumber1Servlet</servlet-name>
    <servlet-class>LuckyNumber1Servlet</servlet-class>
  </servlet>
  <servlet>
    <display-name>LuckyNumber2Servlet</display-name>
    <servlet-name>LuckyNumber2Servlet</servlet-name>
    <servlet-class>LuckyNumber2Servlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>GreetingServlet</servlet-name>
    <url-pattern>/greeting</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ResponseServlet</servlet-name>
    <url-pattern>/response</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>LuckyNumber1Servlet</servlet-name>
    <url-pattern>/luckynumber</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>LuckyNumber2Servlet</servlet-name>
    <url-pattern>/lucky2</url-pattern>
  </servlet-mapping>
  <error-page>
  <exception-type>LuckyException</exception-type>
  <location>/errorpage.html</location>
  </error-page>

</web-app>


*********************errorpage.html file under /appication-context/web/
*******************************
<html>
<head>
<title>Data Entry Error</title>
</head>
<body bgcolor="white">
<h2>Please enter a number between 1 and 10. </h2>
</body>
</html>

 
 
This  message,  together  with  any  attachments, is
intended only for the use of the individual or entity
to which it is addressed. It may contain information
that is confidential and prohibited from disclosure.
If you are not the intended recipient, you are hereby
notified that  any dissemination  or copying of this
message or any attachment is strictly prohibited. If
you have received this message in error, please notify
the  original  sender immediately by telephone or by
return e-mail and delete this message, along with any
attachments, from your computer.  Thank you.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to