2012-05-16 3 views
38

サーブレット2.5を使用するTomcat 6を使用しています。 ServletRequestに関連付けられたServletContextオブジェクトへのハンドルを提供する、ServletRequest APIのServlet 3.0で提供されるメソッドがあります。サーブレット2.5 APIを使用してServletContextオブジェクトをServletRequestから取得する方法はありますか?サーブレット2.5のServletRequestからサーブレットコンテキストを取得する方法は?

答えて

74

HttpSession#getServletContext()で取得できます。

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

これは、不要なときにセッションを不必要に作成する可能性があります。

しかし、既にHttpServletクラスのインスタンスに座っているときは、継承したGenericServlet#getServletContext()メソッドを使用してください。

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

それとも、すでにFilterインタフェースのインスタンスに座っているとき、ちょうど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

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

+3

@tgkprogで:神聖な、ないてください! – BalusC

+0

テストするだけで、フィルターに入れます – tgkprog

関連する問題