001    package org.apache.geronimo;
002    
003    import java.io.IOException;
004    
005    import javax.servlet.ServletException;
006    import javax.servlet.http.HttpServlet;
007    import javax.servlet.http.HttpServletRequest;
008    import javax.servlet.http.HttpServletResponse;
009    
010    /**
011     * Servlet implementation class for Servlet: PageServlet
012     * 
013     * @web.servlet name="PageServlet" display-name="PageServlet"
014     * 
015     * @web.servlet-mapping url-pattern="/page"
016     * 
017     */
018    public class PageServlet extends HttpServlet {
019            static final long serialVersionUID = 1L;
020    
021            /* (non-Javadoc)
022             * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
023             */
024            protected void doGet(HttpServletRequest request,
025                    HttpServletResponse response) throws ServletException, IOException {
026                    
027                    String cometId = request.getParameter("sessionId");
028                    String delay = request.getParameter("delay");
029                    String codeStr = request.getParameter("code");
030                    System.out.println("sessionId:" + cometId + "; delay:" + delay + "; code:" + codeStr);
031    
032                    try {
033                            Thread.sleep(Integer.parseInt(delay));
034                    } catch (NumberFormatException e) {
035                            // TODO Auto-generated catch block
036                            e.printStackTrace();
037                    } catch (InterruptedException e) {
038                            // TODO Auto-generated catch block
039                            e.printStackTrace();
040                    }
041    
042    
043                    String uri = "dummy.html";      
044    
045                    int code = Integer.parseInt(codeStr);
046                    switch (code) {
047                    case 200: request.getRequestDispatcher(uri).forward(request, response); break;
048                    
049                    case 302: 
050            response.sendRedirect("http://" + request.getServerName() + ":" + request.getLocalPort() + request.getContextPath() + "/" + uri);
051                        break;
052                    
053                    case 403:
054                    case 404:
055                    case 500: response.sendError(code, codeStr);
056                            /*try  { 
057                                    int test = 1/0;
058                            } 
059                            catch (Exception e) {
060                                            throw new ServletException("Servlet caught a ServletException: " + e.getMessage()); 
061                            }*/                     
062                            break;
063                    }
064                    
065                    return;
066            }
067    
068    }