Servlet 2.5 で ServletRequest からサーブレット コンテキストを取得するにはどうすればよいでしょうか? 質問する

Servlet 2.5 で ServletRequest からサーブレット コンテキストを取得するにはどうすればよいでしょうか? 質問する

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

ベストアンサー1

入手するには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();
    // ...
}

おすすめ記事