2012-05-16 8 views
38

Używam Tomcat 6, który używa serwletu 2.5. Istnieje metoda dostarczona w Servlet 3.0 w API ServletRequest, która daje uchwyt do obiektu ServletContext skojarzonego z ServletRequest. Czy istnieje sposób na uzyskanie obiektu ServletContext od obiektu ServletRequest podczas korzystania z interfejsu API Servlet 2.5?Jak uzyskać kontekst serwletu z ServletRequest w Servlet 2.5?

Odpowiedz

74

Możesz go uzyskać przez HttpSession#getServletContext().

ServletContext context = request.getSession().getServletContext(); 

Może to jednak niepotrzebnie utworzyć sesję, gdy nie jest to pożądane.

Ale gdy już siedzisz w instancji klasy HttpServlet, użyj po prostu odziedziczonej metody GenericServlet#getServletContext().

@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    ServletContext context = getServletContext(); 
    // ... 
} 

Lub gdy jesteś już siedzi w instancji interfejsu Filter, wystarczy użyć FilterConfig#getServletContext().

private FilterConfig config; 

@Override 
public void init(FilterConfig config) { 
    this.config = config; 
} 

@Override 
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { 
    ServletContext context = config.getServletContext(); 
    // ... 
} 
+0

A w JSP http://stackoverflow.com/questions/2898390/java-jsp-servlet-equivalent-of-getservletcontext-from-inside-a-jsp – tgkprog

+3

@tgkprog: Święty, proszę nie! – BalusC

+0

Wystarczy przetestować, a następnie wstawić filtr – tgkprog

Powiązane problemy