| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!--NewPage--> |
| <HTML> |
| <HEAD> |
| <!-- Generated by javadoc (build 1.6.0_07) on Tue May 19 17:01:47 PDT 2009 --> |
| <TITLE> |
| ServletModule (Guice 2.0) |
| </TITLE> |
| |
| <META NAME="date" CONTENT="2009-05-19"> |
| |
| <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style"> |
| |
| <SCRIPT type="text/javascript"> |
| function windowTitle() |
| { |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="ServletModule (Guice 2.0)"; |
| } |
| } |
| </SCRIPT> |
| <NOSCRIPT> |
| </NOSCRIPT> |
| |
| </HEAD> |
| |
| <BODY BGCOLOR="white" onload="windowTitle();"> |
| <HR> |
| |
| |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <A NAME="navbar_top"><!-- --></A> |
| <A HREF="#skip-navbar_top" title="Skip navigation links"></A> |
| <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> |
| <TR> |
| <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> |
| <A NAME="navbar_top_firstrow"><!-- --></A> |
| <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> |
| <TR ALIGN="center" VALIGN="top"> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> |
| <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ServletModule.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> |
| </TR> |
| </TABLE> |
| </TD> |
| <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> |
| </EM> |
| </TD> |
| </TR> |
| |
| <TR> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../../com/google/inject/servlet/RequestScoped.html" title="annotation in com.google.inject.servlet"><B>PREV CLASS</B></A> |
| <A HREF="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html" title="interface in com.google.inject.servlet"><B>NEXT CLASS</B></A></FONT></TD> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../../index.html?com/google/inject/servlet/ServletModule.html" target="_top"><B>FRAMES</B></A> |
| <A HREF="ServletModule.html" target="_top"><B>NO FRAMES</B></A> |
| <SCRIPT type="text/javascript"> |
| <!-- |
| if(window==top) { |
| document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>'); |
| } |
| //--> |
| </SCRIPT> |
| <NOSCRIPT> |
| <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A> |
| </NOSCRIPT> |
| |
| |
| </FONT></TD> |
| </TR> |
| <TR> |
| <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> |
| SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> |
| <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> |
| DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> |
| </TR> |
| </TABLE> |
| <A NAME="skip-navbar_top"></A> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| |
| <HR> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <H2> |
| <FONT SIZE="-1"> |
| com.google.inject.servlet</FONT> |
| <BR> |
| Class ServletModule</H2> |
| <PRE> |
| <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A> |
| <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/google/inject/AbstractModule.html" title="class in com.google.inject">com.google.inject.AbstractModule</A> |
| <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.google.inject.servlet.ServletModule</B> |
| </PRE> |
| <DL> |
| <DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/google/inject/Module.html" title="interface in com.google.inject">Module</A></DD> |
| </DL> |
| <HR> |
| <DL> |
| <DT><PRE>public class <B>ServletModule</B><DT>extends <A HREF="../../../../com/google/inject/AbstractModule.html" title="class in com.google.inject">AbstractModule</A></DL> |
| </PRE> |
| |
| <P> |
| Configures the servlet scopes and creates bindings for the servlet API |
| objects so you can inject the request, response, session, etc. |
| |
| <p> |
| You should subclass this module to register servlets and |
| filters in the <A HREF="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()"><CODE>configureServlets()</CODE></A> method. |
| <P> |
| |
| <P> |
| <HR> |
| |
| <P> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| |
| <A NAME="nested_class_summary"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> |
| <B>Nested Class Summary</B></FONT></TH> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>static interface</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.FilterKeyBindingBuilder</A></B></CODE> |
| |
| <BR> |
| See the EDSL examples at <A HREF="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()"><CODE>configureServlets()</CODE></A></TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>static interface</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.ServletKeyBindingBuilder</A></B></CODE> |
| |
| <BR> |
| See the EDSL examples at <A HREF="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()"><CODE>configureServlets()</CODE></A></TD> |
| </TR> |
| </TABLE> |
| |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| |
| <A NAME="constructor_summary"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> |
| <B>Constructor Summary</B></FONT></TH> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD><CODE><B><A HREF="../../../../com/google/inject/servlet/ServletModule.html#ServletModule()">ServletModule</A></B>()</CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| </TABLE> |
| |
| <!-- ========== METHOD SUMMARY =========== --> |
| |
| <A NAME="method_summary"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> |
| <B>Method Summary</B></FONT></TH> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>protected void</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../../com/google/inject/servlet/ServletModule.html#configure()">configure</A></B>()</CODE> |
| |
| <BR> |
| Configures a <A HREF="../../../../com/google/inject/Binder.html" title="interface in com.google.inject"><CODE>Binder</CODE></A> via the exposed methods.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>protected void</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets</A></B>()</CODE> |
| |
| <BR> |
| Servlet Mapping EDSL</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>protected <A HREF="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.FilterKeyBindingBuilder</A></CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> urlPattern, |
| <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>... morePatterns)</CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>protected <A HREF="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.FilterKeyBindingBuilder</A></CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../../com/google/inject/servlet/ServletModule.html#filterRegex(java.lang.String, java.lang.String...)">filterRegex</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> regex, |
| <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>... regexes)</CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>protected <A HREF="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.ServletKeyBindingBuilder</A></CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> urlPattern, |
| <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>... morePatterns)</CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>protected <A HREF="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.ServletKeyBindingBuilder</A></CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../../com/google/inject/servlet/ServletModule.html#serveRegex(java.lang.String, java.lang.String...)">serveRegex</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> regex, |
| <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>... regexes)</CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| </TABLE> |
| <A NAME="methods_inherited_from_class_com.google.inject.AbstractModule"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> |
| <TH ALIGN="left"><B>Methods inherited from class com.google.inject.<A HREF="../../../../com/google/inject/AbstractModule.html" title="class in com.google.inject">AbstractModule</A></B></TH> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD><CODE><A HREF="../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class)">bind</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key)">bind</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral)">bind</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#binder()">binder</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher, com.google.inject.matcher.Matcher, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeListener)">bindListener</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class, com.google.inject.Scope)">bindScope</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeConverter)">convertToTypes</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class)">getMembersInjector</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral)">getMembersInjector</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class)">getProvider</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key)">getProvider</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class...)">requestStaticInjection</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class)">requireBinding</A>, <A HREF="../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key)">requireBinding</A></CODE></TD> |
| </TR> |
| </TABLE> |
| <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> |
| <TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD> |
| </TR> |
| </TABLE> |
| |
| <P> |
| |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| |
| <A NAME="constructor_detail"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> |
| <B>Constructor Detail</B></FONT></TH> |
| </TR> |
| </TABLE> |
| |
| <A NAME="ServletModule()"><!-- --></A><H3> |
| ServletModule</H3> |
| <PRE> |
| public <B>ServletModule</B>()</PRE> |
| <DL> |
| </DL> |
| |
| <!-- ============ METHOD DETAIL ========== --> |
| |
| <A NAME="method_detail"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> |
| <B>Method Detail</B></FONT></TH> |
| </TR> |
| </TABLE> |
| |
| <A NAME="configure()"><!-- --></A><H3> |
| configure</H3> |
| <PRE> |
| protected final void <B>configure</B>()</PRE> |
| <DL> |
| <DD><B>Description copied from class: <CODE><A HREF="../../../../com/google/inject/AbstractModule.html#configure()">AbstractModule</A></CODE></B></DD> |
| <DD>Configures a <A HREF="../../../../com/google/inject/Binder.html" title="interface in com.google.inject"><CODE>Binder</CODE></A> via the exposed methods. |
| <P> |
| <DD><DL> |
| <DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/google/inject/AbstractModule.html#configure()">configure</A></CODE> in class <CODE><A HREF="../../../../com/google/inject/AbstractModule.html" title="class in com.google.inject">AbstractModule</A></CODE></DL> |
| </DD> |
| <DD><DL> |
| </DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="configureServlets()"><!-- --></A><H3> |
| configureServlets</H3> |
| <PRE> |
| protected void <B>configureServlets</B>()</PRE> |
| <DL> |
| <DD><h3>Servlet Mapping EDSL</h3> |
| |
| <p> Part of the EDSL builder language for configuring servlets |
| and filters with guice-servlet. Think of this as an in-code replacement for web.xml. |
| Filters and servlets are configured here using simple java method calls. Here is a typical |
| example of registering a filter when creating your Guice injector: |
| |
| <pre> |
| Guice.createInjector(..., new ServletModule() { |
| |
| @Override |
| protected void configureServlets() { |
| <b>serve("*.html").with(MyServlet.class)</b> |
| } |
| } |
| </pre> |
| |
| This registers a servlet (subclass of <code>HttpServlet</code>) called <code>MyServlet</code> to service |
| any web pages ending in <code>.html</code>. You can also use a path-style syntax to register |
| servlets: |
| |
| <pre> |
| <b>serve("/my/*").with(MyServlet.class)</b> |
| </pre> |
| |
| Every servlet (or filter) is required to be a singleton. If you cannot annotate the class |
| directly, you should add a separate <code>bind(..).in(Singleton.class)</code> rule elsewhere in |
| your module. Mapping a servlet that is bound under any other scope is an error. |
| |
| <p> |
| <h4>Dispatch Order</h4> |
| You are free to register as many servlets and filters as you like this way. They will |
| be compared and dispatched in the order in which the filter methods are called: |
| |
| <pre> |
| |
| Guice.createInjector(..., new ServletModule() { |
| |
| @Override |
| protected void configureServlets() { |
| filter("/*").through(MyFilter.class); |
| filter("*.css").through(MyCssFilter.class); |
| // etc.. |
| |
| serve("*.html").with(MyServlet.class); |
| serve("/my/*").with(MyServlet.class); |
| // etc.. |
| } |
| } |
| </pre> |
| This will traverse down the list of rules in lexical order. For example, a url |
| "<code>/my/file.js</code>" (after it runs through the matching filters) will first |
| be compared against the servlet mapping: |
| |
| <pre> |
| serve("*.html").with(MyServlet.class); |
| </pre> |
| And failing that, it will descend to the next servlet mapping: |
| |
| <pre> |
| serve("/my/*").with(MyServlet.class); |
| </pre> |
| |
| Since this rule matches, Guice Servlet will dispatch to <code>MyServlet</code>. These |
| two mapping rules can also be written in more compact form using varargs syntax: |
| |
| <pre> |
| serve(<b>"*.html", "/my/*"</b>).with(MyServlet.class); |
| </pre> |
| |
| This way you can map several URI patterns to the same servlet. A similar syntax is |
| also available for filter mappings. |
| |
| <p> |
| <h4>Regular Expressions</h4> |
| You can also map servlets (or filters) to URIs using regular expressions: |
| <pre> |
| <b>serveRegex("(.)*ajax(.)*").with(MyAjaxServlet.class)</b> |
| </pre> |
| |
| This will map any URI containing the text "ajax" in it to <code>MyAjaxServlet</code>. Such as: |
| <ul> |
| <li>http://www.google.com/ajax.html</li> |
| <li>http://www.google.com/content/ajax/index</li> |
| <li>http://www.google.com/it/is_totally_ajaxian</li> |
| </ul> |
| |
| |
| <h3>Initialization Parameters</h3> |
| |
| Servlets (and filters) allow you to pass in init params |
| using the <code><init-param></code> tag in web.xml. You can similarly pass in parameters to |
| Servlets and filters registered in Guice-servlet using a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><CODE>Map</CODE></A> of parameter |
| name/value pairs. For example, to initialize <code>MyServlet</code> with two parameters |
| (<code>name="Dhanji", site="google.com"</code>) you could write: |
| |
| <pre> |
| Map<String, String> params = new HashMap<String, String>(); |
| params.put("name", "Dhanji"); |
| params.put("site", "google.com"); |
| |
| ... |
| serve("/*").with(MyServlet.class, <b>params</b>) |
| </pre> |
| |
| <p> |
| <h3>Binding Keys</h3> |
| |
| You can also bind keys rather than classes. This lets you hide |
| implementations with package-local visbility and expose them using |
| only a Guice module and an annotation: |
| |
| <pre> |
| ... |
| filter("/*").through(<b>Key.get(Filter.class, Fave.class)</b>); |
| </pre> |
| |
| Where <code>Filter.class</code> refers to the Servlet API interface and <code>Fave.class</code> is a |
| custom binding annotation. Elsewhere (in one of your own modules) you can bind this |
| filter's implementation: |
| |
| <pre> |
| bind(Filter.class)<b>.annotatedWith(Fave.class)</b>.to(MyFilterImpl.class); |
| </pre> |
| |
| See <A HREF="../../../../com/google/inject/Binder.html" title="interface in com.google.inject"><CODE>Binder</CODE></A> for more information on binding syntax. |
| |
| <p> |
| <h3>Multiple Modules</h3> |
| |
| It is sometimes useful to capture servlet and filter mappings from multiple different |
| modules. This is essential if you want to package and offer drop-in Guice plugins that |
| provide servlet functionality. |
| |
| <p> |
| Guice Servlet allows you to register several instances of <code>ServletModule</code> to your |
| injector. The order in which these modules are installed determines the dispatch order |
| of filters and the precedence order of servlets. For example, if you had two servlet modules, |
| <code>RpcModule</code> and <code>WebServiceModule</code> and they each contained a filter that mapped |
| to the same URI pattern, <code>"/*"</code>: |
| |
| <p> |
| In <code>RpcModule</code>: |
| <pre> |
| filter("/*").through(RpcFilter.class); |
| </pre> |
| |
| In <code>WebServiceModule</code>: |
| <pre> |
| filter("/*").through(WebServiceFilter.class); |
| </pre> |
| |
| Then the order in which these filters are dispatched is determined by the order in which |
| the modules are installed: |
| |
| <pre> |
| <b>install(new WebServiceModule());</b> |
| install(new RpcModule()); |
| </pre> |
| |
| In the case shown above <code>WebServiceFilter</code> will run first. |
| <P> |
| <DD><DL> |
| <DT><B>Since:</B></DT> |
| <DD>2.0</DD> |
| </DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="filter(java.lang.String, java.lang.String...)"><!-- --></A><H3> |
| filter</H3> |
| <PRE> |
| protected final <A HREF="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.FilterKeyBindingBuilder</A> <B>filter</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> urlPattern, |
| <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>... morePatterns)</PRE> |
| <DL> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>urlPattern</CODE> - Any Servlet-style pattern. examples: /*, /html/*, *.html, etc.<DT><B>Since:</B></DT> |
| <DD>2.0</DD> |
| </DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="filterRegex(java.lang.String, java.lang.String...)"><!-- --></A><H3> |
| filterRegex</H3> |
| <PRE> |
| protected final <A HREF="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.FilterKeyBindingBuilder</A> <B>filterRegex</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> regex, |
| <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>... regexes)</PRE> |
| <DL> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>regex</CODE> - Any Java-style regular expression.<DT><B>Since:</B></DT> |
| <DD>2.0</DD> |
| </DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="serve(java.lang.String, java.lang.String...)"><!-- --></A><H3> |
| serve</H3> |
| <PRE> |
| protected final <A HREF="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.ServletKeyBindingBuilder</A> <B>serve</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> urlPattern, |
| <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>... morePatterns)</PRE> |
| <DL> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>urlPattern</CODE> - Any Servlet-style pattern. examples: /*, /html/*, *.html, etc.<DT><B>Since:</B></DT> |
| <DD>2.0</DD> |
| </DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="serveRegex(java.lang.String, java.lang.String...)"><!-- --></A><H3> |
| serveRegex</H3> |
| <PRE> |
| protected final <A HREF="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html" title="interface in com.google.inject.servlet">ServletModule.ServletKeyBindingBuilder</A> <B>serveRegex</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> regex, |
| <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>... regexes)</PRE> |
| <DL> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>regex</CODE> - Any Java-style regular expression.<DT><B>Since:</B></DT> |
| <DD>2.0</DD> |
| </DL> |
| </DD> |
| </DL> |
| <!-- ========= END OF CLASS DATA ========= --> |
| <HR> |
| |
| |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <A NAME="navbar_bottom"><!-- --></A> |
| <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> |
| <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> |
| <TR> |
| <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> |
| <A NAME="navbar_bottom_firstrow"><!-- --></A> |
| <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> |
| <TR ALIGN="center" VALIGN="top"> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> |
| <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ServletModule.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> |
| </TR> |
| </TABLE> |
| </TD> |
| <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> |
| </EM> |
| </TD> |
| </TR> |
| |
| <TR> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../../com/google/inject/servlet/RequestScoped.html" title="annotation in com.google.inject.servlet"><B>PREV CLASS</B></A> |
| <A HREF="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html" title="interface in com.google.inject.servlet"><B>NEXT CLASS</B></A></FONT></TD> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../../index.html?com/google/inject/servlet/ServletModule.html" target="_top"><B>FRAMES</B></A> |
| <A HREF="ServletModule.html" target="_top"><B>NO FRAMES</B></A> |
| <SCRIPT type="text/javascript"> |
| <!-- |
| if(window==top) { |
| document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>'); |
| } |
| //--> |
| </SCRIPT> |
| <NOSCRIPT> |
| <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A> |
| </NOSCRIPT> |
| |
| |
| </FONT></TD> |
| </TR> |
| <TR> |
| <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> |
| SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> |
| <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> |
| DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> |
| </TR> |
| </TABLE> |
| <A NAME="skip-navbar_bottom"></A> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| |
| <HR> |
| <i>Copyright 2009 Google Inc. All Rights Reserved.</i> |
| </BODY> |
| </HTML> |