如何在Servlet 2.5中从ServletRequest获取Servlet上下文?

我正在使用使用Servlet 2.5的Tomcat 6。 Servlet 3.0中提供了ServletRequest API中的一个方法,该方法提供了与ServletRequest相关的ServletContext对象的句柄。 在使用Servlet 2.5 API时,有没有办法从ServletRequest获取ServletContext对象?

你可以通过HttpSession#getServletContext()来获取它。

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

然而,这可能会在不需要时创build会话。

但是当您已经坐在HttpServlet类的实例中时,只需使用inheritance的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(); // ... }