Skip to main content
 首页 » 编程设计

servlets之Servlet 2.5中如何从ServletRequest获取Servlet上下文

2024年08月06日12myhome

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

请您参考如下方法:

您可以通过 HttpSession#getServletContext() 获取.

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

但是,这可能会在不需要时不必要地创建 session 。

但是当您已经坐在 HttpServlet 的实例中时类,只需使用继承的 GenericServlet#getServletContext()方法。

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

或者当您已经坐在 Filter 的实例中时接口(interface),只需使用 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(); 
    // ... 
}