KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > faces > webapp > http > servlet > SingleViewServlet


1 package com.icesoft.faces.webapp.http.servlet;
2
3 import com.icesoft.faces.util.event.servlet.ContextEventRepeater;
4 import com.icesoft.faces.webapp.http.common.Configuration;
5 import com.icesoft.faces.webapp.http.core.PageServer;
6 import com.icesoft.faces.webapp.http.core.ViewQueue;
7
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import javax.servlet.http.HttpServletResponse JavaDoc;
10 import javax.servlet.http.HttpSession JavaDoc;
11 import java.util.Map JavaDoc;
12
13 public class SingleViewServlet extends BasicAdaptingServlet {
14     private static final String JavaDoc viewNumber = "1";
15     private HttpSession JavaDoc session;
16     private Map JavaDoc views;
17     private String JavaDoc sessionID;
18     private ViewQueue allUpdatedViews;
19     private Configuration configuration;
20     private SessionDispatcher.Listener.Monitor sessionMonitor;
21
22     public SingleViewServlet(HttpSession JavaDoc session, String JavaDoc sessionID, SessionDispatcher.Listener.Monitor sessionMonitor, Map JavaDoc views, ViewQueue allUpdatedViews, Configuration configuration) {
23         super(new PageServer());
24         this.sessionID = sessionID;
25         this.session = session;
26         this.sessionMonitor = sessionMonitor;
27         this.views = views;
28         this.allUpdatedViews = allUpdatedViews;
29         this.configuration = configuration;
30     }
31
32     public void service(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc {
33         //create single view or re-create view if the request is the result of a redirect
34
ServletView view = (ServletView) views.get(viewNumber);
35         if (view == null) {
36             view = new ServletView(viewNumber, sessionID, request, response, allUpdatedViews, configuration);
37             views.put(viewNumber, view);
38             ContextEventRepeater.viewNumberRetrieved(session, sessionID, Integer.parseInt(viewNumber));
39         } else {
40             view.updateOnRequest(request, response);
41         }
42
43         view.switchToNormalMode();
44         sessionMonitor.touchSession();
45         super.service(request, response);
46         view.switchToPushMode();
47         view.release();
48     }
49
50     public void shutdown() {
51         super.shutdown();
52     }
53 }
54
Popular Tags