The example in the code is a little confusing. On Apr 5, 3:17 pm, garey <[email protected]> wrote: > After reading the documentation and trying several things I am still > confused. Does someone have an up to date example of a servlet that > would be called from a ServletModule? > > The documentation on the ServletModule in the user's guide seems to be > contradictory. There is this: > > "Note: Every servlet (or filter) is required to be a @Singleton. If > you cannot annotate the class directly, you must bind it using > bind(..).in(Singleton.class), separate to the filter() or servlet() > rules. Mapping under any other scope is an error. This is to maintain > consistency with the Servlet specification." > > which seems to imply that you can integrate a third party servlet into > your web app by binding it as a singleton. And then there is this: > > "Each servlet configured with a ServletModule is executed within > RequestScope. > > By default, there are several elements available to be injected, each > of which is bound in RequestScope: > > * HttpServletRequest / ServletRequest > * HttpServletResponse / ServletResponse > * @RequestParameters Map<String, String[]> > > Remember to use a Provider when injecting either of these elements if > the injection point is on a class that is created outside of > RequestScope. For example, a singleton servlet is created outside of a > request, and so it needs to call Provider.get() on any RequestScoped > dependency only after the request is received (typically it its > service() method. " > > which seems to suggest that in a Singleton Servlet (which they all > are?), you can only get at the request, response, and ServletContext > (how?) by using Providers, which you sort of can't do if you are using > a servlet over which you have no control.
To clarify this remember that a Servlet doesn't need injection to work normally. The "service, doGet, doPost" methods have the request and response passed in as normal method parameters. The "init" method gets the context as a normal method parameter. You only need to inject into a Servlet if you want other objects such as your own request-scoped bindings or simple version of the request parameters Map that Guice Servlet offers. > > Be that as it may, I can't even figure out what a servlet that I'm > writing should look like. > > Any help would be appreciated; > > Garey Mills > Library Systems Office > UC Berkeley -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
