1 16 17 package com.google.inject.servlet; 18 19 import com.google.inject.AbstractModule; 20 import com.google.inject.TypeLiteral; 21 import com.google.inject.Provider; 22 import static com.google.inject.servlet.ServletScopes.REQUEST; 23 import static com.google.inject.servlet.ServletScopes.SESSION; 24 25 import java.util.Map ; 26 27 import javax.servlet.ServletRequest ; 28 import javax.servlet.ServletResponse ; 29 import javax.servlet.http.HttpServletRequest ; 30 import javax.servlet.http.HttpServletResponse ; 31 import javax.servlet.http.HttpSession ; 32 33 39 public class ServletModule extends AbstractModule { 40 41 protected void configure() { 42 bindScope(RequestScoped.class, REQUEST); 44 bindScope(SessionScoped.class, SESSION); 45 46 Provider<HttpServletRequest > requestProvider = 48 new Provider<HttpServletRequest >() { 49 public HttpServletRequest get() { 50 return GuiceFilter.getRequest(); 51 } 52 53 public String toString() { 54 return "RequestProvider"; 55 } 56 }; 57 bind(HttpServletRequest .class).toProvider(requestProvider); 58 bind(ServletRequest .class).toProvider(requestProvider); 59 60 Provider<HttpServletResponse > responseProvider = 62 new Provider<HttpServletResponse >() { 63 public HttpServletResponse get() { 64 return GuiceFilter.getResponse(); 65 } 66 67 public String toString() { 68 return "ResponseProvider"; 69 } 70 }; 71 bind(HttpServletResponse .class).toProvider(responseProvider); 72 bind(ServletResponse .class).toProvider(responseProvider); 73 74 bind(HttpSession .class).toProvider(new Provider<HttpSession >() { 76 public HttpSession get() { 77 return GuiceFilter.getRequest().getSession(); 78 } 79 80 public String toString() { 81 return "SessionProvider"; 82 } 83 }); 84 85 bind(new TypeLiteral<Map <String , String []>>() {}) 87 .annotatedWith(RequestParameters.class) 88 .toProvider(new Provider<Map <String , String []>>() { 89 @SuppressWarnings ({"unchecked"}) 90 public Map <String , String []> get() { 91 return GuiceFilter.getRequest().getParameterMap(); 92 } 93 94 public String toString() { 95 return "RequestParametersProvider"; 96 } 97 }); 98 } 99 } 100 | Popular Tags |